Uncategorized

  • Container logs go to stdout, and that is the contract

    A containerised application writing to /var/log/app.log has written to a filesystem that disappears with the container, and nothing outside can see it. The convention is that a container…

  • artisan tinker is a REPL with the application booted

    Checking what a relation actually returns usually means writing a throwaway route, hitting it, and deleting it — or adding a dd() somewhere and reloading. Both are slower…

  • Docker for Mac replaced the virtual machine

    The shared-folder problem that nearly killed this last year is gone. What changes in the compose file, what the new file sharing costs, and where Linux and Mac…

  • An online schema change for the ALTER that would lock

    5.6 made many ALTER operations online, and the ones that are not — changing a column type, adding a full-text index — still copy the table while holding…

  • preload, prefetch and preconnect do three different jobs

    All three are resource hints and they answer different questions: what this page needs now, what the next page will need, and which server to warm up. preload…

  • Docker networks replaced links, and links still work

    Container linking is legacy as of 1.9 and still functions, so compose files written last year keep working and nobody is forced to learn the replacement. The replacement…

  • permission_callback is not optional

    Omitting permission_callback registers a route that anyone can call. It works, there is no error, and this year there is not even a warning — the notice that…

  • Redis 3.2 added geospatial commands

    Finding the nearest branch used to mean a bounding-box query in SQL with a Haversine formula in the ORDER BY, which cannot use an index and gets slower…

  • Symbol.iterator makes anything work with for-of

    for…of is not array syntax; it works on anything implementing the iterable protocol, which is one well-known method returning an object with a next(). A generator method is…

  • transform composites; top triggers layout

    Animating top or left makes the browser recompute layout on every frame, then repaint, then composite. Animating transform skips the first two — the element is already painted…