41554 blogs · [ { "id": "01a087a5-3952-7344-b016-587fd745d52a", "title": "Experiments with writing Haskell with Aider", "url": "https://www.michaelpj.com/blog/2025/04/12/haskell-llm-experiments.html", "published_at": "2025-04-12T10:03:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fd7b5b781", "title": "LSP: the good, the bad, and the ugly", "url": "https://www.michaelpj.com/blog/2024/09/03/lsp-good-bad-ugly.html", "published_at": "2024-09-03T22:58:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fd88ed310", "title": "Why is defunctionalization good?", "url": "https://www.michaelpj.com/blog/2024/03/11/defunctionalization-thoughts.html", "published_at": "2024-03-11T10:05:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fd90527de", "title": "The Second Sex", "url": "https://www.michaelpj.com/blog/2024/03/06/the-second-sex.html", "published_at": "2024-03-06T09:55:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fd9aedd29", "title": "The unconscious scammer", "url": "https://www.michaelpj.com/blog/2024/03/06/unconscious-scams.html", "published_at": "2024-03-06T09:22:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fda96b6ed", "title": "Partially evaluating CPP macros in Haskell codebases", "url": "https://www.michaelpj.com/blog/2023/11/20/cpp-partial-evaluation.html", "published_at": "2023-11-20T21:31:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdb2f313b", "title": "Everything Everywhere All At Once", "url": "https://www.michaelpj.com/blog/2022/06/19/everything-everywhere-all-at-once.html", "published_at": "2022-06-19T21:38:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdc29e08c", "title": "Lenses for Tree Traversals Redux", "url": "https://www.michaelpj.com/blog/2022/06/12/lenses-for-tree-traversals-redux.html", "published_at": "2022-06-12T19:59:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdc39142e", "title": "On Commenting Code", "url": "https://www.michaelpj.com/blog/2022/04/24/on-commenting-code.html", "published_at": "2022-04-24T15:16:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdc70c50c", "title": "Four lenses on the upsides of bad behaviour", "url": "https://www.michaelpj.com/blog/2021/07/10/four-lenses-on-the-upsides-of-bad-behaviour.html", "published_at": "2021-07-10T17:29:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdd0abf58", "title": "Elementary programming", "url": "https://www.michaelpj.com/blog/2021/01/02/elementary-programming.html", "published_at": "2021-01-02T18:07:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdd1a0c3c", "title": "Why doesn’t software project management handle risk better?", "url": "https://www.michaelpj.com/blog/2020/11/18/project-estimation-and-risk.html", "published_at": "2020-11-18T17:52:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdd2caf16", "title": "Your orphan instances are probably fine", "url": "https://www.michaelpj.com/blog/2020/10/29/your-orphans-are-fine.html", "published_at": "2020-10-29T09:56:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdd5c99a3", "title": "Lenses for Tree Traversals", "url": "https://www.michaelpj.com/blog/2020/08/02/lenses-for-tree-traversals.html", "published_at": "2020-08-02T21:05:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdd8623af", "title": "Shark curiosity", "url": "https://www.michaelpj.com/blog/2020/06/25/shark-curiosity.html", "published_at": "2020-06-25T08:57:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fde3f1525", "title": "Calling it a day", "url": "https://www.michaelpj.com/blog/2020/06/15/calling-it-a-day.html", "published_at": "2020-06-15T08:07:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdee9835c", "title": "Post-consequentialist agents", "url": "https://www.michaelpj.com/blog/2020/06/04/post-consequentialist-agents.html", "published_at": "2020-06-04T08:52:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdf588fd0", "title": "Moderating technological progress: a bitter pill", "url": "https://www.michaelpj.com/blog/2020/06/03/bitter-pill-technological-progress.html", "published_at": "2020-06-03T08:29:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdf6a6a6b", "title": "Alexander Technique, maybe", "url": "https://www.michaelpj.com/blog/2020/06/01/alexander-technique-maybe.html", "published_at": "2020-06-01T08:09:00+00:00" }, { "id": "01a087a5-3952-7344-b016-587fdf7d241a", "title": "Notebook posts", "url": "https://www.michaelpj.com/blog/2020/06/01/notebook-posts-md.html", "published_at": "2020-06-01T07:39:00+00:00" } ] posts Claim your blog
Back to michaelpj.com
Blog · corpus.blog/blogs/michaelpj.com/posts

michaelpj.com

michaelpj.com

2025

2024

2023

2022

2021

2020