<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://www.micahcantor.com/atom.xml</id>
    <title>Micah Cantor</title>
    <updated>2026-01-26T02:21:25.075Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <author>
        <name>Micah Cantor</name>
        <email>hello@micahcantor.com</email>
    </author>
    <subtitle>Micah Cantor's personal site</subtitle>
    <rights>Micah Cantor, 2026</rights>
    <entry>
        <title type="html"><![CDATA[About that Reader trick]]></title>
        <id>/blog/about-that-reader-trick.html</id>
        <link href="/blog/about-that-reader-trick.html"/>
        <updated>2022-01-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Reader can be used to track local bindings, but tracking all bindings can be more difficult.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[I added a Bluesky comment section to my blog]]></title>
        <id>/blog/bluesky-comment-section.html</id>
        <link href="/blog/bluesky-comment-section.html"/>
        <updated>2026-01-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[How I embedded replies from Bluesky directly on my site.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Crafting Interpreters in Typed Racket]]></title>
        <id>/blog/crafting-interpreters-typed-racket.html</id>
        <link href="/blog/crafting-interpreters-typed-racket.html"/>
        <updated>2021-11-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Some thoughts on following Bob Nystrom's book Crafting Interpreters in Typed Racket.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[The strange, sketchy emails a browser extension developer receives]]></title>
        <id>/blog/extension-developer-emails.html</id>
        <link href="/blog/extension-developer-emails.html"/>
        <updated>2021-07-09T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Where does extension malware come from? It might originate from emails like these.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Don't go looking for you first open source contribution]]></title>
        <id>/blog/first-oss-contribution.html</id>
        <link href="/blog/first-oss-contribution.html"/>
        <updated>2020-10-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The traditional method of approaching one's first open source contribution gamifies the process and leads an unhelpful experience for all involved.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Solving a few Leetcode questions in Haskell]]></title>
        <id>/blog/haskell-leetcode.html</id>
        <link href="/blog/haskell-leetcode.html"/>
        <updated>2021-08-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Exploring some purely functional programming solutions to a few popular Leetcode questions.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Compiling a subset of JavaScript to ARM assembly in Haskell]]></title>
        <id>/blog/js-to-asm-in-hs.html</id>
        <link href="/blog/js-to-asm-in-hs.html"/>
        <updated>2022-05-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A toy compiler for a subset of JavaScript to ARM assembly, using Haskell.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Parsing propositional logic in 33 lines of Racket]]></title>
        <id>/blog/logic-racket-parser.html</id>
        <link href="/blog/logic-racket-parser.html"/>
        <updated>2020-10-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A guide to implementing a simple parser for propositional logic in Racket.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Monad confusion and the blurry line between data and computation]]></title>
        <id>/blog/monad-confusion.html</id>
        <link href="/blog/monad-confusion.html"/>
        <updated>2022-07-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[On the dual interpretations of data and computation, and a comparison of Clojure macros to Haskell monads.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Implementing simple hash tables in Racket]]></title>
        <id>/blog/mutable-hash-racket.html</id>
        <link href="/blog/mutable-hash-racket.html"/>
        <updated>2021-01-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A simple implementation of mutable hash tables to learn how they work behind the scenes.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Programming beyond paradigms]]></title>
        <id>/blog/programming-beyond-paradigms.html</id>
        <link href="/blog/programming-beyond-paradigms.html"/>
        <updated>2024-03-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Why the next paradigm in programming is no paradigm at all.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[My programming language feature wishlist]]></title>
        <id>/blog/programming-language-feature-wishlist.html</id>
        <link href="/blog/programming-language-feature-wishlist.html"/>
        <updated>2023-07-09T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[All the features I want in a modern general-purpose language.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[I rebuilt my blog with React Server Components]]></title>
        <id>/blog/rsc-rewrite.html</id>
        <link href="/blog/rsc-rewrite.html"/>
        <updated>2026-01-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A retrospective on my experience migrating this website to React 19 and Parcel.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[The good and the bad of Typed Racket]]></title>
        <id>/blog/thoughts-typed-racket.html</id>
        <link href="/blog/thoughts-typed-racket.html"/>
        <updated>2021-12-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Some thoughts on Typed Racket, gathered from my experience using it to implement a Lox interpreter.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Why learn Racket? A student's perspective]]></title>
        <id>/blog/why-learn-racket.html</id>
        <link href="/blog/why-learn-racket.html"/>
        <updated>2022-02-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A few thoughts on why I think you should learn Racket.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Synthesizing the boring parts with GHC: a research progress report]]></title>
        <id>/blog/haskell-synthesis-ghc/index.html</id>
        <link href="/blog/haskell-synthesis-ghc/index.html"/>
        <updated>2022-12-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A progress report on work on synthesizing Haskell code using the GHC.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Improving the dead code elimination algorithm in js_of_ocaml]]></title>
        <id>/blog/js_of_ocaml-dead-code/index.html</id>
        <link href="/blog/js_of_ocaml-dead-code/index.html"/>
        <updated>2023-11-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Reducing code size with a new global optimization pass in js_of_ocaml.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Median heaps in Haskell]]></title>
        <id>/blog/median-heap-haskell/index.html</id>
        <link href="/blog/median-heap-haskell/index.html"/>
        <updated>2021-06-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[An implementation and discussion of a median heap data structure in Haskell.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Book Review: Racket Programming the Fun Way by James Stelly]]></title>
        <id>/blog/racket-programming-the-fun-way-review/index.html</id>
        <link href="/blog/racket-programming-the-fun-way-review/index.html"/>
        <updated>2021-01-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A review of the new Racket programming book.]]></summary>
        <author>
            <name>Micah Cantor</name>
            <email>hello@micahcantor.com</email>
        </author>
    </entry>
</feed>