Hello, World
The traditional first program a learner writes in a new language, printing the words hello world; born in Kernighan's 1972 B tutorial and canonized by K&R in 1978 as the universal smoke test.
Plain-language explanations of the ideas behind software - compilers, garbage collection, objects, types.
The traditional first program a learner writes in a new language, printing the words hello world; born in Kernighan's 1972 B tutorial and canonized by K&R in 1978 as the universal smoke test.
A shell redirection that feeds an inline block of multi-line text to a command as its standard input, written between <<EOF and a matching closing word.
Designing a system to minimize downtime, often measured in 'nines' of uptime, by eliminating single points of failure through redundancy and fast failover.
A function that takes other functions as arguments or returns a function, enabling general patterns like map, filter, and reduce.
A type system and inference algorithm that deduces the most general type of a program with let-polymorphism, without type annotations; it underlies ML, Haskell, and much of modern typed functional programming.
Douglas Hofstadter's self-referential rule from Godel, Escher, Bach that a task always takes longer than you expect, even when you account for Hofstadter's Law.
The property that a language's code is represented using its own ordinary data structures, so programs can easily generate and transform code.
The single centralized host table that mapped names to addresses on the early ARPANET, maintained by hand at SRI-NIC and distributed to every host. Its inability to scale is what motivated the invention of DNS.
The process of attaching client-side JavaScript interactivity to server-rendered HTML, turning a static HTML snapshot into a fully interactive application in the browser.
Text linked to other text by clickable references, a term coined by Ted Nelson in 1965 and realized at global scale by the World Wide Web.
The software layer, also called a virtual machine monitor, that creates and runs virtual machines by sharing one computer's physical hardware among them.
The three classic cloud service models defined by NIST - Infrastructure as a Service (rent raw VMs and storage), Platform as a Service (deploy code without managing servers), and Software as a Service (use finished applications).
A property of an operation that produces the same result no matter how many times it is applied, which lets clients safely retry requests in a distributed system.
The property that a value cannot be changed after it is created; instead of mutating data, you build new values from old ones.
The practice of never modifying running servers in place; instead you build a new image and replace the old one wholesale, eliminating configuration drift.
A database that keeps its working data in RAM rather than on disk for very low latency, trading durability and cost for speed.
An algorithm that transforms its input using only a small, constant amount of extra memory, modifying the data directly instead of copying it elsewhere.
Rebuilding only the parts of a project whose inputs changed, instead of rebuilding everything - the trick that keeps large builds fast.
Claude Shannon's mathematical theory of communication, which shows how to quantify information and sets the limits of data compression and reliable transmission over noisy channels.
Overlapping the fetch, decode, and execute stages of successive instructions like an assembly line, so a new instruction starts before the previous one finishes; managing the hazards and stalls this creates.
The contract between hardware and software: the instructions, registers, and memory model a processor exposes, and the boundary that lets the same binary run on many different chip implementations.
When an arithmetic result exceeds the range of its integer type and wraps around to a wrong, often small or negative, value; a subtle bug that can cause buffer overflows, security holes, and famous failures.
The chip that places many electronic components on a single piece of semiconductor, conceived by Jack Kilby at Texas Instruments in 1958 and made practical by Robert Noyce's planar silicon process at Fairchild.
A frontend pattern named by Jason Miller in 2020 (crediting Katie Sylor-Miller): render pages as static server HTML and hydrate only small, independent interactive 'islands', leaving the rest as inert markup.
The SQL-standard levels - read uncommitted, read committed, repeatable read, serializable - that trade transaction isolation against concurrency by choosing which anomalies they permit.
A system for recording, prioritizing, and tracking bugs and feature requests through their lifecycle - the shared to-do list and memory of a software project.
A web architecture (JavaScript, APIs, Markup) coined by Netlify's Mathias Biilmann around 2015: pre-rendered static markup served from a CDN, made dynamic with client-side JavaScript and reusable APIs.
An XML-like syntax extension to ECMAScript, popularized by React, that lets developers write HTML-like markup directly inside JavaScript to describe user interfaces.
A lean, flow-based method that visualizes work and limits work-in-progress to expose bottlenecks, adapted to software from Toyota's manufacturing system.
The principle, stated by Auguste Kerckhoffs in 1883, that a cryptosystem should remain secure even if everything about it except the key is public knowledge.
The innermost part of an operating system, running in a privileged mode with full control of the hardware; designs range from large monolithic kernels to small microkernels.
Adjusting the space between specific pairs of letters so that text appears evenly spaced -- distinct from tracking, which adjusts spacing uniformly -- encoded in fonts through kern tables and OpenType's GPOS positioning data.
The problem and protocols for two parties to establish a shared secret key securely, the classic obstacle for symmetric encryption that Diffie-Hellman solved.
The simplest NoSQL model: a distributed hash map of unique keys to opaque values, optimized for fast, scalable lookups.
Hacker term, also spelled kluge, for an inelegant solution that nonetheless works: a clumsy patch or clever programming trick that handles a nasty case efficiently if not cleanly, central to the engineering folklore collected in the Jargon File.
An anonymous function written inline without a name, such as x => x + 1; named after the lambda calculus and now found in nearly every modern language.
Church's formal system of function definition and application that is a universal model of computation and the theoretical basis of functional programming.
Delaying the evaluation of an expression until its value is actually needed, which enables infinite data structures and can avoid unnecessary work.
The process by which distributed nodes choose a single node to coordinate, and choose a new one when it fails.
The most common replication scheme: one leader accepts writes and streams them to followers that serve reads.
To keep clocks aligned with the Earth's uneven rotation, an extra second (shown as 23:59:60) is occasionally inserted into UTC. Software that assumes every minute has exactly 60 seconds can break when it sees the 61st, and the disruption pushed metrology bodies to vote in 2022 to phase the leap second out by 2035.
The simplest search: check each element in turn until the target is found or the data is exhausted, running in O(n) time.
The strongest single-object consistency condition: every operation appears to take effect instantaneously at one moment between its call and its return, so the system behaves like a single up-to-date copy.
A sequence of nodes each pointing to the next, giving cheap insertion and deletion at a known position but slow access by index.
A Linux kernel feature that gives a process group its own isolated view of system resources such as process IDs, network stacks, mount points, and user IDs.
The empirical tendency of programs to reuse data they accessed recently (temporal locality) and to access data near what they just touched (spatial locality) - the regularity that makes caches and the whole memory hierarchy work, formalized by Peter Denning's 1968 working-set model.
A generated file that pins the exact resolved versions of every dependency so installs are reproducible across machines and over time.
A counter-based mechanism introduced by Leslie Lamport in 1978 for ordering events across a distributed system without relying on synchronized physical clocks.