A window designed to display the application name, copyright holder, software version number, and a link to the creator's Web site. On OS X, the About Box is accessed from the Application Menu.
An OS X application designed to track contact information for friends, family, and business associates. Applications that need access to contact information or need to retain contact information on OS X should always interface with this application.
A user who is all-powerful on a particular computer. The administrator has all permissions to do anything on the computer.
Adobe Systems is known for their graphics and Web design software. Adobe owns Photoshop, Illustrator, Flash, Acrobat, and Dreamweaver. Find Adobe at www.adobe.com
.
Indicates the transparency of a given image.
A software release for testing purposes. Alpha releases typically do not have a stable feature set, meaning features may be added or removed before the software application reaches beta.
Target-based build tool. Ant builds consist of one or more files organized into a project containing targets and targets containing individual tasks.
The Apache Software Foundation responsible for organizing many popular open-source, business-friendly projects. Apache also refers to their most popular project, an HTTP server.
A collection of libraries for use in software development.
Short for software application.
The menu at the top left hand corner of an OS X Desktop. The Apple Menu contains System-related menu items and is visible from all applications. The Apple Menu takes its name from the prominent apple-shaped icon on the menu bar.
Natural-language-based scripting language for cross-process scripting on OS X. AppleScript allows properly written applications (including Java applications) to act together for common task resolution.
Bundled AppleScript applications or Java Applications embedded in Web pages. These two meanings have nothing to do with each other and can lead to confusion in certain discussions.
GUI application for testing Java Applets without a Web browser.
A command-line application provided for quick display of Java Applets without the need of a Web browser.
Found just right of the Apple Menu. The Application Menu contains an application's About, Preferences..., and Quit menu items.
The hardware of a computer. OS X tends to be mostly architecture agnostic.
The default name of a Finder compressed ZIP file. Change this name to prevent name collisions.
Parameters passed to a program on startup or passed to a function/method while running.
Pronounced "as key." This is a text-based format limited in utility to Roman-based languages. Superseded by Unicode-8.
Happening independently. For instance, methods are asynchronous when their return value is sent by a different thread, often after the original method has returned.
Also jokingly referred to as Another Window Toolkit. This is the original Java windowing toolkit, later expanded by Swing.
Placing a small version of an application icon on an alert or information icon. A badge appears in the lower-right corner of an alert or information icon in a dialog box. Badging acts as a visual queue to users, indicating the application to which a dialog box belongs.
The directory that holds an application's folders, data, and executable files. The base directory of OS X also is called the root directory.
The default Unix shell used in Terminal on OS X.
A script that processes data, repeating the same changes to multiple pieces of data.
Bare Bones Software's text editor. The Bare Bones Software Web site is located at www.barebones.com
.
Feature-complete test release of software. The beta release comes after an alpha release and before a Golden Master release. Beta releases should contain a fixed set of features that will not change before final release of the software. Beta releases often contain features that do not yet work. Beta releases give developers a chance to test software for bugs with real users before declaring the software finished.
A curved path defined by two points and two control points. These curves may be chained to define complex curving paths.
See Bezier curve.
Base 2 number system.
A file format defining images.
An area of printed material designed to be cut off, producing the illusion that printing went to the edge of the paper. Using bleeds instead of actually printing to the edge of paper prevents ink build up on press rollers and reduces the likelihood of ghost images appearing on printed material.
A chunk of code surrounded by curly braces. Also, a mechanism for stopping a threads execution until some event occurs.
A quick link to section of code in Xcode. Also, bookmarks are used in Web browsers, such as Safari, providing quick access to Web pages.
Starting of an application, especially the starting of OS X.
A situation involving two events depending on the other event happening first. The prototypical example of a bootstrap problem is, "which came first, the chicken or the egg?" In programming, this kind of problem usually occurs when a program (or OS) cannot be built until it has first been run (indicating it was already built).
A point in code where execution is paused for debugging.
Mechanism allowing two disparate technologies to communicate. For example, a bridge allows Java and Objective-C to communicate and act as one program.
Berkeley Unix. This is a Unix, but not a Linux.
Default project file for Ant builds.
A folder containing a collection of related files on OS X.
Allows a function to call back to the executing code. Usually associated with passing of function pointers.
Along with Java and Cocoa, represents one of the main programming frameworks available on OS X.
An alias for gcc on OS X.
Terminal-based User Interface framework. Charva is designed to work as a replacement for Swing and AWT in environments that demand a text-based interface. This is common with terminal- and server-based applications.
Refers to the process of deleting compiled classes and assembled products in preparation for building from scratch.
Text-based interfaces such as Terminal for controlling Operating Systems. Many Unix programmers prefer CLIs for their simplicity and speed.
Four-color process common in printing. C is cyan. M is magenta. Y is Yellow. K is black.
Along with Java and Carbon, represents one of the main programming frameworks available on OS X.
On OS X, Console is an application for tracking System logs. Often, Unix gurus refer to applications such as Terminal as a console (with a lowercase "c").
Manages the View and Model in a Model-View-Controller environment. Controllers are the brains of applications.
A cross-language, cross-platform standard for inter-process communication.
A task that repeats at specified intervals, such as nightly or weekly. The cron
daemon is responsible for the execution of the tasks.
Indicates the beginning of ASCII-based control sequences for changing the display preferences of text output in Terminal windows.
Common Unix library for controlling terminal output.
GNU GPL software for versioning software. Similar to SVN in capabilities.
OS X is built on top of Darwin. Darwin is a POSIX-compliant operating system. Several operating systems are derived from Darwin.
Any mechanism for data storage, including databases, flat files, and directory services.
Disk image file format used for distribution of applications for OS X.
OS X monitors in Cocoa and Carbon are represented programmatically as 72 dots per inch, but likely have more actual pixels per inch. Carbon and Cocoa drawing is resolution-independent.
A popular free open-source IDE for development of Java, C, PHP, and other languages. Eclipse is written in Java and is very popular for Java development on OS X.
Popular Terminal-based text editor for OS X.
Applications that run companies. If an application is multi-tiered, networked, database-driven, capable of scaling, and integral to a business's success, it is often referred to as an enterprise application.
File format designed for storing vector-based graphics.
GUI application responsible for user interaction with the OS. Similar in function to the text-based Terminal application.
Process of composing one image raster image from multiple layers of images. This is a common task in Photoshop and other image-processing programs.
Collapsing the view of code or comments in an IDE. Eclipse, Xcode, and other common IDEs provide folding to make program source code more legible.
Creating a duplicate process to run the same program. Similar in function to spawning threads, but much more resource intensive.
Code libraries that are related and possibly bundled together.
A variant of BSD. See BSD.
Software that is provided for use free of charge. Freeware is often open-source, but not always open-source.
Protocol for transferring files over network connections.
GNU's command-line compiler used for compiling Objective-C, C, and C++ on OS X. Xcode uses gcc
for compiling many project templates.
Creator of Poseidon for UML, a round-trip UML architecting tool for Java.
A raster art image format popular on the Web. Very useful for storing images with a limited number of colors.
See Golden Master.
Free open-source POSIX operating system. Not to be confused with BSD.
A variant of BSD based on Darwin. See BSD.
A production-quality release. This is usually the final build of a software product before it is sold to customers.
A mouse and picture driven interface for users. Contrasts sharply with TUIs that are normally text and keyboard driven.
Displays application-specific help files. Help Viewer is available to all properly constructed GUI programs on OS X, including Java applications.
Location of user's personal files and directories, including Desktop and Library. Usually, this directory is located at /Users/<username>
.
Free, open-source, business friendly embeddable database with an extremely small footprint. HSQLDB is also a pure Java application.
The language in which Web pages are written. In syntax, HTML is very similar to XML.
Apple's recommendations for creating user-friendly applications that fit the look and feel of standard OS X applications.
Vector art program produced by Adobe.
XML file found in application bundles describing the bundle, resource locations, and the other properties of the bundle. Opens with Property List Editor for convenient editing.
A popular commercial IDE for Java development. It is sold by JetBrains at www.jetbrains.com
.
Java-based packaging and deployment software. IzPack is open-source software and distributed under a business-friendly Apache License. It is found at izpack.org
(without "www
".)
Never heard of it.
The home directory of the Java installation currently in use. Java home is available by issuing the command /usr/libexec/java_home
from the Terminal.
Command-line tool for generating C header files. Used when implementing native
Java methods.
Class disassembler for Java. Useful when looking for method signatures needed in native C-based JNI code.
Creators of Intellij IDEA. Their Web site is www.jetbrains.com
.
Producers of Java UI libraries and tools.
Provides Java integration with C and C++. Apple provides JNI support as the main integration technique between Java, C, and Objective-C frameworks on OS X.
Java Web site design language. JSP compiles to Servlets that extend the server they run on.
The most popular Java-based testing framework.
The software responsible for direct communication between the OS and the hardware. OS X uses the Mach microkernel.
Command-line shell used in Terminal.
Any OS, framework, application, or utility that was replaced with newer software.
OS X version 1.5 released in October 2007.
Less-restrictive GNU license designed to allow linking to commercial software.
The cycle of creation, maintenance, and decommissioning of software. Usually extended through good design and maintenance practices.
The local computer. Also known as Internet Protocol address 127.0.0.1.
The microkernel used by Darwin. See also kernel.
UML design tool by No Magic, Inc.
A GNU build tool. Make was the inspiration for Ant.
Command-line tool for displaying of utility manuals in Terminal.
An alternative Java-based build tool. Maven is roughly equivalent to Ant using Ivy.
The original developer of the CodeWarrior development tools popular on Macs before the release of OS X.
Keyboard commands that trigger GUI events such as the selection of a Java MenuItem.
Blocking. For instance, modal dialog boxes block the application from accepting input until the dialog box is dismissed.
Development environment for Macintosh computers predating OS X.
The Java runtime for Mac systems predating OS X.
A design paradigm that separates data, display, and management into modules call the Model, the View, and the Controller, respectively.
Command-line text editor. Replaces Pico.
Builds on the curses library.
A popular Java IDE sponsored by Sun Microsystems. NetBeans works well on OS X.
The predecessor to OS X. OS X is derived from NextStep. The tag of NS is still found on many of the classes and methods used in developing OS X applications.
Apple's answer to C++. Objective-C advocates say Objective-C is the Object-Oriented Programming language that C++ was meant to become but failed at becoming.
Objective-C-based language integrated to work with C++.
An API specification released to the public by Next and Sun Microsystems. Closely related to NextStep.
The application in charge of hiding low-level activities of the computer, such as booting and starting user applications.
A bundle that behaves as though it is one file rather than a folder. Applications on OS X are bundles that are packages.
Also known jokingly as the Pathologically Eclectic Rubbish Lister. Perl is the most-influential scripting language in the history of computers and the Internet. Larry Wall developed Perl in the late 1980s.
A Web application development scripting language occupying a similar feature space as JSP.
One colored dot displayed on a monitor.
Application distribution format used by the Installer application.
A module used to extend an application or service.
A round trip UML design and development tool for Java. It is developed by Gentleware AG, located at www.gentleware.com
.
PC architecture used by Macs before the transition to Intel-based architectures.
The underlying thread system on OS X. All threads on OS X at some level are pthreads.
A popular open-source dynamic language.
The underlying image processor for OS X.
Configures multiple disks to operate one large disk or multiple disks to act as backups for each other.
Representation of images as bitmaps.
The process of fixing and updating code in small chunks while adding new features, thus extending the overall life expectancy of the software.
Pattern-matching languages for matching text patterns. Most modern regular expression syntaxes (including Java's) are based on Larry Wall's Perl regular expression syntax.
Three-color representation of images for display on computer monitors.
Complete administrative access. See admin.
The base directory of the operating system. Usually indicated by '/'.
Many UML design tools offer the feature of creating diagrams from code and generating code from diagrams. Using this feature is Round Trip Design and Development.
Formats for frequently updating information over the Web.
An interpreted open-source programming language.
Prerelease software intended to help developers prepare for upcoming software releases.
Java classes designed as extensions to Java servers. One of the most common Java servers using Servlets is Tomcat.
Software released for distribution in an attempt to increase sales. Most shareware lacks features available to the purchasers of the same product. Most shareware is not open-source or completely free.
A text-based environment designed to run in applications like Terminal. Shells provide text-based interfaces with Operating Systems.
OS X Version 10.6. Released in September 2009.
Text-based remote login client. Frequently used to admin remote servers.
Creators and maintainers of Java.
Command-line utility for running Subversion client. Subversion is a software version control system.
Synchronous methods return normally in the same thread that called them. This differs from their multi-threaded asynchronous counterparts.
A shell for use in Terminal.
Text-based application responsible for user interaction with the OS. Similar in function to the GUI-based Finder application.
Exit a program or shell script. Accomplished in Java with System.exit(0);.
Similar to a fork, but remains in a single process; not as resource intensive. Threads execute code from the same program simultaneously.
The act of selecting or deselecting a check box.
A popular Java-based Web server produced by the creators of Apache. The Web site is tomcat.apache.org
.
In this book, refers to Terminal User Interfaces, but more commonly refers to Text User Interfaces.
A description including both GUIs and TUIs. User Interfaces define application users' interaction with applications. UIs include buttons, windows, text fields, menus, and so on.
Diagram-based software description language. UML is useful for quick overviews of software architecture, but is also used for full round-trip design and development.
Popular Terminal-based text editor. The vi application is available on most Unix Operating Systems, and some non-Unix Operating Systems.
A virtual machine designed to run Windows, Linux, BSD, and other operating systems on OS X computers.
Software that allows running of virtual computers on your computer. Java runs on a Virtual Machine called the JVM. Other popular VMs for OS X often run entire operating systems, such as VirtualBox and VMware Fusion.
A virtual machine designed to run and integrate windows on OS X computers.
A class or library designed to hide implementation details of another class or library.
Apple's annual developer conference featuring Apple technologies.
Computer monitor display that exactly resembles the final printed output. Apple developed a strong relationship with the printing industry based on this popular feature.
X Window System for local and remote access to computers. X is another option in addition to the Finder and Terminal for controlling your OS. X ships with OS X, Linux, and various Unix-like operating systems.
See X.
The Objective-C-based development IDE that ships with OS X. This IDE works with many languages including Java.
Language used for defining other markup languages. XML is used to define views, property files, Ant build projects, and a host of other applications.
Compression application and format. OS X ships with a command-line zip utility.
The Z shell. Used in Terminal for executing scripts and control of the command line.
13.59.107.152