browse/
45 results
security/cross-site-scripting-how-a-comment-box-can-run-someone-else-s-code.md
Cross-site scripting: how a comment box can run someone else's code
A comment box looks harmless until someone types a tiny program instead of a comment. This article explains cross-site scripting, or XSS…
software-design/the-observer-pattern-how-a-shop-tells-many-functions-about-one-order-w.md
The observer pattern: how a shop tells many functions about one order without knowing them
A shop that must email a receipt, update stock and add loyalty points ends up with one function that knows about everything. Every new…
tools/gitignore-how-git-decides-which-files-to-skip-and-the-one-rule-that-su.md
Gitignore: how Git decides which files to skip, and the one rule that surprises everyone
Why does a file show up in git status when you wanted it hidden, and why does a file you ignored sometimes stay tracked anyway? Five short…
networks/nat-how-a-dozen-devices-share-one-internet-address.md
NAT: how a dozen devices share one internet address
Your home has one public internet address but a dozen devices. NAT is how your router lets them all share it and still get each reply to…
databases/the-n-1-query-problem-why-a-page-that-asks-the-database-501-questions.md
The N+1 query problem: why a page that asks the database 501 questions is slow
A page that lists authors and their books can quietly send one query per author. With 500 authors that is 501 trips to the database, and…
computers/fetch-decode-execute-the-three-beat-loop-every-cpu-repeats-billions-of.md
Fetch, decode, execute: the three-beat loop every CPU repeats billions of times a second
A processor looks clever, but at its core it repeats one small loop billions of times a second: fetch an instruction, decode what it asks…
web/flexbox-how-a-row-of-boxes-decides-who-gets-the-leftover-space.md
Flexbox: how a row of boxes decides who gets the leftover space
Put three boxes in a row and the browser decides, by a short fixed recipe, who gets the extra room and who gives some up. Learn the three…
software-design/refactoring-how-to-tidy-working-code-without-breaking-it.md
Refactoring: how to tidy working code without breaking it
Refactoring means changing how code is built on the inside without changing what it does. It sounds risky, but there is a simple routine…
tools/pipes-how-the-in-a-terminal-turns-small-commands-into-one-big-answer.md
Pipes: how the | in a terminal turns small commands into one big answer
How do you find the most popular page in a file of 15 million visits? In a terminal, you join small programs with the vertical bar `|`…
computers/the-call-stack-why-a-function-that-never-stops-crashes-your-program.md
The call stack: why a function that never stops crashes your program
Every time a function is called, the computer puts a small block of memory called a frame on top of a call stack, and removes it when the…
languages/javascript-s-event-loop-why-settimeout-0-runs-after-the-code-below-it.md
JavaScript's event loop: why setTimeout(…, 0) runs after the code below it
Why does `setTimeout(fn, 0)` run after the lines below it, and why does a promise callback beat it? JavaScript has one worker and two…
mobile/push-notifications-how-your-phone-buzzes-for-an-app-that-isn-t-running.md
Push notifications: how your phone buzzes for an app that isn't running
Your phone buzzes with a message from an app that isn't even running. How? Phones keep one shared connection to a push service (Apple's…