41554 blogs · [ { "id": "01a0bb93-4b3a-72f6-85e9-a9cdf2c123e9", "title": "Decentralized identity and atproto", "url": "https://mgmarlow.com/words/2026-09-13-atproto-did/", "published_at": "2026-09-13T00:00:00+00:00" }, { "id": "01a087a4-915a-7109-b6ba-b874279f6efc", "title": "868-BACK is my new favorite roguelike", "url": "https://mgmarlow.com/words/2026-08-09-868-back/", "published_at": "2026-08-09T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3730ba23447", "title": "Creative inconstanty", "url": "https://mgmarlow.com/words/2026-07-11-creative-inconstanty/", "published_at": "2026-07-11T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3730c6885e7", "title": "Revisiting My Reading List", "url": "https://mgmarlow.com/words/2026-05-30-revisiting-my-reading-list/", "published_at": "2026-05-30T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3730d2d6cbd", "title": "PGP and Real-World Cryptography", "url": "https://mgmarlow.com/words/2026-03-14-how-good-is-pretty-good-privacy/", "published_at": "2026-03-14T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3730d80263b", "title": "Email Encryption with Sequoia PGP and Thunderbird", "url": "https://mgmarlow.com/words/2026-02-14-encrypting-email/", "published_at": "2026-02-14T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3730e4bfc4b", "title": "Coding with Agents; Managers and Builders", "url": "https://mgmarlow.com/words/2026-02-05-coding-with-agents/", "published_at": "2026-02-05T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3730f29a150", "title": "Prototyping a Chess Puzzle Game", "url": "https://mgmarlow.com/words/2026-01-08-monster-chess/", "published_at": "2026-01-10T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731012dd80", "title": "Guide to Cryptic Crosswords", "url": "https://mgmarlow.com/words/2025-11-03-beginner-guide-to-cryptics/", "published_at": "2025-11-03T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37310b962fe", "title": "Why React Matters", "url": "https://mgmarlow.com/words/2025-10-26-why-react-matters/", "published_at": "2025-10-26T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37310f471a7", "title": "A Thorough Look into RBS for Rails", "url": "https://mgmarlow.com/words/2025-09-21-brief-look-into-rbs-rails/", "published_at": "2025-10-18T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731118fc90", "title": "Deno's stdlib is Available Outside Deno", "url": "https://mgmarlow.com/words/2025-09-17-deno-stdlib-for-all/", "published_at": "2025-09-17T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37311527a7f", "title": "August Was a Great Month for Puzzles", "url": "https://mgmarlow.com/words/2025-09-04-august-puzzlers/", "published_at": "2025-09-04T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37311ec6a4f", "title": "New Emacs Package: Helix Mode", "url": "https://mgmarlow.com/words/2025-05-17-helix-emacs-package/", "published_at": "2025-05-17T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37312696833", "title": "Action Cable + React", "url": "https://mgmarlow.com/words/2025-05-02-action-cable-react/", "published_at": "2025-05-02T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37312e74280", "title": "Kafka on the Shore is My Favorite Murakami Novel", "url": "https://mgmarlow.com/words/2025-04-23-kafka-on-the-shore-is-my-favorite-murakami-novel/", "published_at": "2025-04-22T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37312f9c267", "title": "How I Organize Email with HEY", "url": "https://mgmarlow.com/words/2025-04-18-how-i-use-hey/", "published_at": "2025-04-18T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37313af2b29", "title": "Visualizing Bracket City Puzzles", "url": "https://mgmarlow.com/words/2025-04-12-visualizing-bracket-city/", "published_at": "2025-04-11T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37314271bf4", "title": "Onboarding a new Mac", "url": "https://mgmarlow.com/words/2025-04-05-onboarding-a-new-mac/", "published_at": "2025-04-05T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37314b699da", "title": "Ruby and RSS feeds", "url": "https://mgmarlow.com/words/2025-03-30-reading-rss-feeds/", "published_at": "2025-03-30T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a373159d0ec5", "title": "Reminiscing on Flow", "url": "https://mgmarlow.com/words/2025-03-01-reminiscing-on-flow/", "published_at": "2025-03-01T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37315f4e876", "title": "Zod refinements are complicated", "url": "https://mgmarlow.com/words/2025-02-26-zod-refinements/", "published_at": "2025-02-26T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37316b8ac59", "title": "Modularizing Start Emacs", "url": "https://mgmarlow.com/words/2025-02-24-modularizing-start-emacs/", "published_at": "2025-02-24T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a373177742f5", "title": "Async IO in Emacs", "url": "https://mgmarlow.com/words/2025-02-16-async-io-emacs/", "published_at": "2025-02-16T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731791f2ea", "title": "Pulling Puzzles from Lichess", "url": "https://mgmarlow.com/words/2025-02-03-pulling-puzzles-from-lichess/", "published_at": "2025-02-03T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37318612534", "title": "Logseq Has Perfected Note Organization", "url": "https://mgmarlow.com/words/2025-02-01-logseq-perfected-organization/", "published_at": "2025-02-01T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37319546435", "title": "Paper Puzzle Remixes", "url": "https://mgmarlow.com/words/2025-01-11-paper-puzzle-remixes/", "published_at": "2025-01-11T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37319ff55e5", "title": "Best of 2024", "url": "https://mgmarlow.com/words/2024-12-29-best-of-2024/", "published_at": "2024-12-29T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731ac641f8", "title": "Automating Quick Notes with iOS Shortcuts", "url": "https://mgmarlow.com/words/2024-12-24-notion-ios-shortcut/", "published_at": "2024-12-24T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731af7282a", "title": "Solving Puzzles by Making Puzzles", "url": "https://mgmarlow.com/words/2024-12-19-making-puzzles-solving-puzzles/", "published_at": "2024-12-19T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731bc64102", "title": "The Most Common React Mistake", "url": "https://mgmarlow.com/words/2024-12-10-common-react-mistake/", "published_at": "2024-12-10T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731bfd5299", "title": "Type predicates to avoid casting", "url": "https://mgmarlow.com/words/2024-12-03-type-predicate/", "published_at": "2024-12-03T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731c9ac3ad", "title": "Data migrations with data-migrate", "url": "https://mgmarlow.com/words/2024-11-13-data-migrate/", "published_at": "2024-11-13T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731ccbf6d0", "title": "Cool Rails concerns", "url": "https://mgmarlow.com/words/2024-11-09-writebook-sluggable/", "published_at": "2024-11-09T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731d8d7363", "title": "Why I Still Use Apple Notes", "url": "https://mgmarlow.com/words/2024-10-30-why-apple-notes/", "published_at": "2024-10-30T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731db12771", "title": "Exploring the Writebook Source Code", "url": "https://mgmarlow.com/words/2024-10-13-exploring-writebook/", "published_at": "2024-10-13T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731db92a61", "title": "HEY to Fastmail and Back Again", "url": "https://mgmarlow.com/words/2024-10-05-hey-to-fastmail-back-again/", "published_at": "2024-10-05T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731e271995", "title": "Crafting Interpreters, Ruby Style", "url": "https://mgmarlow.com/words/2024-08-18-crafting-interpreters/", "published_at": "2024-08-18T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731e4d7cd4", "title": "New stuff in Emacs 30", "url": "https://mgmarlow.com/words/2024-07-28-emacs-30-news/", "published_at": "2024-07-28T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731ee71d1f", "title": "Recently", "url": "https://mgmarlow.com/words/2024-06-19-recently/", "published_at": "2024-06-19T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731f6ca923", "title": "Markdown Rendering with Awk", "url": "https://mgmarlow.com/words/2024-03-23-markdown-awk/", "published_at": "2024-03-23T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3731fcbbb26", "title": "DM Tools with Awk", "url": "https://mgmarlow.com/words/2024-02-27-awk-is-cool/", "published_at": "2024-02-27T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37320403c9f", "title": "A Few Months with Kagi", "url": "https://mgmarlow.com/words/2024-02-06-few-months-with-kagi/", "published_at": "2024-02-06T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a3732042508e", "title": "My Year in Reading", "url": "https://mgmarlow.com/words/2024-01-07-year-in-reading/", "published_at": "2024-01-07T00:00:00+00:00" }, { "id": "01a087a4-915b-723d-bb73-a37320e16a4d", "title": "How to Install React", "url": "https://mgmarlow.com/words/2023-11-15-how-to-install-react/", "published_at": "2023-11-17T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f10fa81b3", "title": "Hypermedia and Hyperbole", "url": "https://mgmarlow.com/words/2023-10-26-hyperbole/", "published_at": "2023-10-26T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f116d7ad8", "title": "Recently", "url": "https://mgmarlow.com/words/2023-10-08-recently/", "published_at": "2023-10-09T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f116ea85c", "title": "Deno + Tree Sitter + Emacs", "url": "https://mgmarlow.com/words/2023-08-31-deno-tree-sitter-emacs/", "published_at": "2023-08-31T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f11ef5531", "title": "Building a Compiler for My Static Site Generator", "url": "https://mgmarlow.com/words/2023-07-26-compiler-ssg/", "published_at": "2023-07-26T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f12e5b6ad", "title": "Small Weekend Projects", "url": "https://mgmarlow.com/words/2023-07-05-small-weekend-projects/", "published_at": "2023-07-05T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f13a3fe11", "title": "Building a Flymake Backend for Clippy", "url": "https://mgmarlow.com/words/2023-06-17-flymake-clippy/", "published_at": "2023-06-19T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f149a0516", "title": "Thoughts on Taiji", "url": "https://mgmarlow.com/words/2023-05-03-taiji-first-impressions/", "published_at": "2023-05-29T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f15707f85", "title": "New Emacs Package: git-share", "url": "https://mgmarlow.com/words/2023-04-29-store-git-link/", "published_at": "2023-04-29T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f162a6ece", "title": "A Note-taking System for Work", "url": "https://mgmarlow.com/words/2023-04-04-note-taking-at-work/", "published_at": "2023-04-04T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f16cad540", "title": "Burn After Writing", "url": "https://mgmarlow.com/words/2023-03-21-burn-after-writing/", "published_at": "2023-03-21T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f17304021", "title": "Anatomy of a Screenplay", "url": "https://mgmarlow.com/words/2023-02-11-anatomy-of-a-screenplay/", "published_at": "2023-02-11T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f17f4d82b", "title": "Nostalgia for the Early Web", "url": "https://mgmarlow.com/words/2023-02-06-early-web-nostalgia/", "published_at": "2023-02-06T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1877a6b0", "title": "Emacs 29 Quick Start", "url": "https://mgmarlow.com/words/2023-01-18-emacs-29-quick-start/", "published_at": "2023-01-18T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1886262b", "title": "Case Study: Zach Gage", "url": "https://mgmarlow.com/words/2023-01-15-case-study-zach-gage/", "published_at": "2023-01-15T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f18b77d7f", "title": "Advent of Code with Common Lisp", "url": "https://mgmarlow.com/words/2022-12-17-advent-of-code/", "published_at": "2022-12-19T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f18f0c7ab", "title": "Why not Doom Emacs?", "url": "https://mgmarlow.com/words/2022-11-11-why-emacs-from-scratch/", "published_at": "2022-11-12T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f19a1f3f6", "title": "LSP with Emacs 29", "url": "https://mgmarlow.com/words/2022-10-23-eglot/", "published_at": "2022-10-29T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f19e2abcb", "title": "Reading: The Puzzler", "url": "https://mgmarlow.com/words/2022-09-22-reading-the-puzzler/", "published_at": "2022-09-22T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1a9fc718", "title": "Building Emacs from source on MacOS", "url": "https://mgmarlow.com/words/2022-09-08-building-emacs-mac-os/", "published_at": "2022-09-08T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1b9aac68", "title": "Reading: The Dispossessed", "url": "https://mgmarlow.com/words/2022-08-13-reading-the-dispossessed/", "published_at": "2022-08-13T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1c8f24e8", "title": "Emacs from scratch", "url": "https://mgmarlow.com/words/2022-05-02-learning-emacs/", "published_at": "2022-05-08T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1ccedac4", "title": "Clean git", "url": "https://mgmarlow.com/words/2022-02-12-clean-git/", "published_at": "2022-02-12T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1d9782b0", "title": "Introducing ReScript", "url": "https://mgmarlow.com/words/2022-01-10-introducing-rescript/", "published_at": "2022-01-10T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1df35297", "title": "Reading: Intro to Haiku", "url": "https://mgmarlow.com/words/2022-01-08-reading-intro-to-haiku/", "published_at": "2022-01-08T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1df446aa", "title": "Best of 2021", "url": "https://mgmarlow.com/words/2022-01-02-best-of-2021/", "published_at": "2022-01-02T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1e8dcef2", "title": "Statues of Piranesi", "url": "https://mgmarlow.com/words/2021-12-19-piranesi-statues/", "published_at": "2021-12-19T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1ee95ffe", "title": "Revisiting ReScript", "url": "https://mgmarlow.com/words/2021-12-11-revisiting-rescript/", "published_at": "2021-12-11T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1f10f816", "title": "What happened to proper tail calls in JavaScript?", "url": "https://mgmarlow.com/words/2021-03-27-proper-tail-calls-js/", "published_at": "2021-03-27T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f1fd94023", "title": "Game design is immaterial", "url": "https://mgmarlow.com/words/2021-03-20-immaterial-game-design/", "published_at": "2021-03-20T00:00:00+00:00" }, { "id": "01a087a4-915c-73cd-b37e-e82f20941136", "title": "Creative-consumptive entertainment", "url": "https://mgmarlow.com/words/2021-03-17-creative-consumptive/", "published_at": "2021-03-17T00:00:00+00:00" } ] posts Claim your blog
Back to treeblah
Blog · corpus.blog/blogs/mgmarlow.com/posts

treeblah

mgmarlow.com

2026

2025

2024

2023

2022

2021