Glossary
Actor Model
A mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent computation.
APNs
Apple Push Notification service.
Arity
The number of arguments or operands that the function takes. The arity of a relation (or predicate) is the dimension of the domain in the corresponding Cartesian product.
Backbone
A JavaScript framework with a RESTful JSON interface and is based on the model–view–presenter (MVP) application design paradigm; known for being lightweight.
Behavior-Driven Development
A software development methodology in which an application is specified and designed by describing how its behavior should appear to an outside observer.
Binary Protocol
A protocol which is intended or expected to be read by a machine rather than a human being, as opposed to a plain text protocol such as IRC, SMTP, or HTTP. Binary protocols have the advantage of terseness, which translates into speed of transmission and interpretation.
Blocks
In Ruby, blocks are closures (anonymous functions) that can be passed to many methods.
Bounded Queue
A queue limited to a fixed number of items. There are several efficient implementations of FIFO queues. An efficient implementation is one that can perform the operations—enqueuing and dequeuing—in O(1) time.
Brevity
Concise and exact use of words in writing or speech.
Bytestream
A sequence of bytes. Typically, each byte is from a range of 256 distinct values (octets), and so the term octet stream is sometimes used to refer to the same thing.
Callbacks
Functions that are executed asynchronously.
Circular Buffer
A memory allocation scheme where memory is reused (reclaimed) when an index, incremented modulo the buffer size, writes over a previously used location. A circular buffer makes a bounded queue when separate indices are used for inserting and removing data.
Classpath
A parameter in the JVM or the Java compiler that specifies the location of user-defined classes and packages. The parameter may be set either on the command-line, or through an environment variable.
CNS
Central Nervous System.
Comparison Sort
A type of sorting algorithm that only reads the list elements through a single abstract comparison operation (often a "less than or equal to" operator or a three-way comparison) that determines which of two elements should occur first in the final sorted list.
Composer
An application-level package manager for the PHP programming language that provides a standard format for managing dependencies of PHP software and required libraries.
Control Flow
The order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an imperative programming language from a declarative programming language.
Controller View
A react component that has child components. The top-level component on a page. Best practice is to avoid nesting controller views.
Convention over configuration
A software design paradigm used by software frameworks that attempt to decrease the number of decisions that a developer using the framework is required to make without necessarily losing flexibility. a.k.a. Coding by convention.
CORS
Cross-Origin Resource Sharing.
CRUD
Create. Read. Update. Destroy.
Curry
See: Currying.
Currying
The process of transforming a function that takes multiple arguments into a function that takes just a single argument and returns another function if any arguments are still needed.
Database normalization
Database normalization, or simply normalization, is the process of organizing the columns (attributes) and tables (relations) of a relational database to minimize data redundancy. Normalization involves decomposing a table into less redundant (and smaller) tables without losing information, and then linking the data back together by defining foreign keys in the old table referencing the primary keys of the new ones. The objective is to isolate data so that additions, deletions, and modifications of an attribute can be made in just one table and then propagated through the rest of the database using the defined foreign keys.
Decorator Pattern
Add responsibilities to objects dynamically; a structural design pattern.
Deep learning
A branch of machine learning based on a set of algorithms that attempt to model high-level abstractions in data by using multiple processing layers, with complex structures or otherwise, composed of multiple non-linear transformations.
Delta Compression
See: Delta Encoding.
Delta Encoding
A way of storing or transmitting data in the form of differences (deltas) between sequential data rather than complete files; more generally this is known as data differencing.
Dispatch
A function that allows your to fire off your actions. (see: redux)
DIT
Directory Information Tree.
Divide & conquer algorithm
An algorithm design paradigm based on multi-branched recursion. A divide and conquer algorithm works by recursively breaking down a problem into two or more sub-problems of the same (or related) type (divide), until these become simple enough to be solved directly (conquer). The solutions to the sub-problems are then combined to give a solution to the original problem.
Domain-Specific Language
A computer language specialized to a particular application domain.
DRY
Don’t Repeat Yourself, a software design principle. Explained in Pragmatic Programmers, it means that “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.”
DSE
DSA Specific Entry.
Duck Typing
A way to write computer code that doesn't demand that you know what types you are writing about. If it does what you thought it would do, it is good enough. The reason this is called "duck typing" is the duck test: "When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck."
Enumeration
A complete, ordered listing of all the items in a collection. The term is commonly used in mathematics and computer science to refer to a listing of all of the elements of a set.
ETL
ETL (Extract, Transform and Load) is a process in data warehousing responsible for pulling data out of the source systems and placing it into a data warehouse.
Fault Tolerance
The property that enables a system to continue operating properly in the event of the failure of (or one or more faults within) some of its components.
Functional Tests
Functional tests check a particular feature for correctness by comparing the results for a given input against the specification. Functional tests don't concern themselves with intermediate results or side-effects, just the result (they don't care that after doing x, object y has state z). They are written to test part of the specification such as, "calling function Square(x) with the argument of 2 returns 4".
General-Purpose Language
A computer language that is broadly applicable across application domains, and lacks specialized features for a particular domain.
GNU Make
A tool which controls the generation of executables and other non-source files of a program from the program's source files.
Graceful Degradation
The ability of a computer, machine, electronic system or network to maintain limited functionality even when a large portion of it has been destroyed or rendered inoperative. The purpose of graceful degradation is to prevent catastrophic failure.
Hash table
A data structure used to implement an associative array, a structure that can map keys to values. A hash table uses a hash function to compute an index into an array of buckets or slots, from which the desired value can be found.
Hash tables
See Hash Table
Headless
A headless browser is a web browser without a graphical user interface.
HMAC
Hash-based message authentication code.
HSTS
HTTP Strict Transport Security, a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking. It allows web servers to declare that web browsers (or other complying user agents) should only interact with it using secure HTTPS connections, and never via the insecure HTTP protocol. The HSTS Policy is communicated by the server to the user agent via an HTTP response header field named "Strict-Transport-Security". HSTS Policy specifies a period of time during which the user agent should only access the server in a secure fashion.
IANA
Internet Assigned Numbers Authority.
IaaS
Infrastructure as a Service.
ICANN
Internet Corporation for Assigned Names & Numbers. A nonprofit private American corporation that oversees global IP address allocation, autonomous system number allocation, root zone management in the Domain Name System (DNS), media types, and other Internet Protocol-related symbols and numbers.
Interface
Specifies what methods a class must implement (an interface). An interface is slightly more abstract than an abstract class, because it does not imply an 'is a' relationship with classes that inherit it.
Kafka streams
A Java library for building distributed stream processing apps using Apache Kafka.
Java
A general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere."
Java EE
Java Enterprise Edition. It adds libraries to Java SE which provide functionality to deploy fault-tolerant, distributed, multi-tier Java software, based largely on modular components running on an application server.
Java SE
Java Standard Edition. This is the core Java programming platform. It contains all of the libraries and APIs that any Java programmer should learn (java.lang, java.io, java.math, java.net, java.util, etc...).
Java Virtual Machine
An abstract computing machine that enables a computer to run a Java program.
JVM
see Java Virtual Machine.
jQuery
A cross-platform JavaScript library designed to simplify the client-side scripting of HTML.
JVM
Java virtual machine, an abstract computing machine that enables a computer to run a Java program. There are three notions of the JVM: specification, implementation, and instance. The specification is a document that formally describes what is required of a JVM implementation.
Kaizen
Kaizen (Continuous Improvement) is a strategy where employees at all levels of a company work together proactively to achieve regular, incremental improvements to the manufacturing process. In a sense, it combines the collective talents within a company to create a powerful engine for improvement.
Kernel
Connects the application software to the hardware of a computer: managing i/o requests from software, and translates them into data processing instructions for the CPU and other hardware.
Kitematic
The Docker GUI, runs on Mac OS X and Windows operating systems. https://docs.docker.com/kitematic
Lambda
A closure. More or less identical to PROCS, with a key difference: when a lambda returns, it passes control back to the calling method; when a proc returns, it does so immediately, without finishing the calling method.
Law of Demeter
A given object should assume as little as possible about the structure or properties of anything else (including its subcomponents), in accordance with the principle of "information hiding".
Lazy Loading
A design pattern commonly used in computer programming to defer initialization of an object until the point at which it is needed. It can contribute to efficiency in the program's operation if properly and appropriately used. The opposite of lazy loading is eager loading.
LDAP
A directory service protocol that runs on a layer above the TCP/IP stack. It provides a mechanism used to connect to, search, and modify Internet directories. The LDAP directory service is based on a client-server model.
LDIF
A standard plain text data interchange format for representing LDAP directory CRUD requests.
LIFO
Last in first out.
LXC
An operating-system-level virtualization environment for running multiple isolated Linux systems (containers) on a single Linux control host.
Machine Learning
Field of study that gives computers the ability to learn without being explicitly programmed.
MapReduce
A programming model & implementation for processing and generating large data sets with a parallel, distributed algorithm on a cluster. Composed of a Map() method that performs filtering and sorting (such as sorting students by first name into queues, one queue for each name) and a Reduce() method that performs a summary operation (such as counting the number of students in each queue, yielding name frequencies). The "MapReduce System" orchestrates the processing by marshalling the distributed servers, running the various tasks in parallel, managing all communications and data transfers between the various parts of the system, and providing for redundancy and fault tolerance.
MIT License
Permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms and the copyright notice.
Ncurses
A programming library providing an API that allows the programmer to write text-based user interfaces in a terminal-independent manner. It is a toolkit for developing "GUI-like" application software that runs under a terminal emulator.
Normalization
see: Database normalization.
Object literal
A comma-separated list of name-value pairs wrapped in curly braces. Object literals encapsulate data, enclosing it in a tidy package. This minimizes the use of global variables which can cause problems when combining code.
OCP
Open/closed Principle.
Neural Networks
Artificial neural networks are generally presented as systems of interconnected "neurons" which exchange messages between each other. The connections have numeric weights that can be tuned based on experience, making neural nets adaptive to inputs and capable of learning.
OID
Object IDentifier.
OKRs
Objectives and Key Results (OKRs) are a management methodology that connects work to a strategic plan.
Ontology
The philosophical study of the nature of being, becoming, existence, or reality, as well as the basic categories of being and their relations. It deals with questions about what things exist or can be said to exist, and how such entities can be grouped according to similarities and differences.
OSPNS
Operating System Push Notification Service.
Polymorphism
The provision of a single interface to entities of different types.
Postgres
See: PostgreSQL.
PostgreSQL
An object-relational database management system (ORDBMS) with an emphasis on extensibility and standards-compliance.
Proc
A closure or a "saved block”. Kind of like a method, but it can be used like a block and passed to methods that take blocks as parameters. & is used to convert a proc into a block.
Profiling
A measure of the relative performance of your application at the code-level. Profiling will capture things like CPU usage, memory usage, time and number of calls per function, as well as capturing a call graph. The act of profiling will impact performance. This differs from benchmarking, as benchmarking is performed externally and will measure the actual performance: what your end-users will see.
Protected
Accessible within the class itself and subclasses.
Protocol
A defined language machines talk in. Doesn't matter how their brains created or listen to the thoughts, just that the language is agreed upon.
Queue
A particular kind of abstract data type or collection in which the entities in the collection are kept in order and the principal (or only) operations on the collection are the addition of entities to the rear terminal position, known as enqueue, and removal of entities from the front terminal position, known as dequeue.
RDN
Relative Distinguished Name.
Redux
Redux is a predictable state container for JavaScript apps.
Reflection
The ability of a computer program to examine (see type introspection) and modify its own structure and behavior (specifically the values, meta-data, properties and functions) at runtime.
Repository
A Repository mediates between the domain and data mapping layers, acting like an in-memory domain object collection
RPC
Remote Procedure Call, a protocol that one program can use to request a service from a program located in another computer in a network without having to understand network details. (A procedure call is also sometimes known as a function call or a subroutine call.) RPC uses the client/server model.
RPM
RPM Package Manager; originally Red Hat Package Manager.
RSA
A cryptosystem for public-key encryption.
Runtime
May refer to: Run time (program lifecycle phase), the period during which a computer program is executing. Runtime system, software designed to support the execution of computer programs. Runtime library, a program library designed to implement functions built into a programming language.
SAML
Security Assertion Markup Language Tokens.
Scala
A general purpose programming language, with full support for functional programming and a very strong static type system.
Scalar
A scalar variable, or scalar field, is a variable that holds one value at a time. It is a single component that assumes a range of number or string values. A scalar value is associated with every point in a space.
SEIT
Software Engineer in Test
Sequence Diagram
An interaction diagram that shows how processes operate with one another and in what order.
Serialization
Serialization is the process of turning an object in memory into a stream of bytes so you can do stuff like store it on disk or send it over the network. Deserialization is the reverse process: turning a stream of bytes into an object in memory.
Service
A Service in Domain Driven Design is simply a stateless object that performs an action.
Single source of truth
The practice of structuring information models and associated schemata such that every data element is stored exactly once, thereby providing data that is authentic, relevant, and referable.
Sorting Algorithm
An algorithm that puts elements of a list in a certain order.
SPA
Single page application.
Specification Pattern
Business rules can be recombined by chaining the business rules together using boolean logic.
SQLite
A software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.
Stable Sort
The implementation preserves the input order of equal elements in the sorted output.
Stack trace
A report of the active stack frames at a certain point in time during the execution of a program.
Thread-safe
A piece of code is thread-safe if it manipulates shared data structures only in a manner that guarantees safe execution by multiple threads at the same time.
Thunk
A function, that wraps an expression, in order to delay its evaluation.
Trait
A set of methods that are not inherited, but composed into classes.
Traits
see Trait
Type introspection
The ability of a program to examine the type or properties of an object at runtime.
UFS
Unionfs is a filesystem service for Linux, FreeBSD and NetBSD which implements a union mount for other file systems. As an example application of union mounting, consider the need to update the information contained on a CD-ROM or DVD. While a CD-ROM is not writable, one can overlay the CD's mount point with a writable directory in a union mount. Then, updating files in the union directory will cause them to end up in the writable directory, giving the illusion that the CD-ROM's contents have been updated.
UMT
User multivariate testing, a technique for testing a hypothesis in which multiple variables are modified. The goal of multivariate testing is to determine which combination of variations performs the best out of all of the possible combinations. Websites and mobile apps are made of combinations of changeable elements.
Union mount
A way of combining multiple directories into one that appears to contain their combined contents.
Unix Socket
A Unix domain socket or IPC socket (inter-process communication socket) is a data communications endpoint for exchanging data between processes executing on the same host operating system. Like named pipes, Unix domain sockets support transmission of a reliable stream of bytes (SOCK_STREAM, compare to TCP).
UUID
Universally unique identifier, an identifier standard used in software construction. A UUID is simply a 128-bit value.
WebSockets
An advanced technology that makes it possible to open an interactive communication session between the user's browser and a server. With this API, you can send messages to a server and receive event-driven responses without having to poll the server for a reply.
WORA
Write Once, Run Anywhere.
X.500
A complex enterprise directory system.
XML
Extensible Markup Language.
XMPP
Extensible Messaging & Presence Protocol.
YAGNI
"You aren't gonna need it." A principle of extreme programming (XP) that states a programmer should not add functionality until deemed necessary. XP co-founder Ron Jeffries has written: "Always implement things when you actually need them, never when you just foresee that you need them."
Yeoman
An open source client-side development stack, consisting of tools and frameworks intended to help developers quickly build high quality web applications.
Zepto
A minimalist JavaScript library for modern browsers with a largely jQuery-compatible API. If you use jQuery, you already know how to use Zepto.