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…
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…
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…
/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…
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…
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.…
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…
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…
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…
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…