Glossary

The glossary is a work in progress. If you have words you’d like to have defined let me know. Or if you have definitions that are messing, let me know that too.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
3G - The 3rd generation of cellular wireless standards. 3G is implemented in a variety of non-compatible ways by various carriers. This includes CDMA, HSPA, and GSM for the most part. Typical performance is required to support peak data rates of 200 kbit/s. Some modern hybrid systems support several Mbit/s.
4G - The 4th generation of cellular wireless standards - it's the successor the 3G. There is a vast difference between how carriers interpret and implement 4G at the current time, ranging from HSPA to WiMax to LTE, each has difference performance characteristics. The standard requires peak data rates from 100 Mbit/s for high mobility to 1Gbit/s for low mobility.
AJAX - Asynchronous JavaScript and XML. It's a set of web technologies that help create interactive web applications.
ALM - Application Lifecycle Management is the set of tools and processes to manage software from inception through developing, testing, deployment, and maintenance.
artificial intelligence - An attempt to make computers work/talk/act like people. Traditional definitions included a simple test that if a person dealing with a computer, for example via a keyboard and monitor, could not tell that there was a computer on the other end, then it was artificial intelligence. Modern definitions are more strict.
BASIC - Beginners All Purpose Symbolic Instruction Code. A programming language designed specifically for beginners.
cloud computing - From NIST: "cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."
code review - Code review is a process where programmers look at each others code and evaluate it's fitness for the intended purpose. It can find mistakes in design and implementation beyond simple syntax problems and improve quality.
CPU - The CPU or Central Processing Unit is the key brain of the computer, it's the part where most computation is actually done.
Development Testing - Development Testing is a software development process that involves practices such as static analysis, data flow analysis, metrics, peer code review, unit testing, code coverage and other steps that can be performed at development time. The goal is not to replace traditional QA, but to reduce time and cost by catching problems earlier.
DMCA - A United States digital rights bill signed in 1998 by Bill Clinton. The aim of DMCA is to protect the rights of both copyright owners and consumers. The act is controversial and some feel that it limits innovation and consumer choice to the benefit of existing content interests such as the RIAA and movie industry.
early-adopter - Someone who likes to have the latest and greatest things. They upgrade because something is newer, bigger, faster, has better numbers, etc. Sometimes they're right, but frequently the benefit of the new numbers is not measurable.
ESX - virtual machine software called a hypervisor from VMware. It allows you to dedicate a machine to running other virtual machines, without a large OS in the way.
false positive - A result that is incorrect. Strictly speaking, it means that the tool providing the answer got it wrong. Generally it has a broader usage, meaning an error message that the developer doesn't think is important or real, either because of context or misunderstanding by the developer.
Flash - Web-based multimedia platform. Used for putting animation, interactivity, and video on web pages.
flow analysis - A form of static analysis that works by analyzing software by tracing data flows and paths that might be used when running the application. It can find weaknesses, but is subject to false positive results because the paths and data it finds my be improbable or impossible.
FRAND - Fair Reasonable and Non-Discriminatory - a term used to describe certain patents that have been used in industry standards. It allows patent licenses on well defined fair terms for all users to support implementation of standards, such as Wi-Fi
Git - Git is a version control or source control system or SCM. It's well-suited for open-source type projects that are decentralized and rely on merging.
GPU - A Graphics Processing Unit or GPU is a logic chip that perform computations related to graphics. It does the graphical work for the CPU in a traditional computer. This includes things like rendering shapes and putting output onto the screen.
Heisenbug - Slang for a bug that disappears when you try to fix or reproduce it.
HSPA - HSPA is High Speed Packet Access and normally refers to 3G networks. Some companies such as AT&T have built what they call HSPA+ networks with speeds approximately double traditional HSPA networks.
HTML5 - HTML5 is the most recent version of the HTML standard. It is a language used to create web pages. Currently it is a draft standard, but it supported by all major browsers. HTML4 is the current actual standard.
hypervisor - A light-weight OS that primarily sits between virtual machines and the hardware. Its job is to manage the physical resources and share them between the virtual machines. Since it's not a full-blown OS it takes less resources itself and provides better performance.
Issue Tracking System - Software that manages a list of problems or issues that an organization faces, such as bugs, tech support calls, etc.
JSON - JSON or JavaScript Object Notation is a language independent text format. The purpose is to be able to transfer data/information between applications without having to have the same OS, file format, etc. It's a lightweight data-interchange format that is completely language independent but with some conventions.
JVM - JVM is the Java Virtual Machine. This is the program that interprets the Java byte code and actually runs a java program. Unlike traditional standalone applications such as those written in C/C++, you cannot simply execute a Java program, you must run it using a virtual machine to translate it to the local or native instructions.
K&R C - The original version of the C computing language was frequently known as K&R C for it's inventors, Kernigan and Ritchie. Later it was codified by the ansi comittee, in a variant known by old-timers as Ansi C.
Lisp - A family of programming languages designed to facilitate artificial intelligence. The name is short for "LISt Processing". The language was created in 1958.
LTE - LTE or Long Term Evolution is one of the most common methods of supporting high-speed 4G wireless standards. It uses 3GPP technology and can work with both CDMA and FSM. In the USA Verizon and T-Mobile use it, while AT&T have used different 3G hybrid technologies but have planned LTE rollouts.
NIST - National Institute of Standards and Technology
NPE - Often referred to an a "patent troll". NPE may be a perfectly legitimate inventor, with an idea that is useful and has been stolen by others, rather than independently invented. Or it may in fact be a patent troll, simply filing obvious ideas and then suing others.
Patent troll - A company that enforces dubious patents (IE obvious things that shouldn't be patentable) against other companies claiming the invention was "stolen". Some define this an NPE or non-practicing entity, but the terms are non synonymous.
pattern-based analysis - A form of static analysis where patterns of either good or bad code are stored as rules and compared against a code base without executing the code, to find potential violations.
salted hash - A method of adding a random sequence of characters to a password before encrypting it, making them much more difficult to crack.
SATE - Static Analysis Tool Exposition is an effort by NIST to help people understand what static analysis tools are capable of, and what their limitations are.
SCM - Software configuration management aka SCM or Source Code Control System or Source Control aka Version Control. A system that keeps track of changes and revisions in software, as well as facilitating cooperative development.
SoC - System on a chip. Rather than traditional computing where a system consists of a CPU and separate memory, graphics processor, etc, the SoC is essentially a small computer on a single chip - ideal for mobile devices.
static analysis - Any form of software analysis that can be done on the code without actually executing the code. Encompasses techniques like pattern-based analysis, metrics, code review, etc.
SVN - SVN aka Subversion is a source control system or SCM, designed to work similar to CVS but with improvements to address limitations inherent in CVS.
virtual machine - a system that enables you to encapsulate all the parts of a computer without reliance on hardware. It's a machine, but isn't installed directly on the hard drive at boot time. This allows you to run different operating systems, versions, etc., at the same time without rebooting.
WebDAV - Web-based Distributed Authoring and Versioning. It's a method of using the web (http) to share files and collaborate.
WiMax - A long-range wireless technology for high-speed internet access. Originally it was classified as a 3G technology, but because of it's improved performance can also be classified as 4G, albeit slower than LTE. Supported by Sprint in the USA.

 

Leave a Reply