Oak
A project started in 1990 at Sun Microsystems. Oak was supposed to be the OS for any consumer electronic product, eg televisions, door locks, etc. As such it would have to be extremely reliable since people accept bugs from PCs but not from TVs. However third party manufacturers weren't coming through so in 1995 Sun scaled it down to an internet programming language. Oak continues to grow as Java.
oawk
See awk.
object
In OOP (Object Oriented Programming), objects encapsulate both their code and data into members. Members are properties (variables, settings, attributes, and data that describe the object), methods (functions and things that you can tell the object to do or be done on the object), and events (things that can happen or that the object does; code can be executed when events occur).

Objects are created from classes. A class is template for items with fundamentally similar characteristics (much like the ancient Greek philosophic concept of "forms"). Classes are stored in type libraries and are often viewed with object browsers.

Creating an instance of a class instantiates an object. An object is a new copy of the class whose members can now be changed and used. A container is an object that has a group of objects of one or more related classes. A collection is an object that has a group of objects of the same class.

Objects are  referred to by the key variable (the object name) and appendages to the key variable. EG: For the object thing, there might be:
thing.husband = "fred"
thing.husband_age = 39
thing.0
thing.999
thing.new_function()
thing.sum()
thing.another_object
thing("wilma", 37)
The last example is a special case where the object is a particular kind of method/function called a constructor and it is used to set initial values of object properties.

In OOP applications, such as the MS Office suite, almost anything that can have a name is an object! See also distributed objects.
See OLE.
Object Management Group
See OMG.
Object Oriented Programming
See OOP.
Object Windows Library
See OWL.
OC
Optical Carrier. OC specifies the speed a SONET compliant fiber optic network carries data. OC-1 is 51.85 Mb/s. OC-48 is 2.488 Gb/s. See also b.
octal
Relating to a numbering system with a base of 8. The largest digit usable is 7, just as in a decimal system where the largest digit usable is 9. Each digit in a octal number is 8 to the power of the digit's position, with the first position being the power of zero.

The following may or may not be helpful in explaining a octal numbering system:
• Octal counts as follows: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11,.... For comparison, decimal counts as follows: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,....
• Octal number may occur in octets (sets of eight). The positions of the octet may be numbered (from left to right) 7, 6, 5, 4, 3, 2, 1,and 0. The maximum in each position is 8 to that power. The value of each digit in each position would be 8^7=2097152, 8^6=262144, 8^5=32768, 8^4=4096, 8^3=512, 8^2=64, 8^1=8, and 8^0=1. For comparison, for an octet of decimal numbers, the value of each digit in each position would be 10^7=10000000, 10^6=1000000, 10^5=100000, 10^4=10000, 10^3=1000, 10^2=100, 10^1=10, and 10^0=1.
• From right to left an octal system has a ones place, a eights place, a 64s place, a 512s place, a 4096s place, etc. For comparison, from right to left a decimal system has a ones place, a tens place, a hundreds place, a thousands place, a ten thousands place, etc.
• Given an arbitrary octal number 170, its decimal equivalent is 1*8^2 + 7*8^1 + 0*2^0 = 64 + 56 + 0 = 120. For comparison, the decimal number 170 = 1*10^2 + 7*10^1 + 0*10^0 = 100 + 70 + 0.
The c/c++/java shorthand for an octal value is to prefix with 0o. Some systems, like JavaScript, prefix octal number with a leading 0 while decimal decimal number have no leading zero. EG: This decimal value int y = 12 is the same as this octal value int y = 0o14.

.ocx
Custom controls. Aka ActiveX controls. These are executable files that remain in storage until called upon by a program. In that sense they are just like DLLs but ActiveX controls inform the user of the status of the file.
ODBC
Open DataBase Connectivity. An API (Application Programming Interface) for accessing databases that has become widely accepted. It is a CLI (Call Level Interface) that uses SQL (Structured Query Language) as its database access language. ODBC was developed by Microsoft and then turned over to the SAG (SQL Access Group) consortium.

Most of the major database vendors provide an ODBC driver for their SQL databases. The drivers act as a translator between an application and the target DBMS (DataBase Management System). This similar to how printer drivers are middle men between word processors and printers.

Microsoft provides an ODBC Driver Manager that connects vendor ODBC drivers to ODBC compliant user applications.  Unlike JDBC, ODBC can be utilized by any programming language.
ODBC Data Source Name
See DSN.
ODBC DSN
See DSN.
ODI
Open Datalink Interface. A standard developed by Novell and Apple which allows IPX/SPX (or Microsoft's NWLINK) to be bound with multiple NIC drivers. This is support specificaly for Novell's NetWare networks. See also NDIS and my article on OSI .
OEM
Original Equipment Manufacturer. An organization that makes hardware and/or software that is often sold off-the-shelf or customized by VARs.
OLAP
On Line Analytical Processing. The multidimensional presentation of data in multidimensional structures (eg data warehouses, data marts, and cubes), usually for the purpose of data mining. See also OLTP.
OLE
Object Linking and Embedding. Pronounced oh-lay or oh-el-ee. The Microsoft technology that shares an original document with another documents, even if the documents were created by different  programs as long as both programs are OLE compliant and entered into the computer's registry as such. One program (the server application) creates a document (the source file) which has an object (text, pictures, part of a spreadsheet, etc) which can be either linked or embedded into another document (the container file) created by possible another program (the client application).

If the object is placed via a special paste command into the container, then the object is linked to the original document, i.e. if there are changes made in the original document, those changes will automatically be changed in the container document. Care must be taken to maintain live links.

If an object is placed into a container normally, eg using regular paste, then the object is embedded without a link but it is still editable by the creating program.

In the Windows OS, OLE (compound documenting) is an application of ActiveX (component software). The Mac OS equivalent has Publish and Subscribe (compound documenting) as an application of OpenDoc (component software). OLE and ActiveX are both based on Microsoft's COM.

OLE Automation
Object Linking and Embedding Automation. A standard that allows one application component (the client) to access the features and services of another component (the server). OLE Automation Services may be in-process (runs like a DLL within the client application), out-of-process (runs as a separate executable application), or remote (runs as a separate application located on a different computer).
OLE DB

Object Linking and Embedding DataBase. Microsoft's strategic, system-level programming interface to access data across an organization. Whereas Open Database Connectivity (ODBC) is designed to allow access to relational data, OLE DB is an open standard designed to allow access to all kinds of data, including non-relational data. Conceptually, OLE DB has three types of components: data providers, data consumers, and service components.

• Data Consumers are applications or components that acquire data by using ADO (ActiveX Data Objects) to connect to OLE DB Data Providers. ADO is the programmatic interface for using OLE DB data.
• Service Components are components of OLE DB that connect, process, and transport data between the Data Consumer and the Data Provider. Architecturally, OLE DB is separated into components so data providers do not need to have the innate ability to provide data in a way that ADO can understand. These service components give ADO the ability to consume OLE DB data from providers that don't inherently offer handling of result sets or interpretation of SQL queries. Service components include query processors and cursor engines.
• Data providers are applications (such as Microsoft SQL Server or Exchange) or operating system components (such as a file system) that have data that other applications may need to access. These data providers expose OLE DB Interfaces that service components or data consumers can access directly. OLE DB Interfaces access sources such as RDBMSs (ODBC, SQL Server, Jet, Oracle, etc.),  mainframes (VSAM, ISAM, AS/400), e-mail and messaging stores, ADSI-LDAP Directory Services, or your own LOB Function business objects.

OLTP
On Line Transaction Processing. OLTP processes implement transactions, sequences of operations which must complete in entirety or not at all. OLTP can also be said to cover non-transactional data access and structuring. See also OLAP.
OMG
Object Management Group. A consortium of computer vendors that are pro-object oriented. They developed the CORBA standard. See also CIL.
On Line Analytical Processing
See OLAP.
On Line Transaction Processing
See OLTP.
OOP
Object Oriented Programming. Programming that allows you to encapsulate data and the functions that operate on that data. This makes programs more modular and thus easier to debug, reuse, maintain, and enhance.

Objects encapsulate both their code and data into members. Members are properties (variables, settings, attributes, and data that describe the object), methods (functions and things that you can tell the object to do or be done on the object), and events (things that can happen or that the object does; code can be executed when events occur).

Objects are created from classes. A class is template for items with fundamentally similar characteristics (much like the ancient Greek philosophic concept of "forms"). Classes are stored in type libraries and are often viewed with object browsers. The class defines, amongst many things, the object's interfaces.

The interface is the set which exposes the members of an object. An object can have multiple interfaces to support PIE: Polymorphism, Inheritance and Encapsulation. Polymorphism refers to coding of properties and methods that are common amongst objects regardless of class, eg a car object and a bike object can both have a run method but they slightly different. Inheritance allows changes in the class to propagate to new sub-classes, eg a vehicle object can have sub-objects like cars and bikes that can inherit many of its key properties and methods. Encapsulation means that the details of how an object implements parameters is hidden from general view.

Creating an instance of a class instantiates an object. At that state, an object is a copy of the class whose members can now be changed and used. A collection is an object that has a group of objects of the same class. A container is an object that has a group of objects of one or more related classes.

PERL 4 is not OOP but PERL 5 is. See programming languages.
See ODI.
OpenDoc
Protocol for the interaction of component software or parts. OpenDoc was developed by CIL (Component's Integration Labs), a consortium of computer vendors including Apple, IBM, and Novell. It is the component software behind Apple's compound document technology called Publish and Subscribe. That is, OpenDoc and ActiveX are component software technologies, whereas Publish and Subscribe and OLE are both compound documenting technology. It is more robust than Microsoft's OLE/ActiveX but not as small or easy. This is because ActiveX is tied to Windows whereas OpenDoc is not. In addition, OpenDoc supports inheritance whereas ActiveX does not. OpenDoc is CORBA compliant.
OpenGL
A computer language for 3D graphics developed by Silicon Graphics. It is implemented PCs, Macs and other types of workstations. Microsoft OpenGL is a variation built into Windows NT for improving hardware performance. Cosmo OpenGL is a software only variation specifically for machines that do not have graphics accelerators. See also Direct3D.
OpenVMS
See VMS.
Open Systems Interconnection
See OSI.
Operating System
See OS.
operational data
Aka production data, OLTP data, primitive data, raw data, and on-line data. The information and numbers used by an organization to run itself. This is in contrast to analytical data which is data derived from analysis of the operational data. Operational data is continuously collected by established means and should be error free. Operational data is accessed frequently but usually affects a small part of the data.
operator
The verbs or glue that binds variables and constants to form expressions and conditions.

Each language has its own rules of precedence that decide which operator acts first when multiple operators are present.

Operators operate on one or more operands, just as functions perform some functions with its arguments (if any). However while functions have some nice syntax like printf("hello"), operators have their own quick syntax.

Some programming languages allow coercion where operators or functions implicitly convert datatypes. EG: 1 + "2" will yield 3 or an error depending upon the language.

Operators usually work with one, two, or three pieces of data, i.e. operators are unary, binary, or ternary. The most common unary operators are: a++, ++a, a--, --a, +a, -a. The most common binary operators are: arithmetic (+, -, /, *, %, ^), relational (<, <=, >, >+, ==, !=), logical (&&, ||, !), and assignment (=, +=, -=, *=, /=). The conditional operator is the most common ternary operator: (condition ? a : b) i.e. if some condition is true, then execute a, else execute b.
Optical Carrier
See OC.
optical resolution
OR
A boolean operator that performs a logical disjunction on two expressions. The result of the operation is true if either or both of the expressions are true. Here is the truth table of the OR operator:
A  OR  B  =  Result
-------------------
0      0     0
0      1     1
1      0     1
1      1     1
Oracle
A Fortune 1000 company formed by Lawrence Ellison in 1977. They were the first database to support SQL. The oracle RDBMS such as Oracle8 and Oracle8i run on high-end workstations and mini-computers. Oracles is based in Redwood Shores, CA, has over 43,000 employees in 2000, and is traded on the NASDAQ as ORCL.
ORB
Object Request Broker. See CORBA.
Original Equipment Manufacturer
See OEM.
orphan
In word processing this is a visual mistake of having the first line or first few lines of a paragraph left at the bottom of the previous page. See also widow.
OS
Operating System. One of the initial programs to be run by the computer when first turned on. Once the OS is on, the user can then operate the system and hardware, i.e. issue commands. Common operating systems include:
• Mac OS by Apple
• Mac OS 7
• Mac OS 8
• Mac OS X
• Mac OS X v10.2 (code named "Jaguar", built upon Darwin Linux)
• OSs by Microsoft:
• DOS
• Windows 3.X
• Windows 9X/ME
• Windows NT/2000/XP
• Windows CE
• OS/2 by IBM
• Variations of UNIX. EGs:
• Solaris by Sun
• AIX by IBM
• Variations of Linux, eg:
• OpenLinux by Caldera
• RedHat Linux by RedHat Software
• TurboLinux by TurboLinux
• SuSE Linux by SuSE Linux
• Debian GNU/Linux by Debian
• NetWare by Novell
OS/2
An OS by IBM. OS/2 is client OS. OS/2 Warp is server OS.
OS/400
The proprietary OS for IBM's AS/400 minicomputer.
OSI
Open Systems Interconnection. The major architectural model for how data is transmitted between software applications on a network or internetwork. It is implemented by communications protocols such as the TCP/ICP suite. OSI was developed by the ISO (International Organization for Standardization) in 1984. It is currently ITU (International Telecommunication Union) Recommendation X.200.

The OSI reference model divides network responsibilities into seven ordered layers: Application, Presentation/Syntax, Session, Transport, Network, Data Link, and Physical. Each layer can interact indirectly with a layer immediately next to it but a layer on one host also interacts with a peer layer on another host. Only the physical layer can communicate directly between computers. See also my article on OSI.
OTOH
On The Other Hand.
outline font
Aka printer font. A font in which the shape of each character is described mathematically. This means that the letters would look fairly good when scaled to any size as opposed to bitmapped fonts.
OWL
Object Windows Library. Borland's C's counterpart to Microsoft Visual C++'s MFC.

Page Modified: (Hand noted: ) (Auto noted: )