Rasterization
The process of converting vector geometry, usually triangles, into pixels on a raster display. It is the dominant real-time rendering pipeline and is specified in detail by graphics APIs such as OpenGL and Direct3D.
Plain-language explanations of the ideas behind software - compilers, garbage collection, objects, types.
The process of converting vector geometry, usually triangles, into pixels on a raster display. It is the dominant real-time rendering pipeline and is specified in detail by graphics APIs such as OpenGL and Direct3D.
What You See Is What You Get: editing a document on screen in its final visual form, pioneered by the Bravo editor at Xerox PARC and made mainstream by the Macintosh.
A per-pixel depth buffer used to resolve which surface is visible at each pixel. Introduced in Edwin Catmull's 1974 University of Utah PhD thesis, it is the standard hidden-surface method in real-time graphics.
The technique of wrapping a 2D image onto a 3D surface to add detail without adding geometry, introduced by Edwin Catmull in 1974 and extended by Blinn and Newell in 1976.
The general idea of arranging for work to run automatically: at a fixed future time, on a repeating calendar schedule, or when the queue and the machine are ready; realized on Unix by cron, at, and batch, and at larger scale by enterprise schedulers.
Bui Tuong Phong's 1975 reflection model and per-pixel normal interpolation, which produce realistic specular highlights and remain a default lighting model in computer graphics.
Carrier Sense Multiple Access with Collision Detection, the access method that let classic Ethernet share a single medium among many stations.
A 1976 method for two parties to agree on a shared secret over a public channel without ever transmitting it, underpinning HTTPS and TLS.
The first widely used government-standard block cipher, published as FIPS 46 in 1977, whose short 56-bit key was eventually rendered brute-forceable.
A linter is a tool that statically analyzes source code to flag bugs, non-portable constructs, and style or smell problems beyond what the compiler enforces. The category began with Bell Labs lint in 1978 and now spans ESLint, Pylint, clang-tidy, and many others.
A host computer running BBS software with a modem on a phone line, which callers dial into to read and post public messages, exchange files, and play games. The first one, CBBS, was built by Ward Christensen and Randy Suess and described in Byte in November 1978.
A 1978 subdivision-surface scheme by Edwin Catmull and James Clark that builds smooth B-spline-like surfaces from arbitrary polygon meshes by recursively refining the mesh.
An electronic spreadsheet is a grid of cells holding numbers, text, and formulas, where changing one value automatically recalculates every dependent formula. The model began with VisiCalc and runs through Lotus 1-2-3 to Excel.
A killer application is a program so compelling that people buy the hardware just to run it; VisiCalc on the Apple II and later Lotus 1-2-3 on the IBM PC are the classic cases that defined the idea.
The architectural principle of organizing network communication as a stack of protocols, each layer offering services to the layer above through a defined interface, exemplified by the OSI and TCP/IP models.
A rendering technique that follows rays of light through a scene to compute reflections, refractions, and shadows. Long an offline method, it became real-time on consumer GPUs with dedicated hardware in 2018.
A set of rules defining the format, meaning, and timing of messages exchanged between communicating systems, so that independently built machines can interoperate over a network.
A single program that combines an editor, compiler or interpreter, debugger, and build tools into one interface, so that writing, running, and fixing code happen without leaving the environment.
The BIOS is the firmware that boots a PC and abstracts its hardware behind a stable interface; IBM published its full source in the 1981 PC, and legally reimplementing it made the clone industry possible.
IP is the connectionless datagram-delivery protocol that addresses and routes packets across networks, handling fragmentation but leaving reliability to higher layers; it forms the narrow waist of the internet.
The numeric identifier that locates a host on an IP network; originally a 32-bit value carved into classful network and host parts and written in dotted-decimal notation.
The three-message exchange - SYN, SYN-ACK, ACK - by which two hosts establish a TCP connection and synchronize their initial sequence numbers before exchanging data. Specified in RFC 793 (September 1981).
A software distribution model in which a fully working program is given away freely to copy and try, with a written request that satisfied users voluntarily send a payment. It began around 1982 with Andrew Fluegelman's PC-Talk and Jim Knopf's PC-File, and later carried games such as Doom.
A sprite is a small 2D image, often hardware-generated, that a video chip composites onto a background and moves independently; it was the workhorse of arcade and home-console graphics.
Profiling is the measurement of where a running program spends its time or memory, using either statistical sampling or code instrumentation, and presenting the result as a flat profile or a call-graph profile.
Music synthesized by the dedicated sound chips of early home computers and consoles, such as the Commodore SID, the General Instrument AY, and the NES audio unit, later revived as a genre that treats the chips' constraints as an aesthetic.
A PC clone is a machine that reproduces the IBM PC architecture by legally reimplementing its copyrighted BIOS; clones commoditized the hardware and shifted lasting power to Microsoft and Intel.
A long-running background process that provides a service or supervises the system rather than serving an interactive user; the Unix tradition of daemonizing, the -d naming convention, and the double-fork that detaches a process from its terminal.
The remote-terminal protocol that lets a user operate a distant computer as if at a local terminal, built on the Network Virtual Terminal abstraction defined in RFC 854.
The BSD sockets API - socket, bind, listen, accept, connect, send, and recv - introduced in 4.2BSD Unix in 1983, which made TCP/IP programmable through ordinary file-like descriptors. It became the de facto standard for network programming and was later codified by POSIX.
The pattern-based method for breaking words at line ends, devised by Frank Liang in his 1983 Stanford dissertation and used by TeX, which finds hyphenation points by matching compact letter patterns rather than storing a full dictionary.
Knuth's methodology, introduced in a 1984 paper, of writing a program as a piece of literature addressed to human beings, interleaving prose and code so that documentation and source come from one combined document.
Charles Perrow's argument that in systems combining complex interactions with tight coupling, catastrophic failures are not anomalies but an inherent, expected property of the system itself, hence 'normal' accidents.
A small program that computes shading, geometry, or other effects on a GPU. The idea began with Cook's 1984 shade trees and the RenderMan Shading Language, and became programmable hardware via GLSL and HLSL.
A terminal emulator is software that imitates a hardware video terminal such as the DEC VT100, providing the screen and keyboard surface where a shell or program runs. It interprets the same escape and control sequences that real terminals once decoded in hardware.
The contest, running since 1984, for the most creatively unreadable working C program, where entrants turn the C language's quirks and the C preprocessor into ASCII art that still compiles and runs.
A store-and-forward network of hobbyist bulletin board systems, started by Tom Jennings in 1984, that moved private mail (netmail) and shared public conferences (echomail) worldwide by having boards call each other over the phone, typically late at night, to exchange batched messages.
The design principle, argued by Saltzer, Reed, and Clark in 1984, that functions like reliability are best placed at the communicating endpoints rather than inside the network, keeping the network simple.
Emacs Lisp, the dialect of Lisp that both implements and extends GNU Emacs. Because almost every command is written in Emacs Lisp and can be inspected and redefined at runtime, the editor is self-documenting and endlessly customizable.
A heisenbug is a software fault whose behavior changes or vanishes when you try to observe it; Jim Gray's 1985 Tandem report contrasts these transient, retry-tolerant faults with solid, repeatable Bohrbugs.
The simple key=value-with-sections configuration format popularized by MS-DOS and Windows, and the family of informal dialects it inspired.
A breakpoint pauses a program's execution at a chosen location so it can be inspected; a watchpoint pauses it when a value changes. They are implemented in software with trap instructions or in hardware with dedicated debug registers.
A core dump is a file holding a snapshot of a process's memory written when the process terminates abnormally, allowing post-mortem debugging of a crash. The name derives from the magnetic-core memory of early computers.
A debugger is a program that controls the execution of another program so a developer can pause it, step through it, and inspect or modify its state in order to find and fix defects.
Rendering that accounts for indirect light bouncing between surfaces, not just direct illumination. Formalized by Kajiya's 1986 rendering equation and approached through radiosity and path tracing.
The four freedoms (numbered 0 through 3) that the Free Software Foundation says a program must grant its users -- to run, study, redistribute, and modify it -- in order to qualify as free software.
The Free Software Foundation's statement of the criteria a program must meet to be free software, grounded in the idea that 'free' refers to liberty rather than price and resting on four essential freedoms.
The fabless-foundry model splits the semiconductor industry into companies that only design chips (fabless) and dedicated foundries that only manufacture them, a separation pioneered by TSMC in 1987 that made it possible to build a chip company without owning a fabrication plant.