CS SYD
CS SYD: Technical consulting in Leadership, Haskell, Nix, Rust; Self-management training, Sustainable Products, Speaking engagements and over 200 blog posts
- Posts
- 220 from 29 Jul 2014 to 2 Jul 2026
- Posting
- monthly (6 in the last year)
- Kind
- personal blog
- Feed
- https://cs-syd.eu/atom.xml
2026 6
2025 4
2024 5
2023 12
- What software engineers can learn from traffic lights and turn signals
- Golden tests
- Hygienic Upgrades
- Announcing conformance
- How to turn off the nix flake registry
- Ad-hoc polymorphism erodes type-safety
- Outage postmortem
- Using Smos for Software Development
- Announcing ical: A pessimistic iCalendar (RFC 5545) library
- Announcing Sydtest's profiling mode
- A dancing space leak
- 2022; year in review
2022 6
2021 12
- Announcing genvalidity-1.0.0.0
- Announcing autodocodec
- Your testing portfolio
- Test pollution and how to fix it
- Why mocking is a bad idea
- JSON Vulnerability in Haskell's Aeson library
- The undefined trick
- How to manage your work on GitHub with Smos
- The ci.nix pattern
- Announcing safe-coloured-text
- Watching changes in Yesod
- 2020; Year in review
2020 26
- Haskell Templates Launch
- Haskell Templates: First two templates available
- Haskell Templates
- Hacktoberfest 2020
- Talk: Practical property testing
- Self-management with Smos: Archiving
- How to deal with money in software (deprecated)
- Introduction Self-management with Smos: the waiting-action report
- You are going to be 30 anyway, you might as well be a doctor - @Makingsofabw
- Introduction to self-management with Smos: the next-action report
- Announcing yamlparse-applicative, a self-documenting Yaml parsing library
- Self-management: Clarify and Process
- A language-agnostic introduction to property-based testing
- Self-management: Capture
- Talk: An overview of property testing
- Pieces and tools of self-management
- Option parsing in Haskell, Part 2: A standard approach to settings in Haskell
- Introduction to self-management
- Property testing in depth: genvalidity's fixed-size type generators
- Fuzzy-time
- Announcement: Worldwide empathy for medics
- Announcement: Self-management training
- Talk: Writing a text editor in Haskell with Brick @ F(by) 2020
- Property testing in depth: genvalidity-criterion and genvalidity-* performance improvements
- Property testing in depth: The size parameter
- 2019; year in review
2019 24
- Announcing mergeful, part 3: Cooperative agreement on a collection of values.
- Announcing pretty-relative-time
- Announcing mergeful, part 2: Cooperative agreement on zero or one values
- Hacktoberfest in review
- The polyball prank
- Announcing mergeful, part 1: Cooperative agreement on a single value.
- Hacktoberfest
- How to put your /nix directory on a separate device
- Millismos: Writing a simple forest-editor with brick.
- Announcing cursor-brick
- Cursors, Part 6: The Forest Cursor
- Announcing yesod-static-remote
- Microsmos: Writing a simple tree-editor with brick.
- Announcing looper
- Cursors, Part 5: The Tree Cursor
- How I wrote a proof of concept in five hours and launched a first version in a week
- Make your phone less addicting by eliminating color
- Testing for beginners at Monadic Party
- Nanosmos: Writing a simple text-editor with brick.
- "Everything in moderation" is nonsense
- Property Testing in Haskell
- Cursors, Part 4: The Textfield cursor
- The quitting list
- Cursors, Part 3: The Nonempty List Cursor
2018 17
- 2018; Year in review
- Picosmos: Writing a simple single-line text-editor with brick.
- Cursors, Part 2: The text cursor
- Announcing Validity version 0.9.0.0: Validity of Double
- Cursors, Part 1: Introduction with the List Cursor
- Smos: Writing a Purely Functional Semantic Editor
- Job Ad: Part-time Remote Virtual Assistant
- Announcing exchangerates
- Announcing genvalidity-hspec-optics
- "Speaking" page announcement
- Merge-free synchronisation with mergeless
- Nix, Docker and Haskell
- Website overhaul and support
- Research as a build system with Shake
- 2018 04 28 intray
- How to get less email
- 2017; Year in review
2017 5
2016 33
- Poop deprecation and shitty code
- Safer paths, part 2 - Stop, Reconsider, Contribute
- Safer paths, part 1 - valid and typed paths
- I have not reached the burrito point yet. - Xavier Goás Aguililla
- Adding documentation to the GHC API
- Overcoming Boolean blindness with Evidence
- Custom validity and validity-based testing in Haskell
- Save time, not money
- A configuration loading scheme for tools in Haskell
- Writing a book in Haskell
- A non-trivial term-constraint oracle, and a new Haskell teaching tool
- Estimated reading time in Hakyll
- Reducing the number of slot machines
- It's not about how others look at me. It's about how I look at myself. - Will Fratalli
- How to teach numbers
- Mathematical induction, a practical guide
- A functor is not a box
- Sometimes magic is just someone spending more time on something than anyone else might reasonably expect. - Raymond Joseph Teller
- Working from home? Wear Clothes!
- Type safe Polyvariadic functions in Haskell
- You don't want to finish life knowing you've never been an additional agenda item. - Zuber Anwar
- Have a day - Unknown
- How to enforce better technical debt practices
- Error handling is code too!
- Be careful recruiters, you're being selected too!
- Testing the Super User Spark with HSpec
- Return to taskwarrior
- Math notation inspired by functional programming
- teaching Haskell to a mathematician
- A case against going to class
- Erasmus, the good, the bad and the ugly
- Function equality in Haskell
- "Announcement: Teaching/Coaching"
2015 42
- How I optimized for my exam
- "Haphviz: Graphviz code generation with Haskell"
- "HESS: Haskell E-mail Scraper Spider"
- Configuration design style guide
- Codomains reconsidered
- Do away with predictable boiler-plate using Template Haskell
- How not to be taken seriously.
- Grading a small programming competition
- The responsibility of an appointment
- Debugging random segfaults
- "Super User Spark: Blocks and Cards"
- "Super User Spark: Getting started"
- "Super User Spark: Outof and Alternatives"
- "Postmortem: Rental Scam"
- How to brute-force a mathematics course
- "Bucketlist: Lemons"
- "EDEN: the project Euler Development ENgine"
- Chronicle, A command-line journal system with optional encryption
- A year of blogging
- How to synchronise and back up your dotfiles with the Super User Spark
- "GTD with Taskwarrior, part 5: Doing"
- "GTD with Taskwarrior, part 4: Processing"
- "GTD with Taskwarrior, Part 3: Tickling"
- "GTD with Taskwarrior, Part 2: Collection"
- "GTD with Taskwarrior, Part 1: Intro"
- Stupidity can break anything - Danny Hughes
- Don't find fault, find a remedy. - Henry Ford
- Do you think he plans it all out, or just makes it up as he goes along? - Becket's Officer
- How to prevent someone from using your WiFi, or at least annoy them a little
- If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is. - John von Neumann
- A base n numeral system
- People often say that motivation doesn't last. Well, neither does bathing - that's why we recommend it daily. - Zig Ziglar
- Rows and columns
- Why I don't like TV
- What do we do with our time?
- Because I didn’t know it couldn’t be done, I was enabled to do it. - Bill Atkinson
- Another new keyboard
- The annoyance of percentages
- Get some paper, put it in a typewriter, type FADE IN... and keep typing. - Peter Falk
- "A sleep experiment: The results"
- "A sleep experiment: The setup"
- How to start single-tasking
2014 28
- Every piece of meat I have is the best - Banzan
- Stress free mailboxes
- You don't say "Good luck!". You say "Don't give up!". - The Roots
- A poor man's backup system
- If you’re the smartest person in the room, you’re in the wrong room. - unknown
- Monads by Example
- How to get up early
- I like offending people, because I think people who get offended should be offended. - Linus Torvalds
- "The hidden 'at least'"
- The less you do, the more of it you can do. - Scott Hanselman
- The magic of audiobooks
- Altruism doesn't exist, but that's a good thing!
- Change the way you use your terminal use with this function
- Today is a gift. That's why it is called the present. - Unknown
- Confusing definitions
- We were all huddled together, as wet as water could make us. - Benjamin Franklin
- Getting started with git
- Everyone you will ever meet knows something you don't. - Bill Nye
- "Between programming and mathematics: Statements and Expressions"
- I stopped believing in God when I realised it's just dog backwards - Neil Sutherland
- The switch to dvorak and an ergonomic keyboard
- If you're skating on thin ice, you might as well dance. - Anita Shreve
- The magic of thinking paper
- How to synchronise and back up your dotfiles with the Super User Stone
- Obsessed is just a word the lazy use to describe the dedicated. - Russel Warren
- Intersections of Circles
- The magic of getting up early
- Why I don't like GUIs