Concepts

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

673 entries, all primary-sourced
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

Microcontroller

A complete small computer on a single chip, combining a CPU with program memory, data memory, and input/output peripherals, built for embedded control rather than general-purpose computing.

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 2005

Blink: The Hardware Hello, World

Blink is the hardware world's Hello, World: the first program loaded onto a new board, which does nothing but flash an LED on and off. The Arduino Blink sketch, with its setup() and loop() structure and pinMode/digitalWrite/delay calls, made this rite of passage approachable for millions of beginners.

concept 2005

The Maker Movement

The maker movement is the do-it-yourself culture of hands-on hardware building, hacking, and sharing that grew in the 2000s and 2010s, catalyzed by Make magazine and Maker Faire and enabled by Arduino, the Raspberry Pi, and cheap manufacturing.

concept June 2006

SLAM (Simultaneous Localization and Mapping)

The software problem of a robot building a map of an unknown environment while at the same time tracking its own position within that map, the chicken-and-egg core of autonomous navigation.

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.

concept September 2008

The Intent (Android)

Android's messaging object for requesting actions from app components. Intents launch activities and services and enable inter-app communication, in either explicit (named target) or implicit (action-described) form.

concept November 26, 2008

Markup Language

A way of annotating text with tags that describe its structure or presentation, the family that runs from typesetting codes through SGML, HTML, XML, and Markdown.

concept 2009

DevOps

A culture and set of practices uniting software development and IT operations so that teams can build, ship, and run software reliably and quickly, crystallized around the first DevOpsDays in 2009.

concept 2009

In-App Purchase

Buying digital content or services from inside an app through the platform's own payment system; the platform provides APIs such as Apple StoreKit and Google Play Billing and takes a commission on each sale.

concept 2009

NoSQL

The umbrella term for non-relational databases that traded SQL and ACID guarantees for horizontal scalability, flexible schemas, and availability.

concept May 12, 2009

Robotics Middleware

The software layer that connects a robot's sensors, actuators, and algorithms across many processes and machines, handling message passing and hardware abstraction so components can be built and reused independently.

concept November 3, 2009

Mobile First

Luke Wroblewski's design principle of designing for the smallest screen first and progressively enhancing toward larger ones, treating mobile constraints as a discipline rather than a limitation.

concept 2010

Continuous Delivery

Keeping software always in a releasable state through automated build, test, and deploy pipelines, so that releasing becomes a low-risk decision that can be made on demand.

concept 2010

Embedded Systems Everywhere

The visible computers, the laptops and phones and servers, are the minority. The majority of processors are embedded: tens of microcontrollers in a single car, and tens of billions of microcontroller units shipped every year, running appliances, toys, sensors, and infrastructure invisibly.

concept April 30, 2010

The Init System

The first userspace process a Unix-like system starts (PID 1), which boots the machine into a usable state and then supervises the other processes; embodied over the decades by SysV init, Upstart, systemd, and launchd.