Concepts

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

628 entries, all primary-sourced
concept 1987

Tracker Music

A style of music software, pioneered by the Ultimate Soundtracker on the Amiga in 1987, that sequences sampled instruments in a scrolling pattern grid and stores the result as a self-contained module (MOD) file.

concept July 1987

Reyes Rendering

Pixar's micropolygon-based rendering architecture, named Reyes for Renders Everything You Ever Saw, designed for fast high-quality rendering of very complex scenes and the basis of early RenderMan.

concept August 1988

TCP Congestion Control

The set of algorithms - slow start, congestion avoidance, fast retransmit, and fast recovery - that lets TCP senders detect network overload and back off, preventing the kind of congestion collapse that nearly broke the early Internet. Introduced by Van Jacobson and Michael Karels at SIGCOMM 1988 and standardized in RFC 5681.

concept 1990

RTFM

RTFM, short for 'Read The Fucking Manual,' is the canonical curt reply in hacker culture telling someone the answer to their question is already in the documentation; it captures both the self-help ethic and the friction of newcomer questions.

concept September 1990

Priority Inversion

Priority inversion is a scheduling hazard in which a high-priority task is blocked by a lower-priority task holding a shared resource, often made unbounded by intervening medium-priority tasks; the priority inheritance and priority ceiling protocols bound the delay.

concept 1991

Rapid Application Development

A development approach that replaces long, sequential specification phases with fast iteration, visual tools, and working prototypes built with end users, popularized by James Martin and embodied in tools like Visual Basic, Delphi, and PowerBuilder.

concept 1992

Bitmap

A bitmap is an image stored as a rectangular grid of pixels, each represented by one or more bits; its bit depth sets the number of colors, and it stands in contrast to vector graphics that store shapes as math.

concept April 1992

MD5 (Message-Digest Algorithm 5)

Ron Rivest's 128-bit message-digest algorithm, published as RFC 1321 in 1992, once a popular hash but now cryptographically broken by practical collisions.

concept July 16, 1992

Rough Consensus and Running Code

Rough consensus and running code is the working ethos of the IETF: technical decisions are reached by broad agreement on substance rather than formal voting, and validated by working implementations rather than paper specifications.

concept 1992

Codec

A coder-decoder: a paired algorithm for compressing media into a coded representation and reconstructing it, spanning lossy and lossless schemes for audio, image, and video, and distinct from the container formats that package them.

concept 1993

SHA (Secure Hash Algorithm)

The NIST family of standard cryptographic hash functions - SHA-1, SHA-2, and SHA-3 - of which SHA-1 is now broken and SHA-256 is ubiquitous in TLS, Bitcoin, and git.

concept September 1993

CIDR (Classless Inter-Domain Routing)

The 1993 scheme that replaced fixed address classes with variable-length prefixes written as a /N suffix, allowing right-sized address blocks and route aggregation to slow the growth of the global routing table.

concept May 1994

Network Address Translation (NAT)

A technique that rewrites IP addresses at a network boundary so many internal hosts can share a small pool of public addresses; conceived as a stopgap for IPv4 exhaustion, it became one of the main reasons IPv4 endured.

concept May 1994

Software Rot

Software rot, or bit rot, is the apparent degradation of software over time even when its code is unchanged, as its environment and dependencies shift and as repeated edits erode its design; David Parnas's 1994 paper Software Aging is the foundational treatment.

concept July 1, 1994

Framebuffer

The block of memory holding the pixel values of the image being displayed. The framebuffer is the destination of the raster graphics pipeline, and double buffering swaps a finished back buffer to the front to avoid showing partially drawn frames.

concept March 25, 1995

The Wiki

Ward Cunningham's WikiWikiWeb, launched in 1995, was the first wiki: a website any visitor could edit, conceived as the simplest online database that could possibly work.

concept June 1995

Routing

The process by which routers select a next hop for each packet using a routing table, and the division of that work into interior protocols within a network and exterior protocols between networks.

concept January 1996

Java Properties File

The Java .properties key=value configuration format, with defined rules for escaping, line continuation, and ISO-8859-1 with Unicode escapes.

concept 1996

Proprietary Software

Proprietary software is software whose source is withheld and whose use is governed by a restrictive end-user license; the GNU project defines it as another name for nonfree software, the category free and open source software defined itself against.

concept March 1996

Autonomous System

A network or group of networks under a single routing policy, identified by a globally unique Autonomous System Number, and the basic unit between which BGP exchanges routes.

concept April 1997

Fault Injection

An experimental technique that deliberately introduces faults into a system to observe how its detection and recovery mechanisms respond, used to evaluate and validate the dependability of fault-tolerant hardware and software.

concept February 10, 1998

DTD (Document Type Definition)

A DTD declares the allowed elements, attributes, and structure of an SGML or XML document, giving parsers a grammar to validate against. Inherited from SGML and built into the XML 1.0 Recommendation, it was the original schema mechanism for markup.

concept October 1998

The Document Object Model (DOM)

The live tree representation of a web page that scripts use to read and change its content, structure, and style.

concept 1999

Open Source Business Model

The set of strategies companies use to make money on freely licensed software, including support and subscriptions, open core, dual licensing, and hosted SaaS, and the tensions that push companies to change their licenses.

concept June 1999

Meritocracy in Open Source

The Apache model in which authority and commit rights are earned through demonstrated contribution rather than appointment; later the term itself drew criticism and was softened by some projects.

concept August 31, 1999

GPU (Graphics Processing Unit)

The graphics processing unit is a specialized processor for rendering images, which evolved from fixed-function rasterizers into massively parallel, fully programmable chips. NVIDIA coined the term in 1999 with the GeForce 256.

concept 1999

Rubber Duck Debugging

A debugging technique in which a programmer explains their code, line by line, to an inanimate object such as a rubber duck, forcing the act of articulation that often reveals the bug; popularized by 'The Pragmatic Programmer.'

concept 2000

HATEOAS

Hypermedia as the Engine of Application State, the REST constraint where responses carry the links and controls that drive the client's next actions.

concept 2000

Web API

A web API is an application programming interface exposed over HTTP so that programs, rather than people, can read and manipulate a service's data and functionality across the network.

concept March 18, 2000

The Swiss Cheese Model

James Reason's model of accident causation in which successive layers of defense each have holes, and a failure occurs only when the holes in many layers momentarily line up to let a hazard pass through.

concept June 2000

Internet Assigned Numbers Authority (IANA)

The Internet Assigned Numbers Authority is the function that stewards the internet's globally unique identifiers: IP address space, protocol parameter registries, and the management of the DNS root zone.

concept September 2000

Continuous Integration

The practice of having developers merge their work into a shared mainline frequently, with each merge automatically built and tested so integration problems surface early.

concept 2001

AES (Advanced Encryption Standard)

The global standard block cipher for symmetric encryption, originally named Rijndael, chosen by NIST in an open competition to replace DES and published as FIPS 197 in 2001.

concept 2002

Programmable Shaders

The shift from fixed-function graphics hardware to user-written vertex and pixel (fragment) shader programs that run on the GPU, formalized by Direct3D's shader models and by the OpenGL Shading Language (GLSL).

concept 2002

Textile

Dean Allen's early lightweight web markup language, popular in Movable Type and Ruby on Rails, that turned readable plain text into HTML.

concept 2002

Wikitext

The lightweight markup of wikis, from WikiWikiWeb to MediaWiki, defined by conventions like double-bracket links and apostrophe emphasis, and increasingly bridged to visual editing.

concept November 2002

Active Record Pattern

A data-access pattern, named by Martin Fowler, in which an object wraps a single database row and carries the logic to read, write, and validate it; popularized for the web by Ruby on Rails.

concept 2003

Enterprise Integration Patterns

Gregor Hohpe and Bobby Woolf's catalog of messaging patterns - channels, routers, translators, and endpoints - for connecting enterprise systems asynchronously.

concept 2004

Software Patent

A software patent claims a monopoly on a computational method or process; free and open source licenses respond to the threat through patent grants and retaliation clauses, as in the Apache License 2.0 and the GNU GPL version 3.

concept 2004

Plugin Architecture

A design in which a host program exposes extension points so that third parties can add features without modifying the core, as in Eclipse's plug-in model, VS Code extensions, and Emacs packages.

concept June 29, 2007

Tivoization

Tivoization is the practice of shipping GPL-covered software in a device that refuses to run modified versions, defeating the user's freedom to change the code; the GNU General Public License version 3 closed this loophole by requiring 'Installation Information' for consumer products.

concept 2008

Freemium

A monetization model where an app is free to download and offers optional in-app purchases for premium features, content, or subscriptions; it became the dominant way mobile apps and games make money.

concept 2008

Shell Injection

A class of vulnerability in which untrusted input reaches an operating-system shell, letting an attacker run arbitrary commands. It arises when programs build shell command strings from user data, and is mitigated by avoiding the shell or using native APIs.

concept 2008

Template Engine

A template engine combines a markup template containing placeholders and control logic with application data to produce a finished document, most commonly the HTML returned by a server-rendered web application.

concept July 2008

App Sandboxing

An operating-system-enforced isolation model that gives each app its own private files and restricts its access to memory, system resources, and other apps' data, forming the core security model of iOS and Android.

concept July 10, 2008

App Store Review

Apple's practice of gatekeeping iOS apps through a pre-publication review against the App Store Review Guidelines, the walled-garden model that shaped mobile software distribution and drew lasting controversy.

concept July 10, 2008

The Mobile App

A self-contained program distributed through an app store and run on a smartphone or tablet; the dominant unit of mobile software, built as native, web, or hybrid code.

concept September 2008

The APK (Android Package)

Android's app distribution format: a ZIP archive bundling the manifest, compiled DEX bytecode, and resources into one installable file. The later Android App Bundle (AAB) defers final APK generation to Google Play.