Networking
Your Cache-Control Header Is Probably Wrong
no-cache does not mean do not cache. max-age on a CDN is not what you think. Here is what each directive actually does.
I write about why software breaks and how people figure it out. Founder of Krova Cloud, building isolated microVMs on our own hypervisor. Years of Shopify theme work and shared hosting before that. If I have not reproduced it, I do not publish it.
Networking
no-cache does not mean do not cache. max-age on a CDN is not what you think. Here is what each directive actually does.
JavaScript
CORS errors are a browser protecting you from a response it already received. Understanding that one fact makes every CORS error obvious.
Tooling
Git is protecting you from combining two repositories that share no common ancestor. Sometimes that is exactly what you want.
Docker
The difference between a container and a microVM is one sentence long, and almost every isolation decision follows from it.
Kubernetes
Two statuses, one underlying problem, and about six causes. Here is how to read the event message and fix the right thing.
Node.js
Memory climbs, the process gets killed, and restarting fixes it for six hours. Here is the diff based method that finds the retainer.
Python
pip says it is installed, python says it is not. Both are telling the truth about different Pythons.
React
React Strict Mode deliberately double invokes your effects in development. It is finding a real bug in your code, not creating one.
Node.js
It used to be a warning. Since Node 15 it terminates the process, and that change surfaced a lot of latent bugs.
JavaScript
The error names the property, not the reason. Here is how to work backwards from the message to the function that returned nothing.