• Making sense of the Y‑Combinator

    Y = f => (x => x(x))(x => f(y => x(x)(y)))
    Saw it and couldn't make much sense of it. On my nth try though…

  • On Agility

    Nothing to do with Scrum!
    Mostly about:

    • delivery – adding value
    • while maintaining the ease, and momentum, for future delivery.

  • On Code Comments

    “Code Smell” is a signal. A hint from the code itself, that there might be a deeper issue with it. Not an immediate problem though, but rather a potential long-term affect on the code quality and maintainability.

    Here’s a thought: code comments, often seen as helpful, are actually a code smell. Why? Because they are either redundant – adding to the mental load, or an indication of the fact that the code is overly complicated — too much context, too many tasks being done, mismatched abstraction levels, etc.

    Comments aren’t inherently bad, they have their place. But if there’s a comment, there’s often an opportunity to improve the code.

  • The hardest – and usually a crucial part of any thing is maintenance. Even with wearing glasses the hardest part is to keep them clean.

    What does not need constant maintenance and keeps giving is such a joy. A speaker that sounds the same as when it was last sat up.

  • On Css-in-JS

    What I think is close to:

    My two cents on styling:

    • It sure depends on the context and requirements. Usually:
    • a minimal global css file, that handles overall look and feel for the website. Ex: fonts and typography, spacing, responsive design targeted media queries, colors, links and hovers.
    • Global classes for common use cases (ex: image and caption in a blog, meta texts, code)
    • CSS in JS for specialized cases, unique components, samples, styles related to code heavy components.
    • Prefer CSS to JavaScript for styling when possible. Hovers, media queries, transition animations and the sort, all should be handled natively by CSS rather than JavaScript – don’t reinvent the wheel.