41554 blogs · [ { "id": "01a087a3-0f7f-7153-9367-89a100c310e7", "title": "Improving in chess is hard. I built the world's most human-like chess AI to help me.", "url": "https://mbuffett.com/posts/chess-move-prediction/", "published_at": "2025-10-31T11:16:47+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a101c05048", "title": "An honest review of my last year building Chessbook", "url": "https://mbuffett.com/posts/chessbook-year-review-2024/", "published_at": "2025-02-26T11:16:47+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10227418f", "title": "My Deep-cut Book Recs", "url": "https://mbuffett.com/posts/deep-cut-book-recs/", "published_at": "2025-01-02T02:14:31+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a102be5c45", "title": "Treat your onboarding users like toddlers", "url": "https://mbuffett.com/posts/onboarding-babies/", "published_at": "2024-12-12T11:16:47+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10313a083", "title": "How I prevent myself from committing temporary code to production", "url": "https://mbuffett.com/posts/prevent-temporary-code-production/", "published_at": "2024-12-12T01:32:08+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a1032215da", "title": "Locality of Behaviour, over the Single Responsibility Principle", "url": "https://mbuffett.com/posts/locality-over-single-responsibility-principle/", "published_at": "2024-12-05T12:14:19+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10379fdbc", "title": "A Made-up Name is Better Than No Name", "url": "https://mbuffett.com/posts/a-made-up-name/", "published_at": "2024-11-30T12:14:19+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a1041bd3bf", "title": "Creating an optimized keyboard layout for the next generation of the Datahand", "url": "https://mbuffett.com/posts/optimizing-datahand-layout/", "published_at": "2024-10-30T12:14:19+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a104cacbd8", "title": "The 2030 Rust Update", "url": "https://mbuffett.com/posts/rust-2030/", "published_at": "2024-08-28T22:27:55+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a104ffa189", "title": "A Bunch of Programming Advice I'd Give To Myself 15 Years Ago", "url": "https://mbuffett.com/posts/programming-advice-younger-self/", "published_at": "2024-06-29T10:39:27+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a105d3ffe8", "title": "Abstractions Are The Best, Abstractions Are The Worst", "url": "https://mbuffett.com/posts/abstractions-best-worst/", "published_at": "2024-06-15T21:20:45+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a106796201", "title": "Managing My Motivation, as a Solo Dev", "url": "https://mbuffett.com/posts/maintaining-motivation/", "published_at": "2024-06-05T15:38:46+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a106cc9096", "title": "Processing 6 Billion Chess Games in Less Than 2 Hours", "url": "https://mbuffett.com/posts/ingesting-chess-games/", "published_at": "2024-03-27T00:14:22+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10749c7ab", "title": "Compressing Chess Moves Even Further, To 3.7 Bits Per Move", "url": "https://mbuffett.com/posts/compressing-chess-moves-even-further/", "published_at": "2024-03-14T20:48:39+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a107f8ef4e", "title": "Compressing Chess Moves for Fun and Profit", "url": "https://mbuffett.com/posts/compressing-chess-moves/", "published_at": "2024-03-13T20:48:39+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a1086310dc", "title": "How useless is memorizing openings, as an amateur Lichess player?", "url": "https://mbuffett.com/posts/chess-openings-useless/", "published_at": "2022-01-27T04:38:22+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a108889921", "title": "Generating Chess Puzzles Fast with Rust and Stockfish", "url": "https://mbuffett.com/posts/generating_chess_puzzles/", "published_at": "2022-01-15T14:34:24+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a108e58b85", "title": "Book Review 2021", "url": "https://mbuffett.com/posts/book-review-2021/", "published_at": "2022-01-04T17:42:13+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a109559c7d", "title": "Scattered Thoughts on Why I Waste My Own Time", "url": "https://mbuffett.com/posts/wasting_time/", "published_at": "2021-11-10T15:23:31+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a109f3425b", "title": "Thoughts on chess improvement, after gaining 600 points in 6 months", "url": "https://mbuffett.com/posts/chess_improvement_thoughts/", "published_at": "2021-10-06T19:32:28+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10a36a255", "title": "An Incomplete Explanation of the Proc Macro That Saved Me 4000 Lines of Rust", "url": "https://mbuffett.com/posts/incomplete-macro-walkthrough/", "published_at": "2021-05-04T21:48:47+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10a5ae800", "title": "How Much of the Hitchhiker's Guide to the Galaxy Can You Fit on a QR Code?", "url": "https://mbuffett.com/posts/qr-code-hitchhikers-guide/", "published_at": "2021-03-28T18:14:18+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10b50ba55", "title": "Unironically Using Kubernetes for my Personal Blog", "url": "https://mbuffett.com/posts/kubernetes-setup/", "published_at": "2021-03-17T00:39:04+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10b849b78", "title": "My Experience Switching to Gatsby, from Next.js", "url": "https://mbuffett.com/posts/gatsby-vs-nextjs-quick-thoughts/", "published_at": "2020-12-02T04:54:30+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10ba330e9", "title": "CRUD with Rocket and Sled", "url": "https://mbuffett.com/posts/rocket-sled-tutorial/", "published_at": "2020-10-22T21:17:43+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10c0a471b", "title": "Creating a Snake Clone in Rust, with Bevy", "url": "https://mbuffett.com/posts/bevy-snake-tutorial/", "published_at": "2020-10-15T14:17:49+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10c5b904a", "title": "Thoughts on Structured Editing: Breaking Away from Syntax", "url": "https://mbuffett.com/posts/structured-editing-syntax/", "published_at": "2020-09-27T01:55:45+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10ccee540", "title": "Migrating from Redux to Pullstate", "url": "https://mbuffett.com/posts/redux-to-pullstate/", "published_at": "2020-09-24T20:35:12+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10cd68c1a", "title": "As a hobbyist rust developer, I want to think less about error handling", "url": "https://mbuffett.com/posts/rust-less-error-handling/", "published_at": "2020-09-08T22:50:58+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10dafe292", "title": "Unconventional React Things: Styling Edition", "url": "https://mbuffett.com/posts/unconventional-react/", "published_at": "2020-08-10T21:05:15+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10e9a2c0f", "title": "Programming and Tacit Knowledge", "url": "https://mbuffett.com/posts/all-tacit-knowledge/", "published_at": "2020-08-05T14:36:38+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10e9dd6e6", "title": "Why I Self-Host My Website Analytics", "url": "https://mbuffett.com/posts/why-i-self-host-my-analytics/", "published_at": "2020-08-04T03:54:48+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a10f91ff17", "title": "Replacing ngrok with ktunnel", "url": "https://mbuffett.com/posts/ktunnel-ngrok-replace/", "published_at": "2020-08-01T17:19:26+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a1100d2b27", "title": "The CLI tools I use while doing full-stack dev", "url": "https://mbuffett.com/posts/cli-tools/", "published_at": "2020-07-14T04:38:22+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a110ee6398", "title": "Setting up tmux and kitty for true color support", "url": "https://mbuffett.com/posts/setting-up-tmux-and-kitty-for-true-color-support/", "published_at": "2020-01-08T16:49:41+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a1111658f5", "title": "My Year in Books: 2019", "url": "https://mbuffett.com/posts/my-year-in-books-2019/", "published_at": "2019-12-26T22:26:25+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a11175b744", "title": "Scraping Goodreads Sitemaps with Haskell", "url": "https://mbuffett.com/posts/scraping-goodreads-sitemaps-with-haskell/", "published_at": "2019-10-30T05:27:03+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a111ded839", "title": "Setting up Neovim for Haskell, as of October 2019", "url": "https://mbuffett.com/posts/setting-up-neovim-for-haskell-as-of-october-2019/", "published_at": "2019-10-29T16:48:29+00:00" }, { "id": "01a087a3-0f7f-7153-9367-89a1129c8978", "title": "Creating a basic chess AI with Python", "url": "https://mbuffett.com/posts/chess-ai/", "published_at": "2015-05-10T04:38:22+00:00" } ] posts Claim your blog
Back to mbuffett.com
Blog · corpus.blog/blogs/mbuffett.com/posts

mbuffett.com

mbuffett.com

2025

2024

2022

2021

2020

2019

2015