FOR IMMEDIATE RELEASE

Automated Solutions Group Announces the Release of ObjectTools v1.0

Huntington Beach, CA – July 16, 1999: Automated Solutions Group today
announced the release of ObjectTools v1.0 for Macintosh and Windows.
ObjectTools is a 4th Dimension plug-in which provides a set of
routines that allow you to create Objects: a single entity in which
you can store and retrieve any amount of data of differing types.
This is similar to what you can do with 4D BLOBs, but with several
important differences:

Rather than using offsets, data is stored into and retrieved from
Objects by name. Whereas BLOBs are the equivalent of ROM — once
written, you cannot really modify their contents — Objects are more
like RAM. Once stored, data in Objects can be modified in place,
retrieved into 4D variables, and copied to other Objects. Because
Objects are represented by Longint handles, you can create arrays of
Objects.

What are Objects Good For?

While the uses of Objects are virtually limitless, there are several
common problems which they directly address:

* To drastically reduce the number of process and interprocess variables
* To save and restore complex configuration data, such as the configuration
of plug-ins
* To allow an object-oriented style of programming

How Do Objects Work?

In classical programming terms Objects are implemented as an
unordered dictionary. A dictionary is a collection of key-value
pairs, where the key uniquely identifies a value. In the case of
Objects, the key is the item reference, or tag. The value is whatever
was stored with the key.

Objects are unordered dictionaries, meaning that the order of the
key-value pairs at any given time is the order in which they were
added to the Object. Therefore, in theory, the worst-case performance
of the key lookup will increase linearly with the number of items in
the Object, but in practice you will never notice any performance
degradation.

While similar to 4D BLOBs and the venerable PictBundle plug-in,
ObjectTools has several important advantages over both:

* Objects store data as named items — finally you are freed from the
drudgery of using numeric offsets to store and retrieve data. With
Objects, you store and retrieve data as distinct items using a 255
character name.

* Objects are random access — you can store and retrieve in any order.

* Objects are modifiable — you can replace, delete or copy an
existing named item without recreating the entire Object.

* Objects can be stored in arrays — because Objects are represented
by a Longint handle, you can create arrays of Objects. This ability
makes Objects the “perfect” tool for interprocess messaging.

* Arrays within Objects are directly accessible — once stored in an
Object, you can get the size of an array and directly access any
given element, allowing you to iterate over an array within an Object.

* Objects can be embedded in Objects — you can store Objects within
Objects and directly access embedded items.

* Objects reveal their structure — ObjectTools has a full suite of
routines that let you know everything about the structure of an
Object. In fact, ObjectTools ships with a sophisticated visual Object
editor that uses these routines to create, examine and modify the
contents of any Object.

Pricing & Availability

ObjectTools for Macintosh or Windows…………………….$149.95
ObjectTools Sidegrade (Owners of Mac or Win version)………$89.95
ObjectTools Bundle (Macintosh and Windows)……………….$199.95

About Automated Solutions Group

Based in Huntington Beach, California, Automated Solutions Group
provides software development and consulting services. Founded in
1989, Automated Solutions Group develops and supports a wide variety
of software development tools to aid in the creation of custom
applications for the Macintosh and Windows platform. For more
information, please visit our home page at http://www.asgsoft.com.