# CS SYD > Technical blog and consulting website by Tom Sydney Kerckhove. Topics include Haskell, Nix, Rust, productivity, and software engineering. ## About CS SYD is the personal website of Tom Sydney Kerckhove, a software consultant specializing in Haskell and functional programming. ## Main Pages - [Home](https://staging.cs-syd.eu/) - [About](https://staging.cs-syd.eu/about) - [Consulting](https://staging.cs-syd.eu/consulting) - [Self-Management](https://staging.cs-syd.eu/self-management) - [Speaking](https://staging.cs-syd.eu/speaking) ## Documentation - [Notes](https://staging.cs-syd.eu/notes) - [Talks](https://staging.cs-syd.eu/talks) - [Thesis](https://staging.cs-syd.eu/thesis) ## Feeds - [RSS](https://staging.cs-syd.eu/rss.xml) - [Atom](https://staging.cs-syd.eu/atom.xml) - [Sitemap](https://staging.cs-syd.eu/sitemap.xml) ## Content Access All blog posts and pages support content negotiation. Request with `Accept: text/markdown` header to receive raw markdown source. You can also append .md to the URL to get the markdown version directly. ## Posts - [2025; year in review](https://staging.cs-syd.eu/posts/2026-01-01-2025-year-in-review) - [Highly-available monitoring with Prometheus and Alertmanager on NixOS](https://staging.cs-syd.eu/posts/2025-07-20-highly-available-monitoring-with-prometheus-and-alertmanager-on-nixos) - [Nix does not guarantee reproducibility](https://staging.cs-syd.eu/posts/2025-03-14-nix-does-not-guarantee-reproducibility) - [This blog has an RSS feed!](https://staging.cs-syd.eu/posts/2025-01-20-this-blog-has-an-rss-feed) - [2024; year in review](https://staging.cs-syd.eu/posts/2025-01-14-2024-year-in-review) - [How to get the String out of the IO String in Haskell](https://staging.cs-syd.eu/posts/2024-10-02-how-to-get-the-string-out-of-the-io-string) - [Announcing autodocodec-nix and Nix integration for opt-env-conf](https://staging.cs-syd.eu/posts/2024-07-29-announcing-autodocodec-nix) - [Announcing opt-env-conf](https://staging.cs-syd.eu/posts/2024-07-08-announcing-opt-env-conf) - [Announcing weeder-nix](https://staging.cs-syd.eu/posts/2024-04-27-weeder-nix) - [Getting your Haskell executable statically linked with Nix](https://staging.cs-syd.eu/posts/2024-04-20-static-linking-haskell-nix) - [2023; year in review](https://staging.cs-syd.eu/posts/2024-01-05-2023-year-in-review) - [What software engineers can learn from traffic lights and turn signals](https://staging.cs-syd.eu/posts/2023-12-22-turn-signals) - [Golden tests](https://staging.cs-syd.eu/posts/2023-12-21-golden-tests) - [Hygienic Upgrades](https://staging.cs-syd.eu/posts/2023-12-16-hygienic-upgrades) - [Announcing conformance](https://staging.cs-syd.eu/posts/2023-11-09-announcing-conformance) - [How to turn off the nix flake registry](https://staging.cs-syd.eu/posts/2023-10-10-how-to-turn-off-the-nix-flake-registry) - [Ad-hoc polymorphism erodes type-safety](https://staging.cs-syd.eu/posts/2023-08-25-ad-hoc-polymorphism-erodes-type-safety) - [Outage postmortem](https://staging.cs-syd.eu/posts/2023-08-09-outage-postmortem) - [Using Smos for Software Development](https://staging.cs-syd.eu/posts/2023-07-10-using-smos-for-software-development) - [Announcing ical: A pessimistic iCalendar (RFC 5545) library](https://staging.cs-syd.eu/posts/2023-04-26-ical) - [Announcing Sydtest's profiling mode](https://staging.cs-syd.eu/posts/2023-04-05-sydtest-profiling) - [A dancing space leak](https://staging.cs-syd.eu/posts/2023-01-06-a-dancing-space-leak) - [2022; year in review](https://staging.cs-syd.eu/posts/2023-01-03-2022-year-in-review) - [Announcing Dekking: Next generation code coverage reports for Haskell](https://staging.cs-syd.eu/posts/2022-12-16-announcing-dekking) - [Automate your feedback loops using feedback](https://staging.cs-syd.eu/posts/2022-11-14-automate-your-feedback-loops-using-feedback) - [How to deal with money in software](https://staging.cs-syd.eu/posts/2022-08-22-how-to-deal-with-money-in-software) - [Announcing safe-coloured-text 0.2.0.0 with a quick primer on character encodings](https://staging.cs-syd.eu/posts/2022-06-28-safe-coloured-text) - [2021; Year in review](https://staging.cs-syd.eu/posts/2022-01-01-2021-year-in-review) - [Announcing genvalidity-1.0.0.0](https://staging.cs-syd.eu/posts/2021-11-26-genvalidity) - [Announcing autodocodec](https://staging.cs-syd.eu/posts/2021-11-19-autodocodec) - [Your testing portfolio](https://staging.cs-syd.eu/posts/2021-10-24-your-testing-portfolio) - [Test pollution and how to fix it](https://staging.cs-syd.eu/posts/2021-10-23-test-pollution) - [Why mocking is a bad idea](https://staging.cs-syd.eu/posts/2021-10-22-why-mocking-is-a-bad-idea) - [JSON Vulnerability in Haskell's Aeson library](https://staging.cs-syd.eu/posts/2021-09-11-json-vulnerability) - [The undefined trick](https://staging.cs-syd.eu/posts/2021-09-10-undefined-trick) - [How to manage your work on GitHub with Smos](https://staging.cs-syd.eu/posts/2021-05-19-how-to-manage-your-github-with-smos) - [The ci.nix pattern](https://staging.cs-syd.eu/posts/2021-04-11-the-ci-nix-pattern) - [Announcing safe-coloured-text](https://staging.cs-syd.eu/posts/2021-03-07-safe-coloured-text) - [Watching changes in Yesod](https://staging.cs-syd.eu/posts/2021-02-27-watching-changes-in-yesod) - [2020; Year in review](https://staging.cs-syd.eu/posts/2021-02-04-2020-year-in-review) - [Haskell Templates Launch](https://staging.cs-syd.eu/posts/2020-11-07-haskell-templates-five) - [Haskell Templates: First two templates available](https://staging.cs-syd.eu/posts/2020-10-23-haskell-templates-first-two-templates) - [Haskell Templates](https://staging.cs-syd.eu/posts/2020-10-08-haskell-templates-validation) - [Hacktoberfest 2020](https://staging.cs-syd.eu/posts/2020-10-01-hacktoberfest-2020) - [Talk: Practical property testing](https://staging.cs-syd.eu/posts/2020-09-28-talk-property-testing-in-practice) - [Self-management with Smos: Archiving](https://staging.cs-syd.eu/posts/2020-08-07-smos-archive) - [How to deal with money in software](https://staging.cs-syd.eu/posts/2020-07-28-how-to-deal-with-money-in-software) - [Introduction Self-management with Smos: the waiting-action report](https://staging.cs-syd.eu/posts/2020-07-21-waiting) - [You are going to be 30 anyway, you might as well be a doctor - @Makingsofabw](https://staging.cs-syd.eu/quotes/2020-07-14-you-are-going-to-be-30-anyway---makingsofabw) - [Introduction to self-management with Smos: the next-action report](https://staging.cs-syd.eu/posts/2020-07-07-intro-to-gtd-with-smos) - [Announcing yamlparse-applicative, a self-documenting Yaml parsing library](https://staging.cs-syd.eu/posts/2020-06-28-yamlparse-applicative) - [Self-management: Clarify and Process](https://staging.cs-syd.eu/posts/2020-06-21-processing) - [A language-agnostic introduction to property-based testing](https://staging.cs-syd.eu/posts/2020-06-14-introduction-to-property-based-testing) - [Self-management: Capture](https://staging.cs-syd.eu/posts/2020-06-07-capture) - [Talk: An overview of property testing](https://staging.cs-syd.eu/posts/2020-05-28-talk-an-overview-of-property-testing) - [Pieces and tools of self-management](https://staging.cs-syd.eu/posts/2020-05-21-pieces-of-self-management) - [Option parsing in Haskell, Part 2: A standard approach to settings in Haskell](https://staging.cs-syd.eu/posts/2020-05-14-option-parsing-2) - [Introduction to self-management](https://staging.cs-syd.eu/posts/2020-05-07-intro-to-self-management) - [Property testing in depth: genvalidity's fixed-size type generators](https://staging.cs-syd.eu/posts/2020-04-28-genvalidity-improvements) - [Fuzzy-time](https://staging.cs-syd.eu/posts/2020-04-14-fuzzy-time) - [Announcement: Worldwide empathy for medics](https://staging.cs-syd.eu/posts/2020-03-28-worldwide-empathy-for-meds) - [Announcement: Self-management training](https://staging.cs-syd.eu/posts/2020-03-14-self-management-training) - [Talk: Writing a text editor in Haskell with Brick @ F(by) 2020](https://staging.cs-syd.eu/posts/2020-02-27-talk-writing-a-text-editor-in-haskell-with-brick) - [Property testing in depth: genvalidity-criterion and genvalidity-* performance improvements](https://staging.cs-syd.eu/posts/2020-02-14-genvalidity-performance) - [Property testing in depth: The size parameter](https://staging.cs-syd.eu/posts/2020-01-28-property-testing-size) - [2019; year in review](https://staging.cs-syd.eu/posts/2020-01-14-2019-year-in-review) - [Announcing mergeful, part 3: Cooperative agreement on a collection of values.](https://staging.cs-syd.eu/posts/2019-12-28-mergeful-collection) - [Announcing pretty-relative-time](https://staging.cs-syd.eu/posts/2019-12-14-pretty-relative-time) - [Announcing mergeful, part 2: Cooperative agreement on zero or one values](https://staging.cs-syd.eu/posts/2019-11-28-mergeful-item) - [Hacktoberfest in review](https://staging.cs-syd.eu/posts/2019-11-14-hacktoberfest-in-review) - [The polyball prank](https://staging.cs-syd.eu/posts/2019-10-28-polyball) - [Announcing mergeful, part 1: Cooperative agreement on a single value.](https://staging.cs-syd.eu/posts/2019-10-14-mergeful-value) - [Hacktoberfest](https://staging.cs-syd.eu/posts/2019-09-28-hacktoberfest) - [How to put your /nix directory on a separate device](https://staging.cs-syd.eu/posts/2019-09-14-nix-on-seperate-device) - [Millismos: Writing a simple forest-editor with brick.](https://staging.cs-syd.eu/posts/2019-08-28-millismos) - [Announcing cursor-brick](https://staging.cs-syd.eu/posts/2019-08-14-cursor-brick) - [Cursors, Part 6: The Forest Cursor](https://staging.cs-syd.eu/posts/2019-07-28-cursors-forest) - [Announcing yesod-static-remote](https://staging.cs-syd.eu/posts/2019-07-14-yesod-static-remote) - [Microsmos: Writing a simple tree-editor with brick.](https://staging.cs-syd.eu/posts/2019-06-28-microsmos) - [Announcing looper](https://staging.cs-syd.eu/posts/2019-06-14-looper) - [Cursors, Part 5: The Tree Cursor](https://staging.cs-syd.eu/posts/2019-05-28-cursors-tree) - [How I wrote a proof of concept in five hours and launched a first version in a week](https://staging.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) - [Make your phone less addicting by eliminating color](https://staging.cs-syd.eu/posts/2019-04-28-make-your-phone-less-addicting) - [Testing for beginners at Monadic Party](https://staging.cs-syd.eu/posts/2019-04-14-testing-at-monadic-party) - [Nanosmos: Writing a simple text-editor with brick.](https://staging.cs-syd.eu/posts/2019-03-28-nanosmos) - ["Everything in moderation" is nonsense](https://staging.cs-syd.eu/posts/2019-03-14-moderation) - [Property Testing in Haskell](https://staging.cs-syd.eu/posts/2019-02-28-property-testing) - [Cursors, Part 4: The Textfield cursor](https://staging.cs-syd.eu/posts/2019-02-14-cursors-textfield) - [The quitting list](https://staging.cs-syd.eu/posts/2019-01-28-the-quitting-list) - [Cursors, Part 3: The Nonempty List Cursor](https://staging.cs-syd.eu/posts/2019-01-14-cursors-nonempty-list) - [2018; Year in review](https://staging.cs-syd.eu/posts/2018-12-28-2018-year-in-review) - [Picosmos: Writing a simple single-line text-editor with brick.](https://staging.cs-syd.eu/posts/2018-12-14-picosmos) - [Cursors, Part 2: The text cursor](https://staging.cs-syd.eu/posts/2018-11-28-cursors-text) - [Announcing Validity version 0.9.0.0: Validity of Double](https://staging.cs-syd.eu/posts/2018-11-14-validity-double) - [Cursors, Part 1: Introduction with the List Cursor](https://staging.cs-syd.eu/posts/2018-10-28-cursor-list) - [Smos: Writing a Purely Functional Semantic Editor](https://staging.cs-syd.eu/posts/2018-10-14-pfse-intro) - [Job Ad: Part-time Remote Virtual Assistant](https://staging.cs-syd.eu/posts/2018-09-28-job-ad-virtual-assistant) - [Announcing exchangerates](https://staging.cs-syd.eu/posts/2018-09-14-exchangerates) - [Announcing genvalidity-hspec-optics](https://staging.cs-syd.eu/posts/2018-08-28-genvalidity-hspec-optics) - [Speaking](https://staging.cs-syd.eu/posts/2018-08-14-speaking) - [Merge-free synchronisation with mergeless](https://staging.cs-syd.eu/posts/2018-07-28-mergeless) - [Nix, Docker and Haskell](https://staging.cs-syd.eu/posts/2018-07-14-nix-docker-haskell) - [Website overhaul and support](https://staging.cs-syd.eu/posts/2018-06-28-overhaul) - [Research as a build system with Shake](https://staging.cs-syd.eu/posts/2018-05-28-research-as-a-build-system) - [Intray](https://staging.cs-syd.eu/posts/2018-04-28-intray) - [How to get less email](https://staging.cs-syd.eu/posts/2018-03-28-how-to-get-less-email) - [Tightening your feedback loop](https://staging.cs-syd.eu/posts/2018-02-28-tightening-your-feedback-loop) - [2017; Year in review](https://staging.cs-syd.eu/posts/2018-01-28-2017-year-in-review) - [Parsing command line arguments](https://staging.cs-syd.eu/posts/2017-12-28-parsing-command-line-arguments) - [Validity Talks with Patat](https://staging.cs-syd.eu/posts/2017-11-28-validity-talks) - [The madness of paths](https://staging.cs-syd.eu/posts/2017-10-28-the-madness-of-paths) - [Property discovery at Haskell eXchange 2017](https://staging.cs-syd.eu/posts/2017-09-28-property-discovery-at-haskell-exchange) - [The annoyance of twelve hour clocks](https://staging.cs-syd.eu/posts/2017-08-28-the-annoyance-of-twelve-hour-clocks) - [Poop deprecation and shitty code](https://staging.cs-syd.eu/posts/2016-08-28-poop-deprecation) - [Safer paths, part 2 - Stop, Reconsider, Contribute](https://staging.cs-syd.eu/posts/2016-08-21-safer-paths-part-2---stop-reconsider-contribute) - [Safer paths, part 1 - valid and typed paths](https://staging.cs-syd.eu/posts/2016-08-14-safer-paths-part-1-valid-and-typed-paths) - [I have not reached the burrito point yet. - Xavier Goás Aguililla](https://staging.cs-syd.eu/quotes/2016-08-07-i-have-not-reached-the-burrito-point-yet---xavier-goas-aguililla) - [Adding documentation to the GHC API](https://staging.cs-syd.eu/posts/2016-07-31-adding-documentation-to-the-ghc-api) - [Overcoming Boolean blindness with Evidence](https://staging.cs-syd.eu/posts/2016-07-24-overcoming-boolean-blindness-evidence) - [Custom validity and validity-based testing in Haskell](https://staging.cs-syd.eu/posts/2016-07-17-custom-validity-and-validity-based-testing-in-haskell) - [Save time, not money](https://staging.cs-syd.eu/posts/2016-07-10-save-time-not-money) - [A configuration loading scheme for tools in Haskell](https://staging.cs-syd.eu/posts/2016-06-26-a-configuration-loading-scheme-for-tools-in-haskell) - [Writing a book in Haskell](https://staging.cs-syd.eu/posts/2016-06-19-writing-a-book-in-haskell) - [A non-trivial term-constraint oracle, and a new Haskell teaching tool](https://staging.cs-syd.eu/posts/2016-06-11-a-non-trivial-term-constraint-oracle-and-a-new-haskell-teaching-tool) - [Estimated reading time in Hakyll](https://staging.cs-syd.eu/posts/2016-06-05-estimated-reading-time-in-hakyll) - [Reducing the number of slot machines](https://staging.cs-syd.eu/posts/2016-05-29-reducing-the-number-of-slotmachines) - [It's not about how others look at me. It's about how I look at myself. - Will Fratalli](https://staging.cs-syd.eu/quotes/2016-05-22-its-not-about-how-others-look-at-me-its-about-how-i-look-at-myself---will-fratalli) - [How to teach numbers](https://staging.cs-syd.eu/posts/2016-05-15-how-to-teach-numbers) - [Mathematical induction, a practical guide](https://staging.cs-syd.eu/posts/2016-05-07-mathematical-induction) - [A functor is not a box](https://staging.cs-syd.eu/posts/2016-04-30-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](https://staging.cs-syd.eu/quotes/2016-04-24-sometimes-magic-is-just-someone-spending-more-time-on-something-than-anyone-else-might-reasonably-expect---raymond-joseph-teller) - [Working from home? Wear Clothes!](https://staging.cs-syd.eu/posts/2016-04-17-working-from-home-wear-clothes) - [Type safe Polyvariadic functions in Haskell](https://staging.cs-syd.eu/posts/2016-04-09-typesafe-polyvariadic-functions-in-haskell) - [You don't want to finish life knowing you've never been an additional agenda item. - Zuber Anwar](https://staging.cs-syd.eu/quotes/2016-04-03-you-dont-want-to-finish-life-knowing-youve-never-been-an-additional-agenda-item---zuber-anwar) - [Have a day - Unknown](https://staging.cs-syd.eu/quotes/2016-03-27-have-a-day---unknown) - [How to enforce better technical debt practices](https://staging.cs-syd.eu/posts/2016-03-20-how-to-enforce-better-technical-debt-practices) - [Error handling is code too!](https://staging.cs-syd.eu/posts/2016-03-13-error-handling-is-code-too) - [Be careful recruiters, you're being selected too!](https://staging.cs-syd.eu/posts/2016-03-06-be-careful-recruiters-youre-being-selected-too) - [Testing the Super User Spark with HSpec](https://staging.cs-syd.eu/posts/2016-02-28-testing-the-super-user-spark-with-hspec) - [Return to taskwarrior](https://staging.cs-syd.eu/posts/2016-02-21-return-to-taskwarrior) - [Math notation inspired by functional programming](https://staging.cs-syd.eu/posts/2016-02-14-math-notation-inspired-by-functional-programming) - [teaching Haskell to a mathematician](https://staging.cs-syd.eu/posts/2016-02-07-teaching-haskell-to-a-mathematician) - [A case against going to class](https://staging.cs-syd.eu/posts/2016-01-31-a-case-against-going-to-class) - [Erasmus, the good, the bad and the ugly](https://staging.cs-syd.eu/posts/2016-01-24-erasmus-the-good-the-bad-and-the-ugly) - [Function equality in Haskell](https://staging.cs-syd.eu/posts/2016-01-17-function-equality-in-haskell) - ["Announcement: Teaching/Coaching"](https://staging.cs-syd.eu/posts/2016-01-10-announcement-teaching-coaching) - [How I optimized for my exam](https://staging.cs-syd.eu/posts/2015-12-27-how-i-optimized-for-my-exam) - ["Haphviz: Graphviz code generation with Haskell"](https://staging.cs-syd.eu/posts/2015-12-20-haphviz-graphviz-code-generation-with-haskell) - ["HESS: Haskell E-mail Scraper Spider"](https://staging.cs-syd.eu/posts/2015-12-12-hess-haskell-e-mail-scraper-spider) - [Configuration design style guide](https://staging.cs-syd.eu/posts/2015-12-06-configuration-design-style-guide) - [Codomains reconsidered](https://staging.cs-syd.eu/posts/2015-11-30-codomains-reconsidered) - [Do away with predictable boiler-plate using Template Haskell](https://staging.cs-syd.eu/posts/2015-11-22-do-away-with-predictable-boiler-plate-using-template-haskell) - [How not to be taken seriously.](https://staging.cs-syd.eu/posts/2015-11-15-how-not-to-be-taken-seriously) - [Grading a small programming competition](https://staging.cs-syd.eu/posts/2015-10-30-grading-a-small-programming-competition) - [The responsibility of an appointment](https://staging.cs-syd.eu/posts/2015-10-25-the-responsibility-of-an-appointment) - [Debugging random segfaults](https://staging.cs-syd.eu/posts/2015-10-17-debugging-random-segfaults) - ["Super User Spark: Blocks and Cards"](https://staging.cs-syd.eu/posts/2015-10-11-super-user-spark-blocks-and-cards) - ["Super User Spark: Outof and Alternatives"](https://staging.cs-syd.eu/posts/2015-10-04-super-user-spark-outof-and-alternatives) - ["Super User Spark: Getting started"](https://staging.cs-syd.eu/posts/2015-09-27-super-user-spark-getting-started) - ["Postmortem: Rental Scam"](https://staging.cs-syd.eu/posts/2015-09-20-postmortem-rental-scam) - [How to brute-force a mathematics course](https://staging.cs-syd.eu/posts/2015-09-13-how-to-brute-force-a-mathematics-course) - ["Bucketlist: Lemons"](https://staging.cs-syd.eu/posts/2015-08-30-bucketlist-lemons) - ["EDEN: the project Euler Development ENgine"](https://staging.cs-syd.eu/posts/2015-08-23-eden-the-project-euler-development-engine) - [Chronicle, A command-line journal system with optional encryption](https://staging.cs-syd.eu/posts/2015-08-02-chronicle-a-command-line-journal-system-with-optional-encryption) - [A year of blogging](https://staging.cs-syd.eu/posts/2015-07-26-a-year-of-blogging) - [How to synchronise and back up your dotfiles with the Super User Spark](https://staging.cs-syd.eu/posts/2015-07-19-super-user-spark) - ["GTD with Taskwarrior, part 5: Doing"](https://staging.cs-syd.eu/posts/2015-07-12-gtd-with-taskwarrior-part-5-doing) - ["GTD with Taskwarrior, part 4: Processing"](https://staging.cs-syd.eu/posts/2015-07-05-gtd-with-taskwarrior-part-4-processing) - ["GTD with Taskwarrior, Part 3: Tickling"](https://staging.cs-syd.eu/posts/2015-06-28-gtd-with-taskwarrior-part-3-tickling) - ["GTD with Taskwarrior, Part 2: Collection"](https://staging.cs-syd.eu/posts/2015-06-21-gtd-with-taskwarrior-part-2-collection) - ["GTD with Taskwarrior, Part 1: Intro"](https://staging.cs-syd.eu/posts/2015-06-14-gtd-with-taskwarrior-part-1-intro) - [Stupidity can break anything - Danny Hughes](https://staging.cs-syd.eu/quotes/2015-05-17-stupidity-can-break-anything---danny-hughes) - [Don't find fault, find a remedy. - Henry Ford](https://staging.cs-syd.eu/quotes/2015-05-03-dont-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](https://staging.cs-syd.eu/quotes/2015-04-12-do-you-think-he-plans-it-all-out-or-just-makes-it-up-as-he-goes-along---beckets-officer) - [How to prevent someone from using your WiFi, or at least annoy them a little](https://staging.cs-syd.eu/posts/2015-04-05-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](https://staging.cs-syd.eu/quotes/2015-03-29-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](https://staging.cs-syd.eu/posts/2015-03-22-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](https://staging.cs-syd.eu/quotes/2015-03-15-people-often-say-that-motivation-doesnt-last-well-neither-does-bathing---thats-why-we-recommend-it-daily---zig-ziglar) - [Rows and columns](https://staging.cs-syd.eu/posts/2015-03-08-rows-and-columns) - [Why I don't like TV](https://staging.cs-syd.eu/posts/2015-03-01-why-i-dont-like-tv) - [What do we do with our time?](https://staging.cs-syd.eu/posts/2015-02-22-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](https://staging.cs-syd.eu/quotes/2015-02-15-because-i-didnt-know-it-couldnt-be-done-i-was-enabled-to-do-it---bill-atkinson) - [Another new keyboard](https://staging.cs-syd.eu/posts/2015-02-08-another-new-keyboard) - [The annoyance of percentages](https://staging.cs-syd.eu/posts/2015-02-01-the-annoyance-of-percentages) - [Get some paper, put it in a typewriter, type FADE IN... and keep typing. - Peter Falk](https://staging.cs-syd.eu/quotes/2015-01-25-get-some-paper-put-it-in-a-typewriter-type-fade-in-and-keep-typing---peter-falk) - ["A sleep experiment: The results"](https://staging.cs-syd.eu/posts/2015-01-18-sleep-experiment-results) - ["A sleep experiment: The setup"](https://staging.cs-syd.eu/posts/2015-01-08-sleep-experiment-setup) - [How to start single-tasking](https://staging.cs-syd.eu/posts/2015-01-03-how-to-start-single-tasking) - [Every piece of meat I have is the best - Banzan](https://staging.cs-syd.eu/quotes/2014-12-28-every-piece-of-meat-i-have-is-the-best---banzan) - [Stress free mailboxes](https://staging.cs-syd.eu/posts/2014-12-21-stress-free-mailboxes) - [You don't say "Good luck!". You say "Don't give up!". - The Roots](https://staging.cs-syd.eu/quotes/2014-12-14-you-dont-say-good-luck-you-say-dont-give-up---the-roots) - [A poor man's backup system](https://staging.cs-syd.eu/posts/2014-12-07-a-poor-mans-backup-system) - [If you’re the smartest person in the room, you’re in the wrong room. - unknown](https://staging.cs-syd.eu/quotes/2014-11-30-if-youre-the-smartest-person-in-the-room-youre-in-the-wrong-room---unknown) - [Monads by Example](https://staging.cs-syd.eu/posts/2014-11-23-monads-by-example) - [How to get up early](https://staging.cs-syd.eu/posts/2014-11-16-how-to-get-up-early) - [I like offending people, because I think people who get offended should be offended. - Linus Torvalds](https://staging.cs-syd.eu/quotes/2014-11-09-i-like-offending-people-because-i-think-people-who-get-offended-should-be-offended---linus-torvalds) - ["The hidden 'at least'"](https://staging.cs-syd.eu/posts/2014-11-02-the-hidden-at-least) - [The less you do, the more of it you can do. - Scott Hanselman](https://staging.cs-syd.eu/quotes/2014-10-26-the-less-you-do-the-more-of-it-you-can-do---scott-hanselman) - [The magic of audiobooks](https://staging.cs-syd.eu/posts/2014-10-19-the-magic-of-audiobooks) - [Altruism doesn't exist, but that's a good thing!](https://staging.cs-syd.eu/posts/2014-10-05-altruism) - [Change the way you use your terminal use with this function](https://staging.cs-syd.eu/posts/2014-09-28-change-your-terminal-use-with-this-command) - [Today is a gift. That's why it is called the present. - Unknown](https://staging.cs-syd.eu/quotes/2014-09-24-today-is-a-gift-thats-why-it-is-called-the-present---unknown) - [Confusing definitions](https://staging.cs-syd.eu/posts/2014-09-21-confusing-definitions) - [We were all huddled together, as wet as water could make us. - Benjamin Franklin](https://staging.cs-syd.eu/quotes/2014-09-17-we-were-all-huddled-together-as-wet-as-water-could-make-us---benjamin-franklin) - [Getting started with git](https://staging.cs-syd.eu/posts/2014-09-14-getting-started-with-git) - [Everyone you will ever meet knows something you don't. - Bill Nye](https://staging.cs-syd.eu/quotes/2014-09-10-everyone-you-will-ever-meet-knows-something-you-dont---bill-nye) - ["Between programming and mathematics: Statements and Expressions"](https://staging.cs-syd.eu/posts/2014-09-07-between-programming-and-mathematics-statements-and-expressions) - [I stopped believing in God when I realised it's just dog backwards - Neil Sutherland](https://staging.cs-syd.eu/quotes/2014-09-03-i-stopped-believing-in-god-when-i-realised-its-just-dog-backwards---neil-sutherland) - [The switch to dvorak and an ergonomic keyboard](https://staging.cs-syd.eu/posts/2014-08-31-the-switch-to-dvorak-and-an-ergonomic-keyboard) - [If you're skating on thin ice, you might as well dance. - Anita Shreve](https://staging.cs-syd.eu/quotes/2014-08-27-if-youre-skating-on-thin-ice-you-might-as-well-dance---anita-shreve) - [The magic of thinking paper](https://staging.cs-syd.eu/posts/2014-08-24-the-magic-of-thinking-paper) - [How to synchronise and back up your dotfiles with the Super User Stone](https://staging.cs-syd.eu/posts/2014-08-17-super-user-stone) - [Obsessed is just a word the lazy use to describe the dedicated. - Russel Warren](https://staging.cs-syd.eu/quotes/2014-08-13-obsessed-is-just-a-word-the-lazy-use-to-describe-the-dedicated---russen-warren) - [Intersections of Circles](https://staging.cs-syd.eu/posts/2014-08-09-intersections-of-circles) - [The magic of getting up early](https://staging.cs-syd.eu/posts/2014-08-02-the-magic-of-getting-up-early) - [Why I don't like GUIs](https://staging.cs-syd.eu/posts/2014-07-29-why-i-dont-like-guis)