41554 blogs · [ { "id": "01a08765-42d3-71e4-89ca-bb5105ac7c6d", "title": "Getting your Haskell executable statically linked with Nix", "url": "https://cs-syd.eu/posts/2024-04-20-static-linking-haskell-nix", "published_at": "2026-07-02T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb510b20d20c", "title": "Announcing Mutation Testing in Haskell", "url": "https://cs-syd.eu/posts/2026-06-03-mutation-testing-in-haskell", "published_at": "2026-06-03T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb510aa91b8f", "title": "I got to the front page of Hackernews and was underwhelmed by the traffic", "url": "https://cs-syd.eu/posts/2026-03-13_i-got-to-the-front-page-of-hackernews-and-was-underwhelmed-by-the-traffic", "published_at": "2026-03-13T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb510a52c134", "title": "Cold takes on the NixCI Blog", "url": "https://cs-syd.eu/posts/2026-03-09_ci-should-fail-on-your-machine-first", "published_at": "2026-03-09T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5109d0404e", "title": "NixCI Blog", "url": "https://cs-syd.eu/posts/2026-02-06-the-purpose-of-continuous-integration-is-to-fail", "published_at": "2026-02-06T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5109ab9991", "title": "2025; year in review", "url": "https://cs-syd.eu/posts/2026-01-01-2025-year-in-review", "published_at": "2026-01-01T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb51094bb4a2", "title": "Highly-available monitoring with Prometheus and Alertmanager on NixOS", "url": "https://cs-syd.eu/posts/2025-07-20-highly-available-monitoring-with-prometheus-and-alertmanager-on-nixos", "published_at": "2025-07-20T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5108af6b12", "title": "Nix does not guarantee reproducibility", "url": "https://cs-syd.eu/posts/2025-03-14-nix-does-not-guarantee-reproducibility", "published_at": "2025-03-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5107b1e682", "title": "This blog has an RSS feed!", "url": "https://cs-syd.eu/posts/2025-01-20-this-blog-has-an-rss-feed", "published_at": "2025-01-20T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb510718daf5", "title": "2024; year in review", "url": "https://cs-syd.eu/posts/2025-01-14-2024-year-in-review", "published_at": "2025-01-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5106d0312d", "title": "How to get the String out of the IO String in Haskell", "url": "https://cs-syd.eu/posts/2024-10-02-how-to-get-the-string-out-of-the-io-string", "published_at": "2024-10-02T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb51065a69c3", "title": "Announcing autodocodec-nix and Nix integration for opt-env-conf", "url": "https://cs-syd.eu/posts/2024-07-29-announcing-autodocodec-nix", "published_at": "2024-07-29T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5106116443", "title": "Announcing opt-env-conf", "url": "https://cs-syd.eu/posts/2024-07-08-announcing-opt-env-conf", "published_at": "2024-07-08T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5105ef2cca", "title": "Announcing weeder-nix", "url": "https://cs-syd.eu/posts/2024-04-27-weeder-nix", "published_at": "2024-04-27T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5104b0afae", "title": "2023; year in review", "url": "https://cs-syd.eu/posts/2024-01-05-2023-year-in-review", "published_at": "2024-01-05T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5103e158e9", "title": "What software engineers can learn from traffic lights and turn signals", "url": "https://cs-syd.eu/posts/2023-12-22-turn-signals", "published_at": "2023-12-22T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5103647b2e", "title": "Golden tests", "url": "https://cs-syd.eu/posts/2023-12-21-golden-tests", "published_at": "2023-12-21T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5102f3ae13", "title": "Hygienic Upgrades", "url": "https://cs-syd.eu/posts/2023-12-16-hygienic-upgrades", "published_at": "2023-12-16T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5102e37943", "title": "Announcing conformance", "url": "https://cs-syd.eu/posts/2023-11-09-announcing-conformance", "published_at": "2023-11-09T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5102c4309f", "title": "How to turn off the nix flake registry", "url": "https://cs-syd.eu/posts/2023-10-10-how-to-turn-off-the-nix-flake-registry", "published_at": "2023-10-10T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5102500561", "title": "Ad-hoc polymorphism erodes type-safety", "url": "https://cs-syd.eu/posts/2023-08-25-ad-hoc-polymorphism-erodes-type-safety", "published_at": "2023-08-25T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5101869320", "title": "Outage postmortem", "url": "https://cs-syd.eu/posts/2023-08-09-outage-postmortem", "published_at": "2023-08-09T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb5100fd1787", "title": "Using Smos for Software Development", "url": "https://cs-syd.eu/posts/2023-07-10-using-smos-for-software-development", "published_at": "2023-07-10T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb510060c8f6", "title": "Announcing ical: A pessimistic iCalendar (RFC 5545) library", "url": "https://cs-syd.eu/posts/2023-04-26-ical", "published_at": "2023-04-26T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50ffd3754e", "title": "Announcing Sydtest's profiling mode", "url": "https://cs-syd.eu/posts/2023-04-05-sydtest-profiling", "published_at": "2023-04-05T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50ff0d8129", "title": "A dancing space leak", "url": "https://cs-syd.eu/posts/2023-01-06-a-dancing-space-leak", "published_at": "2023-01-06T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50fea673a3", "title": "2022; year in review", "url": "https://cs-syd.eu/posts/2023-01-03-2022-year-in-review", "published_at": "2023-01-03T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50fe231b96", "title": "Announcing Dekking: Next generation code coverage reports for Haskell", "url": "https://cs-syd.eu/posts/2022-12-16-announcing-dekking", "published_at": "2022-12-16T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50cf6396a3", "title": "Tightening your feedback loop", "url": "https://cs-syd.eu/posts/2018-02-28-tightening-your-feedback-loop", "published_at": "2022-11-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50fd60ce7c", "title": "Automate your feedback loops using feedback", "url": "https://cs-syd.eu/posts/2022-11-14-automate-your-feedback-loops-using-feedback", "published_at": "2022-11-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50fd330862", "title": "How to deal with money in software", "url": "https://cs-syd.eu/posts/2022-08-22-how-to-deal-with-money-in-software", "published_at": "2022-08-22T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50fc65bc0d", "title": "Announcing safe-coloured-text 0.2.0.0 with a quick primer on character encodings", "url": "https://cs-syd.eu/posts/2022-06-28-safe-coloured-text", "published_at": "2022-06-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50fc4f77ee", "title": "2021; Year in review", "url": "https://cs-syd.eu/posts/2022-01-01-2021-year-in-review", "published_at": "2022-01-01T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50fb84a154", "title": "Announcing genvalidity-1.0.0.0", "url": "https://cs-syd.eu/posts/2021-11-26-genvalidity", "published_at": "2021-11-26T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50fb79720d", "title": "Announcing autodocodec", "url": "https://cs-syd.eu/posts/2021-11-19-autodocodec", "published_at": "2021-11-19T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50fad106a5", "title": "Your testing portfolio", "url": "https://cs-syd.eu/posts/2021-10-24-your-testing-portfolio", "published_at": "2021-10-24T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50fa8ad66f", "title": "Test pollution and how to fix it", "url": "https://cs-syd.eu/posts/2021-10-23-test-pollution", "published_at": "2021-10-23T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f9a5480b", "title": "Why mocking is a bad idea", "url": "https://cs-syd.eu/posts/2021-10-22-why-mocking-is-a-bad-idea", "published_at": "2021-10-22T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f8ba367b", "title": "JSON Vulnerability in Haskell's Aeson library", "url": "https://cs-syd.eu/posts/2021-09-11-json-vulnerability", "published_at": "2021-09-11T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f8358b48", "title": "The undefined trick", "url": "https://cs-syd.eu/posts/2021-09-10-undefined-trick", "published_at": "2021-09-10T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f7a9bc39", "title": "How to manage your work on GitHub with Smos", "url": "https://cs-syd.eu/posts/2021-05-19-how-to-manage-your-github-with-smos", "published_at": "2021-05-19T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f6c6d277", "title": "The ci.nix pattern", "url": "https://cs-syd.eu/posts/2021-04-11-the-ci-nix-pattern", "published_at": "2021-04-11T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f6389214", "title": "Announcing safe-coloured-text", "url": "https://cs-syd.eu/posts/2021-03-07-safe-coloured-text", "published_at": "2021-03-07T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f5bec7e5", "title": "Watching changes in Yesod", "url": "https://cs-syd.eu/posts/2021-02-27-watching-changes-in-yesod", "published_at": "2021-02-27T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f4fd1c7d", "title": "2020; Year in review", "url": "https://cs-syd.eu/posts/2021-02-04-2020-year-in-review", "published_at": "2021-02-04T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f4c8cdc3", "title": "Haskell Templates Launch", "url": "https://cs-syd.eu/posts/2020-11-07-haskell-templates-five", "published_at": "2020-11-07T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f498a23c", "title": "Haskell Templates: First two templates available", "url": "https://cs-syd.eu/posts/2020-10-23-haskell-templates-first-two-templates", "published_at": "2020-10-23T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f4065187", "title": "Haskell Templates", "url": "https://cs-syd.eu/posts/2020-10-08-haskell-templates-validation", "published_at": "2020-10-08T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f34987d1", "title": "Hacktoberfest 2020", "url": "https://cs-syd.eu/posts/2020-10-01-hacktoberfest-2020", "published_at": "2020-10-01T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f2538f7a", "title": "Talk: Practical property testing", "url": "https://cs-syd.eu/posts/2020-09-28-talk-property-testing-in-practice", "published_at": "2020-09-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f16b5b26", "title": "Self-management with Smos: Archiving", "url": "https://cs-syd.eu/posts/2020-08-07-smos-archive", "published_at": "2020-08-07T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f1281c48", "title": "How to deal with money in software (deprecated)", "url": "https://cs-syd.eu/posts/2020-07-28-how-to-deal-with-money-in-software", "published_at": "2020-07-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f0329713", "title": "Introduction Self-management with Smos: the waiting-action report", "url": "https://cs-syd.eu/posts/2020-07-21-waiting", "published_at": "2020-07-21T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50f031447f", "title": "You are going to be 30 anyway, you might as well be a doctor - @Makingsofabw", "url": "https://cs-syd.eu/quotes/2020-07-14-you-are-going-to-be-30-anyway---makingsofabw", "published_at": "2020-07-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50efb1fa49", "title": "Introduction to self-management with Smos: the next-action report", "url": "https://cs-syd.eu/posts/2020-07-07-intro-to-gtd-with-smos", "published_at": "2020-07-07T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50eed23303", "title": "Announcing yamlparse-applicative, a self-documenting Yaml parsing library", "url": "https://cs-syd.eu/posts/2020-06-28-yamlparse-applicative", "published_at": "2020-06-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50edd8382b", "title": "Self-management: Clarify and Process", "url": "https://cs-syd.eu/posts/2020-06-21-processing", "published_at": "2020-06-21T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50ed3500fe", "title": "A language-agnostic introduction to property-based testing", "url": "https://cs-syd.eu/posts/2020-06-14-introduction-to-property-based-testing", "published_at": "2020-06-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50ec582695", "title": "Self-management: Capture", "url": "https://cs-syd.eu/posts/2020-06-07-capture", "published_at": "2020-06-07T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50ebe65f7c", "title": "Talk: An overview of property testing", "url": "https://cs-syd.eu/posts/2020-05-28-talk-an-overview-of-property-testing", "published_at": "2020-05-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50eb169abb", "title": "Pieces and tools of self-management", "url": "https://cs-syd.eu/posts/2020-05-21-pieces-of-self-management", "published_at": "2020-05-21T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50eac61c2c", "title": "Option parsing in Haskell, Part 2: A standard approach to settings in Haskell", "url": "https://cs-syd.eu/posts/2020-05-14-option-parsing-2", "published_at": "2020-05-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50ea89cd26", "title": "Introduction to self-management", "url": "https://cs-syd.eu/posts/2020-05-07-intro-to-self-management", "published_at": "2020-05-07T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e9b9313b", "title": "Property testing in depth: genvalidity's fixed-size type generators", "url": "https://cs-syd.eu/posts/2020-04-28-genvalidity-improvements", "published_at": "2020-04-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e9546e07", "title": "Fuzzy-time", "url": "https://cs-syd.eu/posts/2020-04-14-fuzzy-time", "published_at": "2020-04-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e8590a42", "title": "Announcement: Worldwide empathy for medics", "url": "https://cs-syd.eu/posts/2020-03-28-worldwide-empathy-for-meds", "published_at": "2020-03-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e7af9a1f", "title": "Announcement: Self-management training", "url": "https://cs-syd.eu/posts/2020-03-14-self-management-training", "published_at": "2020-03-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e7194af1", "title": "Talk: Writing a text editor in Haskell with Brick @ F(by) 2020", "url": "https://cs-syd.eu/posts/2020-02-27-talk-writing-a-text-editor-in-haskell-with-brick", "published_at": "2020-02-27T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e6cc5d5f", "title": "Property testing in depth: genvalidity-criterion and genvalidity-* performance improvements", "url": "https://cs-syd.eu/posts/2020-02-14-genvalidity-performance", "published_at": "2020-02-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e65604d4", "title": "Property testing in depth: The size parameter", "url": "https://cs-syd.eu/posts/2020-01-28-property-testing-size", "published_at": "2020-01-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e627c357", "title": "2019; year in review", "url": "https://cs-syd.eu/posts/2020-01-14-2019-year-in-review", "published_at": "2020-01-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e6269180", "title": "Announcing mergeful, part 3: Cooperative agreement on a collection of values.", "url": "https://cs-syd.eu/posts/2019-12-28-mergeful-collection", "published_at": "2019-12-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e589fdf8", "title": "Announcing pretty-relative-time", "url": "https://cs-syd.eu/posts/2019-12-14-pretty-relative-time", "published_at": "2019-12-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e5630d9a", "title": "Announcing mergeful, part 2: Cooperative agreement on zero or one values", "url": "https://cs-syd.eu/posts/2019-11-28-mergeful-item", "published_at": "2019-11-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e54021ab", "title": "Hacktoberfest in review", "url": "https://cs-syd.eu/posts/2019-11-14-hacktoberfest-in-review", "published_at": "2019-11-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e448b5b7", "title": "The polyball prank", "url": "https://cs-syd.eu/posts/2019-10-28-polyball", "published_at": "2019-10-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e36a0269", "title": "Announcing mergeful, part 1: Cooperative agreement on a single value.", "url": "https://cs-syd.eu/posts/2019-10-14-mergeful-value", "published_at": "2019-10-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e28fc854", "title": "Hacktoberfest", "url": "https://cs-syd.eu/posts/2019-09-28-hacktoberfest", "published_at": "2019-09-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e1d9899e", "title": "How to put your /nix directory on a separate device", "url": "https://cs-syd.eu/posts/2019-09-14-nix-on-seperate-device", "published_at": "2019-09-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e12e6cce", "title": "Millismos: Writing a simple forest-editor with brick.", "url": "https://cs-syd.eu/posts/2019-08-28-millismos", "published_at": "2019-08-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e10b1347", "title": "Announcing cursor-brick", "url": "https://cs-syd.eu/posts/2019-08-14-cursor-brick", "published_at": "2019-08-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50e03dd6e4", "title": "Cursors, Part 6: The Forest Cursor", "url": "https://cs-syd.eu/posts/2019-07-28-cursors-forest", "published_at": "2019-07-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50dffe59f7", "title": "Announcing yesod-static-remote", "url": "https://cs-syd.eu/posts/2019-07-14-yesod-static-remote", "published_at": "2019-07-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50df4039df", "title": "Microsmos: Writing a simple tree-editor with brick.", "url": "https://cs-syd.eu/posts/2019-06-28-microsmos", "published_at": "2019-06-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50deeae8bd", "title": "Announcing looper", "url": "https://cs-syd.eu/posts/2019-06-14-looper", "published_at": "2019-06-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50de89b6bf", "title": "Cursors, Part 5: The Tree Cursor", "url": "https://cs-syd.eu/posts/2019-05-28-cursors-tree", "published_at": "2019-05-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50de4c6ba4", "title": "How I wrote a proof of concept in five hours and launched a first version in a week", "url": "https://cs-syd.eu/posts/2019-05-14-how-i-wrote-a-proof-of-concept-in-five-hours-and-launched-a-first-version-in-a-week", "published_at": "2019-05-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50dd5167ea", "title": "Make your phone less addicting by eliminating color", "url": "https://cs-syd.eu/posts/2019-04-28-make-your-phone-less-addicting", "published_at": "2019-04-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50dc6df5ce", "title": "Testing for beginners at Monadic Party", "url": "https://cs-syd.eu/posts/2019-04-14-testing-at-monadic-party", "published_at": "2019-04-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50dc50a5ba", "title": "Nanosmos: Writing a simple text-editor with brick.", "url": "https://cs-syd.eu/posts/2019-03-28-nanosmos", "published_at": "2019-03-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50dbd110d1", "title": "\"Everything in moderation\" is nonsense", "url": "https://cs-syd.eu/posts/2019-03-14-moderation", "published_at": "2019-03-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50db6507e1", "title": "Property Testing in Haskell", "url": "https://cs-syd.eu/posts/2019-02-28-property-testing", "published_at": "2019-02-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50daa76e83", "title": "Cursors, Part 4: The Textfield cursor", "url": "https://cs-syd.eu/posts/2019-02-14-cursors-textfield", "published_at": "2019-02-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50d9c37104", "title": "The quitting list", "url": "https://cs-syd.eu/posts/2019-01-28-the-quitting-list", "published_at": "2019-01-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50d8c5b9d7", "title": "Cursors, Part 3: The Nonempty List Cursor", "url": "https://cs-syd.eu/posts/2019-01-14-cursors-nonempty-list", "published_at": "2019-01-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50d8458e47", "title": "2018; Year in review", "url": "https://cs-syd.eu/posts/2018-12-28-2018-year-in-review", "published_at": "2018-12-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50d76cec10", "title": "Picosmos: Writing a simple single-line text-editor with brick.", "url": "https://cs-syd.eu/posts/2018-12-14-picosmos", "published_at": "2018-12-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50d6cd1273", "title": "Cursors, Part 2: The text cursor", "url": "https://cs-syd.eu/posts/2018-11-28-cursors-text", "published_at": "2018-11-28T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50d647b61a", "title": "Announcing Validity version 0.9.0.0: Validity of Double", "url": "https://cs-syd.eu/posts/2018-11-14-validity-double", "published_at": "2018-11-14T00:00:00+00:00" }, { "id": "01a08765-42d3-71e4-89ca-bb50d5fd67f8", "title": "Cursors, Part 1: Introduction with the List Cursor", "url": "https://cs-syd.eu/posts/2018-10-28-cursor-list", "published_at": "2018-10-28T00:00:00+00:00" } ] posts Claim your blog
Back to cs-syd.eu
Blog · corpus.blog/blogs/cs-syd.eu/posts

cs-syd.eu

cs-syd.eu

2026

2025

2024

2023

2022

2021

2020

2019

2018