FOR IMMEDIATE RELEASE

Automated Solutions Group Announces the Release of ObjectTools v1.5.1

Huntington Beach, CA – January 18, 2001: Automated Solutions Group today
announced the release of ObjectTools v1.5.1 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.

New Features in v1.5.1
* Fixed bug on error handler routine
* Updated documentation to include information about OT ObjectToBLOB

Pricing & Availability

ObjectTools for Macintosh or
Windows……………………………….$149.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.