Concepts

Plain-language explanations of the ideas behind software - compilers, garbage collection, objects, types.

628 entries, all primary-sourced
concept

CPU Cache

A small, fast memory that sits between the processor and slow main memory, holding recently used data so the CPU rarely has to wait; the idea was named by Maurice Wilkes in his 1965 slave-memory paper.

concept

CQRS

Command Query Responsibility Segregation: using a separate model to update information than the model used to read it, splitting the write side from the read side.

concept

Cross-Compilation

Compiling code on one platform, the host, to produce a program that runs on a different platform, the target, which is essential for embedded systems and for tools like Zig and Go.

concept

Cross-Site Scripting (XSS)

Injecting malicious JavaScript into a web page so that other users' browsers execute it, letting an attacker steal sessions or act as the victim; mitigated by output encoding and Content Security Policy.

concept

Cryptographic Hash Function

A hash function with security properties - preimage, second-preimage, and collision resistance - that lets it fingerprint data, store passwords, and underpin signatures and blockchains.

concept

Cryptography

The science of securing communication and data against adversaries, providing confidentiality, integrity, authentication, and non-repudiation.

concept

CSS Modules

A build-time approach in which class names in a CSS file are scoped locally by default, generating unique global names so component styles cannot collide across a project.

concept

CSS-in-JS

An approach to styling components in which CSS is written inside JavaScript and scoped automatically to the component, trading a global stylesheet for per-component styles at the cost of runtime work.

concept

Curry-Howard Correspondence

The deep parallel in which logical propositions correspond to types and their proofs correspond to programs that inhabit those types.

concept

Currying

Transforming a function of several arguments into a chain of single-argument functions, so it can be applied one argument at a time.

concept

CVE (Common Vulnerabilities and Exposures)

A public catalog that assigns a unique identifier to each known security vulnerability so everyone can refer to it unambiguously, paired with CVSS severity scores and the NVD database.

concept

Data Structure

A way of organizing data in memory so that the operations a program needs to perform on it are efficient.

concept

Data Warehouse

A central repository of integrated, historical data optimized for analytical queries and reporting rather than day-to-day transactions.

concept

Database Index

An auxiliary structure, usually a B-tree, that lets a database find rows by a column's value without scanning the whole table - the biggest single lever on query speed.

concept

Database Schema

The formal definition of a database's structure - its tables, columns, types, keys, and constraints - that the stored data must conform to.

concept

Database Trigger

Procedural code the database runs automatically in response to data-changing events on a table.

concept

Database View

A saved query that behaves like a virtual table, presenting data from one or more tables without storing it separately.

concept

Decidability

Whether a yes or no problem can be answered by an algorithm that always halts with the correct answer.

concept

DEF CON

The world's largest hacker convention, held in Las Vegas every year since 1993, known for its security research, Capture the Flag contests, and elaborate electronic badge culture.

concept

Defensive Programming

Writing code that anticipates and guards against invalid inputs, misuse, and unexpected states to make software more robust.

concept

Dennard Scaling

Robert Dennard and colleagues' 1974 result that as MOSFETs shrink, power density stays roughly constant, so each new generation of smaller transistors is also faster and more efficient; its breakdown around 2006 ended the clock-speed race.

concept

Dependency Hell

Dependency hell is the tangle that arises when packages require conflicting versions of shared dependencies, making a working install hard to achieve.

concept

Dependency Resolution

The problem of selecting one mutually compatible set of dependency versions from a web of constraints, which is what package managers do under the hood.

concept

Depth-First Search

A graph traversal that goes as deep as possible before backtracking, using a stack or recursion, and the basis of topological sort, cycle detection, and Tarjan's strongly-connected-components algorithm.

concept

Design Pattern

A named, reusable solution to a recurring design problem in a given context, giving developers a shared vocabulary for software design.

concept

Developer Experience

The discipline of treating the developer as the user of an API or platform, optimizing docs, SDKs, sandboxes, and error messages so integration is fast and predictable.

concept

Diff and Patch

Representing a change as a 'diff' (the lines added and removed) that a 'patch' tool can apply to another copy of a file, which became the common language for sharing code by email.

concept

Digital Signature

A way to sign data with a private key so anyone holding the matching public key can verify who signed it and that the data was not altered.

concept

Digital Typography

The craft of rendering type with computers -- on screens and printers -- using mathematically described outline fonts, hinting, and high-quality line-breaking, a field Donald Knuth reignited with his TeX project.

concept

Dijkstra's Algorithm

Dijkstra's 1959 method for finding the shortest paths from one source node to all others in a graph with non-negative edge weights.

concept

Distributed Consensus

The problem of getting a group of separate processes to agree on a single value despite crashes, slow networks, and lost messages.

concept

Distributed Lock

A lock that coordinates access to a shared resource across many machines so only one holds it at a time - simple in idea but subtle to make safe.

concept

Distributed System

A system whose components run on multiple networked computers and coordinate by passing messages, appearing to users as a single coherent system.

concept

Distributed Transaction

A transaction that spans multiple databases or services, which must all commit together or all abort together, classically coordinated with two-phase commit.

concept

Distributed Version Control

A style of version control where every clone is a full repository with the complete history, in contrast to centralized systems where one server holds the authoritative copy.

concept

Divide and Conquer

An algorithm design strategy that breaks a problem into smaller subproblems of the same type, solves them recursively, and combines their answers into a solution for the whole.

concept

Docs as Code

The philosophy of writing and maintaining documentation with the same tools and workflows as software: plain-text markup, version control, code review, and continuous integration.

concept

Document Database

A NoSQL model that stores data as self-contained documents (JSON, BSON, or XML) with flexible, nested schemas, so each record can differ - convenient for application objects but without relational integrity.

concept

Don't Repeat Yourself (DRY)

The principle that every piece of knowledge must have a single, unambiguous, authoritative representation within a system, so that duplicated logic cannot drift out of sync; from Hunt and Thomas's 'The Pragmatic Programmer' (1999).

concept

Dotfiles

Hidden per-user configuration files whose names start with a dot, like .bashrc and .gitconfig, and the culture of versioning and sharing them.

concept

DRAM

Dynamic random-access memory, the capacitor-based main memory invented by Robert Dennard at IBM in 1967, which stores each bit as charge on a tiny capacitor and must be refreshed constantly - the cheap, dense RAM in nearly every computer.

concept

Dynamic Array

A resizable array that grows by reallocating to a larger block, giving amortized constant-time append while keeping constant-time indexing.

concept

Dynamic Programming

An algorithm design method that solves a problem by breaking it into overlapping subproblems and reusing each subproblem's stored answer instead of recomputing it.

concept

Easter Egg

A hidden message, feature, or joke planted in software for users or fellow programmers to discover; from the Atari Adventure secret room to about:mozilla and Google's hidden tricks.

concept

Effect System

A type-system extension that tracks the side effects a piece of code may perform, making effects part of a function's type.

concept

Elasticity

The cloud's ability to automatically scale resources up and down to match demand so you pay only for what you use - one of the five essential characteristics in the NIST definition of cloud computing.

concept

Electronic Design Automation (EDA)

The software used to design modern chips: synthesis, simulation, place-and-route, and verification tools that turn a hardware description into a manufacturable layout.

concept

Embedded Scripting

Bundling a small interpreter such as Lua or Tcl inside a larger application so the program can be configured, extended, and modded in a high-level language without recompiling.