56,966 blogs · [ { "id": "01a0874b-4afa-7208-94bc-76fdfc5e1a2e", "title": "Local Hoogle", "url": "https://blog.ielliott.io/local-hoogle", "published_at": "2026-03-30T00:30:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fdfca6edc0", "title": "Finishing BioShock", "url": "https://blog.ielliott.io/finishing-bioshock", "published_at": "2026-03-28T00:45:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fdfd5025cb", "title": "Doing the \"right\" thing", "url": "https://blog.ielliott.io/doing-the-right-thing", "published_at": "2026-03-05T05:30:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fdfe036dbb", "title": "2025 Project Review", "url": "https://blog.ielliott.io/2025-project-review", "published_at": "2026-02-07T21:55:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fdfe5e8167", "title": "Removing Disqus", "url": "https://blog.ielliott.io/removing-disqus", "published_at": "2025-09-24T00:00:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fdfe6e97b8", "title": "Smalltalk and Lambda Calculus", "url": "https://blog.ielliott.io/smalltalk-and-lambda-calculus", "published_at": "2025-09-13T00:00:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fdff3cb755", "title": "A Haskell \"Foldable\" quiz", "url": "https://blog.ielliott.io/haskell-foldable-quiz", "published_at": "2025-08-21T00:00:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fe00359b01", "title": "Paying for KeePassXC", "url": "https://blog.ielliott.io/paying-for-keepassxc", "published_at": "2025-08-17T04:25:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fe00a16dc5", "title": "Note: \"We just experienced a tiny earthquake!\"", "url": "https://blog.ielliott.io/note/202508160025", "published_at": "2025-08-16T00:25:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fe00e55420", "title": "Reply to \"Standalone relational storage engines?\"", "url": "https://blog.ielliott.io/reply/202508052146", "published_at": "2025-08-05T21:46:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fe019b6b61", "title": "Exploring a dependency graph with Prolog", "url": "https://blog.ielliott.io/exploring-graphs-with-prolog", "published_at": "2025-08-02T07:00:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fe01c6c557", "title": "Context menus", "url": "https://blog.ielliott.io/context-menus", "published_at": "2025-07-01T05:25:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fe0227d19b", "title": "Playing with GHC package databases", "url": "https://blog.ielliott.io/playing-with-ghc-package-databases", "published_at": "2025-07-01T04:30:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fe02a341cc", "title": "2024 Project Review", "url": "https://blog.ielliott.io/2024-project-review", "published_at": "2025-02-26T22:45:05+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fe0311016b", "title": "My Git CLI overhaul", "url": "https://blog.ielliott.io/my-git-cli-overhaul", "published_at": "2025-02-26T22:45:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fe03beafdd", "title": "In Praise of ZSA", "url": "https://blog.ielliott.io/in-praise-of-zsa", "published_at": "2025-01-11T00:00:00+00:00" }, { "id": "01a0874b-4afa-7208-94bc-76fe0470792c", "title": "Unfettering the imagination", "url": "https://blog.ielliott.io/unfettering-the-imagination", "published_at": "2024-09-22T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e7eabb30b", "title": "Sized types and coinduction in Safe Agda", "url": "https://blog.ielliott.io/sized-types-and-coinduction-in-safe-agda", "published_at": "2024-09-04T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e7ebcee6b", "title": "Per-project Nix substituters", "url": "https://blog.ielliott.io/per-project-nix-substituters", "published_at": "2024-08-10T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e7f2e6f9a", "title": "Troubleshooting LightDM's test mode", "url": "https://blog.ielliott.io/troubleshooting-lightdms-test-mode", "published_at": "2024-08-03T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e7ff50c84", "title": "2023 Project Review", "url": "https://blog.ielliott.io/2023-project-review", "published_at": "2024-01-17T09:40:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e80b7a10c", "title": "Diablo 1 in 2023", "url": "https://blog.ielliott.io/diablo-1-in-2023", "published_at": "2023-07-14T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e817df263", "title": "Nominal Sets", "url": "https://blog.ielliott.io/nominal-sets", "published_at": "2023-07-04T06:41:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e81d9cd9d", "title": "Nominal Sets: Appendix A (Proofs)", "url": "https://blog.ielliott.io/nominal-sets-proofs", "published_at": "2023-07-04T06:40:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e827e8978", "title": "Gear Acquisition Syndrome", "url": "https://blog.ielliott.io/gear-acquisition-syndrome", "published_at": "2023-05-28T06:36:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e833c838b", "title": "Migrating from Jekyll to Hakyll", "url": "https://blog.ielliott.io/jekyll-to-hakyll", "published_at": "2023-05-04T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e83c78940", "title": "Web Resources I Enjoy", "url": "https://blog.ielliott.io/web-resources-i-enjoy", "published_at": "2023-01-10T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e84754509", "title": "2022 Project Review", "url": "https://blog.ielliott.io/2022-project-review", "published_at": "2022-12-27T04:25:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e847fdd63", "title": "RIP Dream.In.Code", "url": "https://blog.ielliott.io/rip-dreamincode", "published_at": "2022-07-06T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e85146737", "title": "WebGL Slower Than Canvas?", "url": "https://blog.ielliott.io/webgl-slower-than-canvas", "published_at": "2021-05-20T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e85819e38", "title": "An Example of Defunctionalisation in Rust", "url": "https://blog.ielliott.io/rust-defun-example", "published_at": "2021-02-06T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e85e0b307", "title": "Docker Cleanup Commands", "url": "https://blog.ielliott.io/docker-cleanup-commands", "published_at": "2020-11-07T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e86b76425", "title": "Statically Sized Higher-kinded Polymorphism", "url": "https://blog.ielliott.io/sized-hkts", "published_at": "2020-07-07T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e86d7c44e", "title": "Lambdas are Codatatypes", "url": "https://blog.ielliott.io/lambdas-are-codatatypes", "published_at": "2019-07-01T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e8712a067", "title": "Configuring Agda's standard library on NixOS", "url": "https://blog.ielliott.io/agda-nixos", "published_at": "2019-05-17T23:49:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e87e0c4fb", "title": "Conditional Probabilities and Obnoxious White Guys", "url": "https://blog.ielliott.io/conditional-probabilities-obnoxious-white-guys", "published_at": "2019-05-05T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e8855afa6", "title": "Learning a Craft", "url": "https://blog.ielliott.io/learning-a-craft", "published_at": "2019-02-11T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e88c92102", "title": "Writing", "url": "https://blog.ielliott.io/writing", "published_at": "2018-12-29T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e898cc66a", "title": "On Programming Language Design", "url": "https://blog.ielliott.io/on-programming-language-design", "published_at": "2018-11-21T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e89b6d287", "title": "Turning bottom-up into top-down with Reverse State", "url": "https://blog.ielliott.io/topsy-turvy-reverse-state", "published_at": "2018-06-13T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e89cb3f01", "title": "Comonad Transformers in the Wild", "url": "https://blog.ielliott.io/comonad-transformers-in-the-wild", "published_at": "2018-02-25T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e8abc5569", "title": "Continuations From the Ground Up", "url": "https://blog.ielliott.io/continuations-from-the-ground-up", "published_at": "2017-06-06T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e8b127411", "title": "How to delete old NixOS boot configurations", "url": "https://blog.ielliott.io/how-to-delete-old-nixos-boot-configurations", "published_at": "2017-03-24T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e8c0a4bdc", "title": "Introduction to Unification", "url": "https://blog.ielliott.io/introduction-to-unification", "published_at": "2017-01-07T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e8ce1475f", "title": "Why LINQ (well, C#) is Broken", "url": "https://blog.ielliott.io/why-LINQ-is-broken", "published_at": "2016-10-24T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e8d9c55b3", "title": "Search and Replace in Multiple Files", "url": "https://blog.ielliott.io/search-and-replace-in-multiple-files", "published_at": "2015-07-25T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e8e7fc1b1", "title": "The Programming Thought Process: Fizzbuzz", "url": "https://blog.ielliott.io/the-programming-thought-process-fizzbuzz", "published_at": "2015-03-04T00:00:00+00:00" }, { "id": "01a0874b-4afb-71be-ad76-849e8e84cf8d", "title": "A Practical Introduction to Monad Transformers", "url": "https://blog.ielliott.io/a-practical-introduction-to-monad-transformers", "published_at": "2015-02-01T00:00:00+00:00" } ] posts Claim your blog
Back to blog.ielliott.io
Blog · corpus.blog/blogs/blog.ielliott.io/posts

blog.ielliott.io

blog.ielliott.io

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015