<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Matt Greer</title>
        <link>https://mattgreer.dev</link>
        <description>Mostly web dev and game dev related articles</description>
        <lastBuildDate>Fri, 27 Mar 2026 22:29:38 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Matt Greer</title>
            <url>https://mattgreer.dev/android-chrome-512x512.png</url>
            <link>https://mattgreer.dev</link>
        </image>
        <copyright>Copyright Matt Greer</copyright>
        <atom:link href="https://mattgreer.dev/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Game Boy Advance Dev: Making Music]]></title>
            <link>https://mattgreer.dev/blog/gba-dev-making-music</link>
            <guid>https://mattgreer.dev/blog/gba-dev-making-music</guid>
            <pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How to create a song to play on the GBA]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Game Boy Advance Dev: Blending Pixels]]></title>
            <link>https://mattgreer.dev/blog/gba-dev-blending-pixels</link>
            <guid>https://mattgreer.dev/blog/gba-dev-blending-pixels</guid>
            <pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How to blend layers of pixels on the GBA]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Game Boy Advance Dev: Drawing Pixels]]></title>
            <link>https://mattgreer.dev/blog/gba-dev-drawing-pixels</link>
            <guid>https://mattgreer.dev/blog/gba-dev-drawing-pixels</guid>
            <pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Several ways to draw individual pixels on a GBA]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[E-Reader Card Types]]></title>
            <link>https://mattgreer.dev/blog/ereader-card-types</link>
            <guid>https://mattgreer.dev/blog/ereader-card-types</guid>
            <pubDate>Fri, 23 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A broad intro to many of the e-Reader's card types]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Hacking My Own E-Reader Game]]></title>
            <link>https://mattgreer.dev/blog/hacking-my-own-ereader-game</link>
            <guid>https://mattgreer.dev/blog/hacking-my-own-ereader-game</guid>
            <pubDate>Sun, 09 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Extending an e-Reader game by scanning in new cards that alter its code]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[E-Reader z80 Dev Tutorial: Part 1]]></title>
            <link>https://mattgreer.dev/blog/ereader-z80-tutorial-part1</link>
            <guid>https://mattgreer.dev/blog/ereader-z80-tutorial-part1</guid>
            <pubDate>Sun, 19 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[How to make a simple z80 hello world app for the e-Reader]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Ensuring an E-Reader Game Has (Hopefully) No Bugs]]></title>
            <link>https://mattgreer.dev/blog/ensuring-an-ereader-game-has-hopefully-no-bugs</link>
            <guid>https://mattgreer.dev/blog/ensuring-an-ereader-game-has-hopefully-no-bugs</guid>
            <pubDate>Fri, 10 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Additional steps I am taking to make my next E-Reader game more robust]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Figuring Out an E-Reader Function]]></title>
            <link>https://mattgreer.dev/blog/figuring-out-an-ereader-function</link>
            <guid>https://mattgreer.dev/blog/figuring-out-an-ereader-function</guid>
            <pubDate>Wed, 10 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Using Ghidra to figure out how an E-Reader function works]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Making a Clock for the Nintendo E-Reader]]></title>
            <link>https://mattgreer.dev/blog/making-a-clock-for-the-ereader</link>
            <guid>https://mattgreer.dev/blog/making-a-clock-for-the-ereader</guid>
            <pubDate>Wed, 06 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Writing up a custom clock for the Nintendo E-Reader]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Neo Geo ROM Hacking: SMA Encrypted P ROMs]]></title>
            <link>https://mattgreer.dev/blog/neo-geo-rom-hacking-sma-encrypted-proms</link>
            <guid>https://mattgreer.dev/blog/neo-geo-rom-hacking-sma-encrypted-proms</guid>
            <pubDate>Sun, 20 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[My first exposure to working with SMA encryption in a Neo Geo game]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Fixing Up a Used LP-2844-Z Thermal Printer]]></title>
            <link>https://mattgreer.dev/blog/fixing-up-a-used-lp2844z-thermal-printer</link>
            <guid>https://mattgreer.dev/blog/fixing-up-a-used-lp2844z-thermal-printer</guid>
            <pubDate>Tue, 24 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[How I got an old, used, Zebra thermal printer working]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[E-Reader Cards Production Run: Mistakes Were Made]]></title>
            <link>https://mattgreer.dev/blog/ereader-cards-production-run-mistakes-were-made</link>
            <guid>https://mattgreer.dev/blog/ereader-cards-production-run-mistakes-were-made</guid>
            <pubDate>Fri, 20 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Lessons learned and why I had to reprint the series one E-Reader cards]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Balatro for the Nintendo E-Reader]]></title>
            <link>https://mattgreer.dev/blog/balatro-for-the-nintendo-ereader</link>
            <guid>https://mattgreer.dev/blog/balatro-for-the-nintendo-ereader</guid>
            <pubDate>Fri, 23 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[What if the best game of 2024 came out on an old, obscure and weird platform?]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Making a Shooter for the Nintendo E-Reader]]></title>
            <link>https://mattgreer.dev/blog/making-a-shooter-for-the-ereader</link>
            <guid>https://mattgreer.dev/blog/making-a-shooter-for-the-ereader</guid>
            <pubDate>Thu, 15 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Looking back on what it was like to make Exo Attack]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Printing Nintendo E-Reader Cards: Part 4, troubleshooting]]></title>
            <link>https://mattgreer.dev/blog/printing-ereader-cards-part-4</link>
            <guid>https://mattgreer.dev/blog/printing-ereader-cards-part-4</guid>
            <pubDate>Wed, 23 Apr 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Some tips and suggestions when your printed cards won't scan.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Finding Neo Geo Tiles]]></title>
            <link>https://mattgreer.dev/blog/finding-neo-geo-tiles</link>
            <guid>https://mattgreer.dev/blog/finding-neo-geo-tiles</guid>
            <pubDate>Wed, 12 Feb 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[How to locate a sprite tile in a Neo Geo game's C ROMs]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Printing Nintendo E-Reader Cards: Part 3]]></title>
            <link>https://mattgreer.dev/blog/printing-ereader-cards-part-3</link>
            <guid>https://mattgreer.dev/blog/printing-ereader-cards-part-3</guid>
            <pubDate>Sun, 09 Feb 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[More things I have found through my trials and errors]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[An E-Reader Mystery]]></title>
            <link>https://mattgreer.dev/blog/an-ereader-mystery</link>
            <guid>https://mattgreer.dev/blog/an-ereader-mystery</guid>
            <pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Solving a mystery about an E-Reader function]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Nintendo E-Reader: Simple Fixed Point]]></title>
            <link>https://mattgreer.dev/blog/ereader-simple-fixed-point</link>
            <guid>https://mattgreer.dev/blog/ereader-simple-fixed-point</guid>
            <pubDate>Sun, 15 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[The E-Reader API uses a nice and simple fixed point system]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Printing Nintendo E-Reader Cards, More Learnings]]></title>
            <link>https://mattgreer.dev/blog/printing-ereader-cards-more-learnings</link>
            <guid>https://mattgreer.dev/blog/printing-ereader-cards-more-learnings</guid>
            <pubDate>Wed, 13 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Even more experience and hard knocks on printing E-Reader cards]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Cramming Solitaire onto a Nintendo E-Reader card]]></title>
            <link>https://mattgreer.dev/blog/cramming-solitaire-onto-a-nintendo-ereader-card</link>
            <guid>https://mattgreer.dev/blog/cramming-solitaire-onto-a-nintendo-ereader-card</guid>
            <pubDate>Mon, 28 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Making a new game from scratch for Nintendo's forgotten peripheral]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Printing Nintendo E-Reader Cards]]></title>
            <link>https://mattgreer.dev/blog/printing-ereader-cards</link>
            <guid>https://mattgreer.dev/blog/printing-ereader-cards</guid>
            <pubDate>Tue, 08 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[How I printed Nintendo E-Reader cards so they work]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Balatro Planet Growth]]></title>
            <link>https://mattgreer.dev/blog/balatro-planet-growth</link>
            <guid>https://mattgreer.dev/blog/balatro-planet-growth</guid>
            <pubDate>Fri, 27 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[How do planet cards grow in Balatro?]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Balatro Score Growth]]></title>
            <link>https://mattgreer.dev/blog/balatro-score-growth</link>
            <guid>https://mattgreer.dev/blog/balatro-score-growth</guid>
            <pubDate>Mon, 23 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[How do decks increase their scoring in Balatro?]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[CPU Driving Part 3: Multiple Cars]]></title>
            <link>https://mattgreer.dev/blog/cpu-driving-part-3-multiple-cars</link>
            <guid>https://mattgreer.dev/blog/cpu-driving-part-3-multiple-cars</guid>
            <pubDate>Sat, 14 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[One is the loneliest number]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[CPU Driving Part 2: Drifting]]></title>
            <link>https://mattgreer.dev/blog/cpu-driving-part-2-drifting</link>
            <guid>https://mattgreer.dev/blog/cpu-driving-part-2-drifting</guid>
            <pubDate>Fri, 13 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Can we make the CPU drift?]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[CPU Driving Part 1: Waypoints]]></title>
            <link>https://mattgreer.dev/blog/cpu-driving-part-1-waypoints</link>
            <guid>https://mattgreer.dev/blog/cpu-driving-part-1-waypoints</guid>
            <pubDate>Thu, 12 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[How can you make a CPU car drive around a track in a video game?]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Neo Geo Dev: Fixed Point Numbers]]></title>
            <link>https://mattgreer.dev/blog/neo-geo-dev-fixed-point</link>
            <guid>https://mattgreer.dev/blog/neo-geo-dev-fixed-point</guid>
            <pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's take a look at how to work with decimal numbers on an ancient cpu.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[ROM Hacking Learnings]]></title>
            <link>https://mattgreer.dev/blog/rom-hacking-learnings</link>
            <guid>https://mattgreer.dev/blog/rom-hacking-learnings</guid>
            <pubDate>Tue, 21 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Now that I have a finished a big ROM hack, some random thoughts on the process.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Neo Geo ROM Hacking: Digging Into MAME Traces]]></title>
            <link>https://mattgreer.dev/blog/neo-geo-rom-hacking-digging-into-mame-traces</link>
            <guid>https://mattgreer.dev/blog/neo-geo-rom-hacking-digging-into-mame-traces</guid>
            <pubDate>Fri, 05 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[How I used MAME's tracing to figure out a how a Neo Geo game works]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[MAME Lua for Better Retro Dev]]></title>
            <link>https://mattgreer.dev/blog/mame-lua-for-better-retro-dev</link>
            <guid>https://mattgreer.dev/blog/mame-lua-for-better-retro-dev</guid>
            <pubDate>Tue, 05 Mar 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[How I used MAME's Lua integration to greatly improve my retro development experience]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Neo Geo ROM Hacking Guide Part 3: Changing Logic]]></title>
            <link>https://mattgreer.dev/blog/neo-geo-rom-hacking-guide-part-3</link>
            <guid>https://mattgreer.dev/blog/neo-geo-rom-hacking-guide-part-3</guid>
            <pubDate>Thu, 15 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's see how we can alter a game's logic in part 3 of my Neo Geo ROM hacking guide.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Neo Geo ROM Hacking Guide Part 2: Changing Graphics]]></title>
            <link>https://mattgreer.dev/blog/neo-geo-rom-hacking-guide-part-2</link>
            <guid>https://mattgreer.dev/blog/neo-geo-rom-hacking-guide-part-2</guid>
            <pubDate>Sat, 10 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's see how we can alter a game's graphics in part 2 of my Neo Geo ROM hacking guide.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Neo Geo ROM Hacking Guide Part 1: Intro and Background]]></title>
            <link>https://mattgreer.dev/blog/neo-geo-rom-hacking-guide-part-1</link>
            <guid>https://mattgreer.dev/blog/neo-geo-rom-hacking-guide-part-1</guid>
            <pubDate>Fri, 09 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's get started learning how to make Neo geo ROM hacks.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[MAME Debugging]]></title>
            <link>https://mattgreer.dev/blog/mame-debugging</link>
            <guid>https://mattgreer.dev/blog/mame-debugging</guid>
            <pubDate>Fri, 02 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Here are some tips and a small guide on how to use MAME for debugging more effectively]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Discerning the Super Metroid Map with BizHawk and Lua]]></title>
            <link>https://mattgreer.dev/blog/discerning-the-super-metroid-map-with-bizhawk-and-lua</link>
            <guid>https://mattgreer.dev/blog/discerning-the-super-metroid-map-with-bizhawk-and-lua</guid>
            <pubDate>Fri, 24 Sep 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[How I reverse engineered the Super Metroid map with brute force.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Why I always use setTimeout, and never setInterval]]></title>
            <link>https://mattgreer.dev/blog/why-i-always-use-settimeout</link>
            <guid>https://mattgreer.dev/blog/why-i-always-use-settimeout</guid>
            <pubDate>Mon, 03 May 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[When doing something repeatedly in JavaScript, I always use setTimout and never setInterval, here is why]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Tracking down a strange React warning]]></title>
            <link>https://mattgreer.dev/blog/tracking-down-a-strange-react-warning</link>
            <guid>https://mattgreer.dev/blog/tracking-down-a-strange-react-warning</guid>
            <pubDate>Wed, 10 Mar 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Why is React giving me this strange warning? Ohhhhh...]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Using Google Drive for form submissions]]></title>
            <link>https://mattgreer.dev/blog/using-google-drive-for-form-submissions</link>
            <guid>https://mattgreer.dev/blog/using-google-drive-for-form-submissions</guid>
            <pubDate>Tue, 26 Jan 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Need to collect form data? Don't want to stand up a server? You can use Google Drive.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[How I built this static site with Next.JS]]></title>
            <link>https://mattgreer.dev/blog/how-i-built-this-static-site-with-nextjs</link>
            <guid>https://mattgreer.dev/blog/how-i-built-this-static-site-with-nextjs</guid>
            <pubDate>Thu, 07 Jan 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[A quick look at how I made a site that has almost no JavaScript, using a JavaScript framework.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Extracting Neo Geo Emulator Graphics Data to Create Animated gifs]]></title>
            <link>https://mattgreer.dev/blog/extracting-neo-geo-emulator-graphics-data-to-create-animated-gifs</link>
            <guid>https://mattgreer.dev/blog/extracting-neo-geo-emulator-graphics-data-to-create-animated-gifs</guid>
            <pubDate>Wed, 13 May 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Web Assembly lets us bring native applications right into the browser. By porting a game emulator to Web Assembly, I was able to reach into its memory to build animated gifs.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Squeezing the Arduboy For Every Byte]]></title>
            <link>https://mattgreer.dev/blog/squeezing-the-arduboy-for-every-byte</link>
            <guid>https://mattgreer.dev/blog/squeezing-the-arduboy-for-every-byte</guid>
            <pubDate>Mon, 10 Sep 2018 00:00:00 GMT</pubDate>
            <description><![CDATA[The Arduboy is an Arduino based game console with very limited storage space. This article shows some techniques I used to use the space efficiently.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[MATE and i3]]></title>
            <link>https://mattgreer.dev/blog/mate-and-i3</link>
            <guid>https://mattgreer.dev/blog/mate-and-i3</guid>
            <pubDate>Thu, 30 Nov 2017 00:00:00 GMT</pubDate>
            <description><![CDATA[How to use i3 with MATE to get an excellent tiling desktop experience in Linux.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[React Internals Part Five: Transactions]]></title>
            <link>https://mattgreer.dev/blog/react-internals-part-five-transactions</link>
            <guid>https://mattgreer.dev/blog/react-internals-part-five-transactions</guid>
            <pubDate>Sat, 12 Aug 2017 00:00:00 GMT</pubDate>
            <description><![CDATA[In this final installment, we take a quick look at transactions and how they help React do its job.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[React Internals Part Four: setState]]></title>
            <link>https://mattgreer.dev/blog/react-internals-part-four-setState</link>
            <guid>https://mattgreer.dev/blog/react-internals-part-four-setState</guid>
            <pubDate>Mon, 17 Jul 2017 00:00:00 GMT</pubDate>
            <description><![CDATA[Part four implements setState, an important function that drives much of what React does.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[React Internals Part Three: Basic Updating]]></title>
            <link>https://mattgreer.dev/blog/react-internals-part-three-basic-updating</link>
            <guid>https://mattgreer.dev/blog/react-internals-part-three-basic-updating</guid>
            <pubDate>Sun, 16 Jul 2017 00:00:00 GMT</pubDate>
            <description><![CDATA[This part explores how React updates the DOM after props change.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[React Internals Part Two: component­Will­Mount and component­Did­Mount]]></title>
            <link>https://mattgreer.dev/blog/react-internals-part-two-componentWillMount-and-componentDidMount</link>
            <guid>https://mattgreer.dev/blog/react-internals-part-two-componentWillMount-and-componentDidMount</guid>
            <pubDate>Sat, 15 Jul 2017 00:00:00 GMT</pubDate>
            <description><![CDATA[Today we are looking at how lifecycle methods in React work.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[React Internals Part One: Basic Rendering]]></title>
            <link>https://mattgreer.dev/blog/react-internals-part-one-basic-rendering</link>
            <guid>https://mattgreer.dev/blog/react-internals-part-one-basic-rendering</guid>
            <pubDate>Fri, 14 Jul 2017 00:00:00 GMT</pubDate>
            <description><![CDATA[This article series creates a small clone of React to learn how it works. We kick things off with the most basic of rendering.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Electron, Redux and Persistence]]></title>
            <link>https://mattgreer.dev/blog/electron-redux-and-persistence</link>
            <guid>https://mattgreer.dev/blog/electron-redux-and-persistence</guid>
            <pubDate>Sun, 31 Jan 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[A strategy for persisting state in a Redux based Electron app.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[The Sega Saturn and Transparency]]></title>
            <link>https://mattgreer.dev/blog/sega-saturn-and-transparency</link>
            <guid>https://mattgreer.dev/blog/sega-saturn-and-transparency</guid>
            <pubDate>Sat, 23 Jan 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[The Saturn's complex hardware architecture meant implementing semi-transparent entities in a game was challenging. This interactive article explains the conundrum, and shows why game developers often settled for inferior alternatives.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Impromptu Web Scraping]]></title>
            <link>https://mattgreer.dev/blog/impromptu-web-scraping</link>
            <guid>https://mattgreer.dev/blog/impromptu-web-scraping</guid>
            <pubDate>Sat, 04 Jul 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[The browser's dev console can be a nice tool to extract data from a webpage.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[JavaScript is a pass by value language]]></title>
            <link>https://mattgreer.dev/blog/javascript-is-a-pass-by-value-language</link>
            <guid>https://mattgreer.dev/blog/javascript-is-a-pass-by-value-language</guid>
            <pubDate>Tue, 03 Mar 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[JavaScript always passes parameters by value. This post explores what that means.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Embedding SVG Into a Reagent Component]]></title>
            <link>https://mattgreer.dev/blog/embedding-svg-into-a-reagent-component</link>
            <guid>https://mattgreer.dev/blog/embedding-svg-into-a-reagent-component</guid>
            <pubDate>Mon, 09 Feb 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[Using Clojure macros to embed an SVG into a Reagent component.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[A Game Made With Reagent]]></title>
            <link>https://mattgreer.dev/blog/a-game-made-with-reagent</link>
            <guid>https://mattgreer.dev/blog/a-game-made-with-reagent</guid>
            <pubDate>Tue, 03 Feb 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[For the heck of it, I made a simple breakout game with Reagent]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[ClojureScript Internals: Vectors]]></title>
            <link>https://mattgreer.dev/blog/clojurescript-internals-vectors</link>
            <guid>https://mattgreer.dev/blog/clojurescript-internals-vectors</guid>
            <pubDate>Mon, 26 Jan 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[A detailed dive into how vectors in ClojureScript work.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Reagent Rocks!]]></title>
            <link>https://mattgreer.dev/blog/reagent-rocks</link>
            <guid>https://mattgreer.dev/blog/reagent-rocks</guid>
            <pubDate>Sat, 24 Jan 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[Reagent is a ClojureScript interface to React, and it is incredible.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Pair Programming Is Not a Panacea]]></title>
            <link>https://mattgreer.dev/blog/pair-programming-is-not-a-panacea</link>
            <guid>https://mattgreer.dev/blog/pair-programming-is-not-a-panacea</guid>
            <pubDate>Wed, 27 Aug 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[Pair programming can be great, but it can also be terrible. This article explores when to pair, when not to, and why some of us don't like it.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[JavaScript Promises ... in Wicked Detail]]></title>
            <link>https://mattgreer.dev/blog/promises-in-wicked-detail</link>
            <guid>https://mattgreer.dev/blog/promises-in-wicked-detail</guid>
            <pubDate>Tue, 04 Feb 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[A detailed article that implements a simple Promise type from scratch. By building the Promise implementation gradually, it shows the why and how of Promises.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Dynamic Lighting and Shadows In My 2D Game]]></title>
            <link>https://mattgreer.dev/blog/dynamic-lighting-and-shadows</link>
            <guid>https://mattgreer.dev/blog/dynamic-lighting-and-shadows</guid>
            <pubDate>Wed, 17 Oct 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[How I used shaders in WebGL to accomplish lighting and shadows in a 2D game.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
        <item>
            <title><![CDATA[Waking Up At 5am To Code]]></title>
            <link>https://mattgreer.dev/blog/waking-up-at-5am-to-code</link>
            <guid>https://mattgreer.dev/blog/waking-up-at-5am-to-code</guid>
            <pubDate>Mon, 23 Jan 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[For a while I woke up early to work on projects before going to work. Here's a quick summary of how it went.]]></description>
            <author>matt.e.greer@gmail.com (Matt Greer)</author>
        </item>
    </channel>
</rss>