Concepts

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

673 entries, all primary-sourced
concept

OOPSLA

The ACM conference on Object-Oriented Programming, Systems, Languages and Applications, held since 1986 and now part of SPLASH, where much foundational object-oriented research and the design patterns movement were first presented.

concept

Open Source

Software released under a license that lets anyone use, study, modify, and redistribute it; defined by the Open Source Initiative's Open Source Definition.

concept

Open-Source Database

A database released under an open-source license, a model that broke the proprietary RDBMS lock and now sits at the center of debates over open core and source-available relicensing.

concept

Operating System

The software that manages a computer's hardware and runs programs, providing processes, memory, files, and access to devices so that applications do not have to control the machine directly.

concept

Orchestration

Automatically deploying, scheduling, scaling, networking, and healing many containers or services across a cluster of machines - the job Kubernetes does.

concept

Out-of-Order Execution

Executing instructions as soon as their operands are available rather than strictly in program order, then retiring results in order; introduced by Tomasulo's algorithm on the IBM System/360 Model 91 in 1967.

concept

OWASP Top Ten

A regularly-updated, community-built list of the most critical security risks to web applications, used as a baseline awareness document for developers and defenders.

concept

Ownership and Borrowing

Rust's compile-time discipline where each value has a single owner and references are 'borrowed' under rules the borrow checker enforces, giving memory safety with no runtime garbage collector.

concept

P vs NP

The central open question of computer science: if a solution can be checked quickly, can it also be found quickly?

concept

Package Manager

A tool that automatically installs, upgrades, configures, and removes software and its dependencies from a repository, replacing manual download-and-build.

concept

Package Registry

A package registry is a central, networked index that stores published packages and serves them to build tools by name and version.

concept

Pair Programming

A practice where two developers share one workstation, one driving at the keyboard and one navigating, to catch defects early and spread knowledge across the team.

concept

Parametric Polymorphism

Writing code that works uniformly over any type by taking the type as a parameter, the idea behind generics in ML, Haskell, Java, and C#.

concept

Paravirtualization

A virtualization technique in which the guest operating system is modified to cooperate with the hypervisor rather than being fully emulated, trading compatibility for performance.

concept

Partial Application

Fixing some of a function's arguments to produce a new function of the remaining arguments, letting you specialize general functions such as add5 = add(5).

concept

Password Hashing

Storing passwords as the output of a slow, salted cryptographic hash so a database breach does not directly reveal the passwords; salting defeats rainbow tables and slowness defeats brute force.

concept

Pattern Matching

Deconstructing a value by testing it against shapes (patterns) and binding variables from the parts that match, used in place of long if/else chains.

concept

Paxos

Leslie Lamport's family of consensus algorithms that let a distributed system agree on values even when some nodes fail.

concept

Penetration Testing

Authorized, simulated attacks on a system to find and demonstrate exploitable weaknesses before real attackers do; a core practice of offensive security distinct from automated scanning.

concept

Permissive License

A class of open source licenses that impose minimal restrictions, typically only attribution, and place no copyleft requirement on derivative works, so the code may be incorporated into proprietary software; the philosophical counterpoint to copyleft.

concept

Persistent Data Structure

An immutable data structure whose 'modified' versions are new values that share most of their structure with the old, giving efficient immutable collections.

concept

Physical vs Logical Clocks

The trade-off between physical clocks, which track real wall-clock time but drift and need synchronization, and logical clocks, which count event order without real time; hybrid approaches like Google's TrueTime combine both.

concept

Pipeline as Code

The practice of defining a project's build, test, and deploy pipeline in a version-controlled file checked into the repository, rather than configuring it by clicking through a UI.

concept

Pipes and Filters

The Unix idea, championed by Doug McIlroy, of building large jobs from small programs that each do one thing well and pass text to each other through pipes.

concept

Pipes and Redirection

The shell facilities that connect one program's output to another's input (the pipe |) and route a program's input and output to files (>, <, >>).

concept

Polynomial Time

The property of an algorithm whose running time is bounded by a polynomial in the size of its input; it is the formal stand-in for efficient computation and defines the complexity class P.

concept

Primary Key

The column or columns that uniquely identify each row in a table and may not be null, serving as the anchor for relationships and indexing.

concept

Priority Queue

An abstract data type that always serves the highest-priority element next, usually implemented with a heap, and the engine behind Dijkstra's algorithm, scheduling, and event simulation.

concept

Pseudocode

An informal, language-independent way of describing an algorithm's logic in structured, human-readable steps without committing to any programming language's syntax.

concept

Public Key Infrastructure (PKI)

The system of certificate authorities, certificates, and policies that binds public keys to real-world identities, so a public key can be trusted to belong to a specific website or person.

concept

Public-Key Cryptography

Encryption using a key pair, a public key to encrypt or verify and a private key to decrypt or sign, letting parties who never met communicate securely.

concept

Publish-Subscribe

A messaging pattern where publishers send messages to topics without knowing the subscribers, and subscribers receive all messages on topics they follow - enabling loosely coupled, fan-out communication.

concept

Pull Request

A way to propose changes by asking a project to pull from your branch or fork, with discussion and review happening before the change is merged.

concept

Pure Function

A function whose output depends only on its inputs and which has no side effects, making it deterministic, testable, and safely parallelizable.

concept

Pushdown Automaton

A finite automaton augmented with a stack, which recognizes exactly the context-free languages and underlies parsers that handle nesting.

concept

PWM (Pulse-Width Modulation)

PWM is a technique for approximating an analog level using nothing but a digital pin that switches on and off. By varying the fraction of each cycle that the signal stays high, called the duty cycle, software encodes a value that a motor, an LED, or a servo interprets as a smooth quantity such as speed, brightness, or position.

concept

PyCon

The Python community's flagship conference, produced by the Python Software Foundation and held annually since 2003, known for its development sprints and a culture that prizes community as much as the language.

concept

Query Execution

How a database actually runs a chosen query plan: an engine of operators - scans, index lookups, joins, sorts, aggregations - that pipeline rows to produce a result.

concept

Query Language

A language for retrieving and manipulating data by describing what you want rather than how to get it, leaving the database system to work out an efficient plan.

concept

Query Optimizer

The database component that turns a declarative SQL query into an efficient execution plan by estimating the cost of alternative strategies, pioneered by Selinger's System R optimizer.

concept

Queue

A first-in-first-out collection with enqueue and dequeue, underlying scheduling, buffering, breadth-first traversal, and message passing.

concept

Quicksort

Tony Hoare's divide-and-conquer sorting algorithm that partitions data around a pivot, with average O(n log n) running time and in-place operation.

concept

Quorum

Requiring a minimum number of replicas to acknowledge a read or write (for example R + W > N) so a distributed system stays consistent and available despite some node failures.

concept

Ransomware

Malware that encrypts a victim's files or locks their systems and demands payment, usually in cryptocurrency, for the key; major outbreaks such as WannaCry and NotPetya in 2017 caused billions in damage.

concept

Rate Limiting

Capping how many requests a client may make in a window to protect a service from overload, typically signaled with the HTTP 429 status and RateLimit response headers.

concept

Read-Your-Writes Consistency

A session guarantee that after a process performs a write, its own later reads will observe that write, even if other clients might not see it yet.

concept

Real-Time Computing

A class of computing where correctness depends not only on producing the right answer but on producing it within a strict timing deadline.

concept

Real-Time Operating System

An operating system that guarantees timing: it is built so that high-priority tasks complete within strict deadlines, using priority-based preemptive scheduling rather than aiming only for average throughput.