End-to-End Encryption
Encryption where only the communicating endpoints can read the messages, so the servers and providers relaying them in between cannot.
Plain-language explanations of the ideas behind software - compilers, garbage collection, objects, types.
Encryption where only the communicating endpoints can read the messages, so the servers and providers relaying them in between cannot.
The order in which the bytes of a multi-byte value are stored or transmitted; big-endian puts the most significant byte first, little-endian puts the least significant byte first, a choice immortalized by Danny Cohen's 1980 essay.
Shannon entropy measures the average information, or uncertainty, in a source in bits, and sets the theoretical limit on how far data can be compressed without loss.
Named string values that a process inherits from its parent, such as PATH and HOME, forming a shared, inheritable configuration block carried through exec.
The pipeline that pulls data from source systems, cleans and reshapes it, and loads it into a warehouse; modern ELT loads the raw data first and transforms it inside the warehouse.
Persisting application state as an append-only sequence of events, so that current state can be rebuilt at any time by replaying the log from the beginning.
Treating data as an unbounded, ordered stream of events on an append-only log that many systems can publish to and replay from - the model behind Kafka and modern real-time architectures.
A style in which components communicate by emitting and reacting to events rather than calling each other directly, yielding loose coupling between producers and consumers.
A consistency model in which, if no new updates are made, all replicas eventually converge to the same value, trading immediate consistency for availability.
The small integer a process returns when it finishes, where 0 means success and any non-zero value means failure, exposed in the shell as $? and the basis for error handling.
An agile software development methodology, created by Kent Beck in the late 1990s, that pushes good engineering practices to the extreme and relies on tight, continuous feedback from the customer.
A component that suspects which nodes in a distributed system have crashed, usually via heartbeats and timeouts, and is inherently imperfect because a slow node cannot be told apart from a dead one.
A system's ability to keep operating correctly even when some of its components fail, achieved through redundancy, replication, and failover.
The simplest model of computation: a machine with a fixed, finite set of states that moves from one to the next as it reads input, and the exact device that recognizes regular languages.
Treating functions as ordinary values that can be named, passed as arguments, returned from functions, and stored in data structures.
A fundamental limit proving that in an asynchronous system where even one process may crash, no deterministic algorithm can guarantee it will always reach consensus.
A flight-control method that replaces mechanical and hydraulic linkages between the pilot's controls and the aircraft's surfaces with computers and electrical signals, enabling envelope protection and redundancy but making flight software safety-critical.
The canonical metasyntactic variables of programming, the placeholder names used in code examples to stand for anything; their etymology runs through WWII Army slang FUBAR, the Jargon File, and the deliberately whimsical RFC 3092.
A column that references a primary key in another table, enforcing referential integrity so a row cannot point at data that does not exist.
Copying a project's full codebase to develop it independently, ranging from a permanent split off a project to the routine copy that precedes a pull request.
A precise set of production rules that generate exactly the strings of a language, used to define the syntax of programming languages so that compilers can parse them mechanically.
The Free and Open Source Software Developers' European Meeting, a large free-admission gathering held in Brussels each year since 2001, organized by and for the open-source community.
Software that respects users' four essential freedoms to run, study, share, and modify it; defined by the Free Software Foundation as a matter of liberty, not price.
The problem of keeping shared, synchronized UI state predictable as applications grow, and the libraries (Flux, Redux, MobX, Zustand, signals) built to address it.
Searching the actual text content of documents using an inverted index, with tokenization, stemming, and relevance ranking.
Combining functions so the output of one becomes the input of the next, written (f . g)(x) = f(g(x)); a core way functional programs are built from small pieces.
The compute model behind serverless: developers deploy individual functions that the platform runs on demand and scales independently, as with AWS Lambda, Azure Functions, Google Cloud Functions, and Cloudflare Workers.
A programming paradigm that builds programs by composing functions and avoiding shared mutable state and side effects.
In functional programming, a type you can map a function over, such as a list or an optional value, transforming its contents while preserving its structure.
Automatic reclaiming of memory a program no longer needs, first put into practice for LISP around 1959 and 1960.
A high-level scripting language used to wire existing programs and components together rather than build systems from scratch, the central idea of Ousterhout's scripting thesis.
Godel's two 1931 theorems: any consistent formal system rich enough for arithmetic contains true statements it cannot prove, and cannot prove its own consistency.
A labeling convention, with the related help wanted label, that flags repository tasks as approachable for newcomers so that first-time contributors can find somewhere to start; on GitHub the good first issue label feeds discovery features that surface beginner-friendly work.
An epidemic communication style where each node periodically exchanges state with a few random peers, so information spreads exponentially across a large cluster without central coordination.
A set of nodes connected by edges, used to model networks, dependencies, maps, and relationships, and the substrate for a large family of algorithms.
A NoSQL model that stores entities as nodes and their connections as first-class edges, making relationship-heavy queries fast and natural without costly joins.
An algorithm that builds a solution step by step, always taking the choice that looks best at the moment in the hope that these local choices add up to a globally optimal answer.
Philip Greenspun's quip that any sufficiently complicated C or Fortran program contains an ad-hoc, bug-ridden, slow reimplementation of half of Common Lisp.
The playful, exploratory, meritocratic culture of programmers in which a hacker is a clever and enthusiastic builder, not a criminal; a tradition running from the MIT and Stanford AI labs through Unix, the Homebrew clubs, and the free software movement.
An annual month-long event run by DigitalOcean since 2014 that encourages people to contribute to open source by rewarding a small number of accepted pull requests; in 2020 it triggered a flood of spam pull requests that forced the organizers to rewrite the rules around maintainer opt-in and quality.
Leslie Lamport's partial ordering of events in a distributed system: A happens before B if A could causally influence B; otherwise the two events are concurrent.
Documented defects in shipped CPUs and chips, collected in vendor errata sheets and specification updates, and worked around in microcode, firmware, or operating-system software rather than by replacing the silicon.
Processor extensions, introduced by Intel and AMD around 2005-2006, that let a hypervisor run unmodified guest operating systems efficiently and safely in hardware.
When two different keys produce the same hash value; unavoidable by the pigeonhole principle and handled by chaining or open addressing.
A function that maps data of arbitrary size to a fixed-size value, used for hash tables, checksums, and cryptographic security.
A data structure that maps keys to values through a hash function and an array of buckets, giving average O(1) lookup, insert, and delete.
A tree-based structure, usually an array-backed binary heap, that keeps the smallest or largest element at the root for fast access.
A comparison sort that builds a binary heap from the data and repeatedly extracts the maximum, giving guaranteed O(n log n) time in place.