- Python – Generators & Iterators
What the for loop is really doing, and how `yield` lets you produce a sequence without building it. Generator expressions, laziness and why it matters on a large file, and the one rule about consuming a generator twice.
- Java 17 Switch Expressions
The switch statement Java inherited from C had two design flaws: it fell through unless you wrote break , and it could not produce a value. Java 14 fixed both, and Java 17 made it standard. The old form still works; there is no reason to write it in new code. Arrow labels With -> only the matching…
- Angular – Routing
Turning URLs into components. `provideRouter()` and the route table, `<router-outlet>`, `routerLink` and `routerLinkActive`, route parameters and query parameters as signals via `withComponentInputBinding`, child routes and layouts, and the wildcard route that catches everything else.
- Docker Compose – Running a Multi-Container Stack
Once an app needs a database, `docker run` becomes a shell script nobody can read. The compose file, `up` and `down`, what a service is, the network and project name you get for free, `--build` versus `--force-recreate`, and why `docker-compose` with a hyphen is the old one.
- Hasura – Remote Schemas and Federation
Stitching an existing GraphQL API into Hasura's schema so clients see one graph instead of two. Adding a remote schema, the namespacing and type-collision problems that follow, remote relationships that join a database row to a field on another service, and how permissions and header forwarding work across the boundary. Then v3, where this stops being a bolt-on and becomes what the supergraph is.