Uncategorized

  • ${} string interpolation is deprecated in 8.2

    Two of the four string interpolation syntaxes are deprecated, and they are the two that are ambiguous to read. The dollar-brace form is the one that makes a…

  • #[AllowDynamicProperties], and when it is honest

    The attribute opts a class out of the deprecation, which is occasionally correct and is usually a way of deferring a rename. Inheritance of the attribute is the…

  • innodb_flush_log_at_trx_commit is a durability decision

    The default flushes and syncs the log on every commit, which is the only setting that survives an operating system crash without losing transactions. Setting this to 2…

  • The boundary that is a file, not a shared database

    A batch job in another language integrated through a shared schema couples the two deployments; integrated through a file it does not. A file with a documented schema…

  • An additive change breaks a strict validator

    Adding a field is safe by convention and unsafe in practice, because a client generated from a schema with additionalProperties: false rejects it. Stating what may change is…

  • A Node script doing operational work, and who owns it

    Most PHP repositories contain JavaScript for the build, and the moment one of those scripts touches production it stops being tooling. The build script is fine unowned because…

  • Subsetting a font is the 80% nobody takes

    A variable font covering every script is several hundred kilobytes, and a site rendering English and Turkish needs a fraction of it. Dropping layout features is where the…

  • Matching the container uid to the host at build time

    Passing the host uid as a build argument makes the container write files the developer owns, at the cost of an image that is specific to one machine.…

  • Caching a Docker layer in Actions with type=gha

    A fresh runner has an empty build cache, so every pipeline run rebuilds every layer unless the cache is exported somewhere the next run can reach. mode=max exports…

  • Running mutation testing on the diff, not the suite

    A full mutation run takes long enough to be a nightly job, and running it on the changed lines makes it usable in a pull request. Gating on…