Uncategorized

  • Symfony recipes are just files, and you can read them

    Installing a package now writes configuration, adds environment variables and may register a bundle, and the reasonable first reaction is to want to know what it did. The…

  • Roles instead of one user per application

    Six applications with six database users means six sets of grants maintained by hand, and the reporting tool ends up with write access because copying an existing user…

  • sodium is in core now, and mcrypt is gone

    7.2 removed mcrypt and added libsodium to core in the same release, which is a clearer statement of intent than any deprecation notice. The API is deliberately small…

  • Ubuntu 18.04 changed how the network is configured

    /etc/network/interfaces is gone in 18.04 and netplan is what reads the configuration now, which is a surprise best encountered before the reboot rather than after it. netplan try…

  • docker-compose config prints what will actually run

    A compose file with variable substitution, an override file and an extends is not readable by inspection, and the difference between what you think it says and what…

  • HEALTHCHECK in the Dockerfile rather than the compose file

    A healthcheck describes how to tell whether this particular software is working, which is knowledge that belongs with the image rather than with each stack that uses it.…

  • An Elasticsearch index can only have one mapping type now

    6.x allows one type per index and 7 removes types entirely, which breaks the common pattern of putting orders and customers in the same index with a type…

  • A data inventory is the first artefact, not the last

    Every conversation about personal data stalls in the same place: nobody can say which tables hold it. The inventory is not documentation produced at the end, it is…

  • bin/console debug:router answers the question directly

    Working out which controller handles a URL by reading annotations across forty files is a waste of an afternoon that the framework will answer in a second. router:match…

  • Block attributes live in the comment delimiter

    A block is stored in post_content as an HTML comment wrapping markup, and its attributes are JSON inside that comment — which is why the post is still…