- Spring Boot – Application Events
Publishing an event instead of calling four services. @EventListener, ordering, async listeners, and @TransactionalEventListener — because a listener that fires before the transaction commits will happily email a customer about an order that is about to be rolled back.
- Angular – Pipes
Formatting values in the template without cluttering the class. `DatePipe`, `CurrencyPipe`, `DecimalPipe` and `AsyncPipe`, chaining pipes and passing arguments, writing a custom pipe, and the pure-versus-impure distinction that decides whether your pipe runs once or on every change detection pass.
- Docker – The Build Context and .dockerignore
`docker build .` uploads that entire directory to the builder before it reads a single instruction — which is why a build can sit for a minute doing apparently nothing. What the context is, why `node_modules` and `target/` must never be in it, and the `.dockerignore` files that took one build from 900 MB of context to 2 MB.
- Hasura – Installation and Your First Query
Get an engine running and a real query answered in one sitting. The Docker Compose service that runs Hasura next to Postgres, why the database port inside the compose network is not the one you published, the admin secret and what it grants, and the console. Then the same thing in v3: installing the `ddn` CLI, `ddn supergraph init` and `ddn run docker-start`.
- Java Arrays
An array is a fixed-size, indexed block of values that all share one type. It is the simplest container Java has, it is what ArrayList is built on, and the moment you need it to grow you should stop using it. Creating an array Two things to fix in your head now. The size is permanent — an int[5]…