# ./README

    *
    * Architecture independent README for IBM Visualization Data Explorer
    *      and IBM Visualization Data Explorer for Symmetric Multiprocessing (SMP)
    *
    * For architecture dependent information, see 'Platform-Specific
    * Considerations' in the on-line help, or see /usr/share/dx/README_"arch"
    * where arch is one of ibm6000, hp700, sun4, aviion, alphax,
    * solaris, or sgi.
    *
    *
    *

    The information contained in this file consists of hints for using the
    system, help with functions that may not be apparent, and last minute updates
    to the existing documentation.  It is advisable to review this file any time
    Data Explorer updates are applied. This README file is applicable to
    Data Explorer Version 3.1.4a. ***CHANGEME****

    If you need assistance installing or using a purchased copy of Data Explorer,
    send email to dxsupp@watson.ibm.com, or call Data Explorer Support
    at 800-435-6813.

    ========================================================================

    CONTENTS

        To go directly to an item, search for the item number beginning
        at the left margin.

         1. Installation Notes
            A. The Configure Script
            B. The DX Installation directory (DXROOT)
            C. NetLS Licensing Problems
         2. Getting Started
            A. Tutorial
            B. Sample Visual Programs and Scripts
         3. Important Features not otherwise documented
            A. Requirements on how Loops are used in Distributed Mode
            B. Problems with F1 key and on-line help
         4. Differences from version 3.1.2 of Data Explorer
            A. New startup behavior
            B. New Data Prompter
            C. AutoAxes no longer scales the object
            D. Images are now gamma corrected by default when written out
            E. Get and Set modules replaced by Local and Global versions
            F. Behavior of DXSHMEM has changed
            G. startup behavior affects DXLink applications
            H. Transmitters/Outputs, and Receivers/Inputs cannot share names
            I. Changes to ReadImage in how images are stored internally
            J. ReadImage stores images as delayed colors if possible by default
         5. Differences from version 3.1.4 of Data Explorer
            A. Streakline has an additional undocumented parameter
            B. A new module, DXLOutputNamed, has been added
            C. Fix in MapToPlane for handling of invalidity for regular data
            D. Fix in Statistics for handling of invalidity
            E. Fixes to ChangeGroupMember and ChangeGroupType
            F. Fix to Morph when large filter specified
            G. Fix for SelectorList interactor
            H. Fix to allow dx.h to be used in C++ program
            I. Fix for gamma correction in saved miff images
            J. Fix for ReadImage on Solaris
            K. "All" category has been moved
            L. OpenGL and Solaris
         6. User Interface Notes
            A. Vectors can be float or integer vectors
            B. Data-Driven Interactors
            C. Misleading warning can appear when writing out PostScript images
         7. Running Data Explorer
            A. Specifying the Host Name for Remote Execution
            B. Environment Variables in Script Mode for Remote Execution
            C. Specifying Host Name for Distributed Execution
            D. Distributed Execution when a Remote Host is Unavailable
            E. Distributed Execution using Data Explorer SMP
            F. Possible problem runing Data Explorer remotely
         8. System Environment
            A. Default Memory Size
            B. Paging Space
            C. Per Process Limits
         9. Notes on the Hardware Rendering Option
            A. Rendering shaded surfaces requires z-buffer capabilities
            B. Fast mouse button transitions may go unnoticed
            C. Arrow keys partially disabled during navigation
            D. Button-down interaction disables visual program changes
            E. Remote OpenGL
        10. Import/Export
            A. The External Data Format
        11. Module Notes
            A. Map Module
            B. Grid Module
            C. The Display module and the screen-saver
            D. Slice Module limitation
            E. Transformed Group Members
            F. Print Module
            G. Morph and Filter Modules
            H. Error in Documentation for SuperviseWindow
            I. Error in Documentation for ManageImageWindow
            J. New parameter to Streakline, undocumented
            K. New module, DXLOutputNamed, undocumented
            L. Parameter option for CategoryStatistics, undocumented
        12. X Colormap Interaction
            A. 24 Bit Root Windows
        13. Scripting Language
        14. Hints
            A. All of the Execute Options are Greyed Out
            B. Faces/Loops/Edges
        15. Notes on On-Line Help
        16. Adding Modules
            A. Building a Custom Executive
            B. Outboard Modules
            C. Modules written for Version 1
            D. Asynchronous Modules
            E. Error in documentation for starting sample modules
        17. OSF/Motif Warning Messages

    ========================================================================

    1. Installation Notes
      For a complete installation of Data Explorer, please use the
    installation instructions provided with the Data Explorer media.
    However, if you simply wish to install Data Explorer on a new host,
    then you need to do the following:
      - duplicate (e.g. copy, NFS mount) the /usr/share/dx  directory on the new host
      - use the Configure script to configure the new host
      Note that you will need a license to run on the new host. If you
    have a floating license and the new host is on the same network as the
    license server, then the above procedure will work. However if you have
    a node-locked license, you will need to obtain a license for the new
    host.
      Note that it is important that you be able to start Data Explorer
    simply by typing "dx". That is, you should not need to specify any
    path name to start Data Explorer. If you cannot start Data Explorer
    simply by typing "dx", the User Interface will not be able to start the executive portion of Data Explorer.

    A. The Configure Script

    The .../dx/bin/Configure script is run as follows,

            Configure install

    and/or

            Configure deinstall

    To see a list of options use the following,

            Configure -help

    It installs/deinstalls (mostly) soft links  in standard places (i.e.
    /usr/local/bin, /usr/local/lib...) that point back to the DX
    installation tree.  Generally, Configure must be run on each
    workstation from which you expect to run Data Explorer.

    If you have problems with your installation, it may be because the file
    systems where the soft links are placed are NFS mounted and usually
    root is not allowed to write across the NFS mount.  Run Configure with
    the '-check' option to determine the links that are required on your system.

    B. The DX Installation Directory (DXROOT)

    Data Explorer is installed as a single directory tree that is referred
    to as the DX root directory.  As part of configuring Data Explorer,
    links are placed in the public filesystem that reference files within
    the DX root directory.  The default DX root directory is /usr/share/dx.
    If the root directory is moved after installation, Data Explorer should
    be reconfigured to use the new root directory with the following:

            Configure -dxroot <new directory>

    In a networked environment, it is most convenient for users if all
    workstations have Data Explorer available through the same root
    directory.  This makes it easier to run the User Interface on one
    machine and the server on another.  However, if in this situation the
    two machines do not use the same root directory, the -dxroot option
    should be used when starting the remote server from within the User
    Interface.

    C. NetLS Licensing Problems
    1) If you receive the following error after receiving your permanent NetLS
       licensing key:
            Starting DX user interface
            Data Explorer trial password file found
            You are running an expired trial version of Data Explorer
       - Verify that:
          - The environment variables DXTRIALKEY and DXTRIALKEYFILE are not set.
          - The file 'expiration' has been deleted from the dx install directory.
    2) If you receive the following error:
    Starting DX user interface
            IBM Visualization Data Explorer : No servers available for this
            vendor (network license server/library) [1d020006]
       - Verify that:
          - the NetLS key been placed in the appropriate directory according
            to the directions in the 'IBM Visualization Data Explorer Install-
            ation and Configuration' document.
          - the key generation report accurately reflects your DataExplorer
            configuration.  Review the 'Product License Information' (key
            generation report from KeyRegs) and verify that the information
            it contains matches the output of /usr/share/dx/bin/NodeID.
             - 'target' should equal the 'PREFERRED NetLS Target ID'
             - 'version' should equal 'Version'
             - 'license type' should equal 'License Usage'
          - If there are inconsistencies in any of the above, a new key
            that reflects the corrected information needs to be requested.
        - For further diagnostic information, set the environment variable
          DXTRACENETLS to 1.  This prints information about what type of license
          DX is requesting and what type of licenses it finds.  For very detailed
          diagnostic information at the socket/rpc level (useful for debugging
          concurrent licenses) set the DXTRACENETLS variable to the value 2.
    3) If root is the only user who can run Data Explorer, and all other users
       receive the following error:
            IBM Visualization Data Explorer : License not found in database
            (network license server/server)
        - Ensure that /dev/lan0 and /dev/ls_targetid are writeable by everyone.

    2. Getting Started
    A. Tutorial
       A tutorial is provided to help you get started using Data Explorer.
    The tutorial can be found in the Data Explorer Quick Start Guide.
    It can also be found on-line, either by
    typing
       dx -tutor
    choosing the "Tutorial" option of the Help menu of any
       Data Explorer window
    or from the "Tutorial" button of the Data Explorer startup window

    B. Sample Visual Programs and Scripts
    In the directory /usr/share/dx/samples/programs you will find a number
    of example visual programs which illustrate various aspects of Data Explorer.
    Each sample visual program has a comment associated with it which describes
    how to use the program. You can access the comment either from the Open
    File dialog (use the "Comments" button), or, once the Visual Program is
    opened, from the "Help on Visual Program" option in the Help menu.

    The samples are easily accessed from the "Samples" button of the Data
    Explorer startup window.

    There are a number of subdirectories in /usr/share/dx/samples/programs which
    contain subsets of the sample visual programs organized by topic. So, for
    example, in /usr/share/dx/samples/programs/2D_DATA, you will find a number of
    sample visual programs which visualize two dimensional data. When the
    filter for the Open dialog box of the Visual Program Editor is set to
    the directory /usr/share/dx/samples/programs, these subdirectories will
    appear on the left hand side of the dialog, under "Directories". Simply
    click on one and then press the Filter button to see the example programs
    in that directory.

    In the directory /usr/share/dx/samples/macros you will find a number of
    useful macros.

    In the directory /usr/share/dx/samples/tutorial you will find a number of
    example visual programs which are designed to be used with the Data Explorer
    tutorial.

    In the directory /usr/share/dx/samples/scripts you will find a number of
    example script files which illustrate the use of each module in script mode.

    In the directory /usr/share/dx/samples/program_guide you will find a number of
    example .c files which will help you in writing your own modules. These
    samples are designed to be used with the Programmer's Reference.

    In the directory /usr/share/dx/samples/dxlink you will find a number of
    example programs which illustrate the use of DXLink.

    In the directory /usr/share/dx/samples/callmodule you will find a number of
    example programs which illustrate the use of the DXCallModule interface to
    call Data Explorer modules from an external program.

    In the directory /usr/share/dx/samples/user you will find a number of
    example programs which illustrate how to compile your own module as
    runtime-loadable, inboard, or outboard.

    In the directory /usr/share/dx/samples/outboard you will find a number of
    example outboard modules.

    In the directory /usr/share/dx/samples/supervise you will find examples of
    custom user interactors for use with SuperviseWindow and SuperviseState

    3. Important Features not otherwise documented
    A. Requirements on how Loops are used in Distributed Mode
    There are limitations on how you can use looping in distributed mode.
    The entire contents of a loop must run on the same machine. This means
    that if you want to distribute a loop to a machine other than
    the master, you *must* put that loop in a macro, and place the macro
    in an execution group assigned to the other machine.

    B. Problems with F1 key and on-line help
    If the F1 key does not work for obtaining help-on-context in the User
    Interface, you may need to put the following line in your .motifbind
    file in your home directory:
    osfHelp                         :<Key>F1

    4. Differences from version 3.1.2 of Data Explorer
    A. New startup behavior
    Simply typing the command "dx" will start the Data Explorer
    startup window, which allows you to perform a number of different
    tasks, such as running a sample program, starting the data prompter,
    starting the tutorial, etc. To simply start the Data Explorer
    visual program editor (the previous default behavior) type dx -edit.

    B. New Data Prompter
    The Data Prompter now supports formats other than the General Array
    format, and provides a set of general purpose programs to reduce the
    "time to first picture"

    C. AutoAxes no longer scales the object
    In releases of Data Explorer prior to 3.1.4, AutoAxes reduced the
    size of the object to 85% of it's original size. This scaling
    has been removed

    D. Images are now gamma corrected by default when written out
    A gamma correction factor of 2 is applied to images by default
    when they are written out. Note that if you are writing out images
    for later use within Data Explorer, you should write out images
    with gamma=1 (see WriteImage, or the SaveImage dialog box) so that
    they are not doubly gamma-corrected when displayed.

    E. Get and Set modules replaced by Local and Global versions
    The Get and Set modules have been replaced by GetLocal and GetGlobal
    and SetLocal and SetGlobal. Visual programs which use Get and Set
    can still be run; Data Explorer will automatically use GetGlobal
    and SetGlobal instead. However, performance advantages may be possible
    by using GetLocal and SetLocal instead; please see the manual pages
    for these modules in the Data Explorer User Reference. The Visual
    Program Editor will help you change your networks; see the Edit
    menu Assign Get/Set scope option.

    F. Behavior of DXSHMEM has changed
    In versions of Data Explorer prior to 3.1.4, DXSHMEM, if set to
    anything, would force shared memory to be used. In version 3.1.4,
    DXSHMEM must be set to anything other than -1 for shared
    memory to be used; if set to -1, then the data segment will be
    extended, for architectures for which this is permissible.

    G. startup behavior affects DXLink applications
    Because the command "dx" now starts the Data Explorer startup window,
    DXLink applications will need to use either -image or -edit in
    the DXLStartDX command string.

    H. Transmitters/Outputs, and Receivers/Inputs cannot share names
    Version 3.1.4 prevents Transmitter and Output nodes, and Receiver and
    Input nodes from sharing names.  These name collisions were permitted
    in earlier versions and could lead to incorrect code generation.  Now
    an offending node will be renamed automatically and the user notified.

    I. Changes to ReadImage in how images are stored internally
    By default, all images read in by ReadImage are stored internally
    in bytes, rather than floating point. This will only affect visual
    programs in which you are manipulating colors and expect them to
    be floating point colors. You can use the "colortype" parameter to
    ReadImage or the DXPIXELTYPE environment variable to change the
    default behavior. See the ReadImage manual page.

    J. ReadImage stores images as delayed colors if possible by default
    For images in delayed color format (gif, some tiff and some miff),
    ReadImage will by default store the image with delayed colors. You
    can override this default behavior by using the "delayed" parameter
    to ReadImage or the DXDELAYEDCOLORS environment variable. See the
    ReadImage manual page.

    5. Differences from version 3.1.4 of Data Explorer

    A. Streakline has an additional undocumented parameter
    See 11 J below.

    B. A new module, DXLOutputNamed, has been added
    See 11 K below.

    C. Fix in MapToPlane for handling of invalidity for regular data
    In certain situations, MapToPlane was incorrectly handling regular/regular
    data which contained invalid data. This has been fixed.

    D. Fix in Statistics for handling of invalidity
    In certain unusual situations, Statistics was not handling invalid
    data correctly. This has been fixed.

    E. Fixes to ChangeGroupMember and ChangeGroupType
    ChangeGroupMember was sometimes incorrectly inserting/replacing
    objects into groups. ChangeGroupType was not correctly maintaining
    attributes at the top level object when changing the group type.
    These problems have been fixed.

    F. Fix to Morph when large filter specified
    If an especially large filter was specified to Morph, Morph could
    segfault. This has been fixed.

    G. Fix for SelectorList interactor
    Under certain circumstances the UI could segfault if particular
    entries were made in the SetAttributes dialog of the SelectorList
    interactor. This has been fixed.

    H. Fix to allow dx.h to be used in C++ program
    Necessary "extern C" lines added to certain .h files to allow
    dx.h to be used in C++ program

    I. Fix for gamma correction in saved miff images
    Images saved in miff format now correctly use specified gamma correction.

    J. Fix for ReadImage on Solaris
    There was a bug in reading gif format images on solaris. This has
    been fixed.

    K. "All" category has been moved
    The "All" category in the Visual Program Editor has been moved from the
    end of the list of categories to the beginning. This is to ensure that
    as more categories of modules are added (by Data Explorer development
    or by users), the "All" category always remains easily visible for
    new users.

    L. OpenGL and Solaris
    If you are interested in using OpenGL on the Solaris architecture,
    please contact Data Explorer support: dxsupp@watson.ibm.com or
    1-800-435-6813 (US and Canada), or 914-784-5142.

    6. User Interface Notes

    A. Vectors can be float or integer vectors
    If you specify integral values for vector, either using a vector interactor
    or using a configuration dialog, an integer vector will be produced.
    Otherwise, the vector will be a floating point vector.

    B. Data-Driven Interactors
    Changing an interactor from data-driven to non-data-driven, and
    then back to data-driven may not result in the proper updating and execution
    of the visual program. After switching back to data-driven mode,
    you should reset the server (using "Reset Server" in the Connection menu)
    to enable proper execution of the visual program.

    C. Misleading warning can appear when writing out PostScript images
    Occasionally you may see a warning when writing out PostScript images
    that the image will not fit on the page, even though the page size
    as specified is correct. Ignore the warning. Apparently this only
    occurs if you have modified the PPI setting in the Save Image or
    Print Image dialog. Note that it is not typically necessary to set
    this field; it is typically better to just set the overall resolution
    of the image using the Input Image size field. Note that it is NOT
    necessary to set PPI to match the DPI of the printer.

    7. Running Data Explorer

    A. Specifying the Host Name for Remote Execution
    Be sure to specify the host name of the remote host as what is returned
    by "uname -n" on the remote host.  This ensures that Data Explorer
    finds the host correctly.

    B. Environment Variables in Script Mode for Remote Execution
    When running Data Explorer remotely in script mode using the command "dx
    -host hostname -script", local environment variables, such as DISPLAY,
    are not passed to the remote host.

    C. Specifying Host Name for Distributed Execution
    Distributed execution does not handle network addresses like 9.2.37.10. Specify
    the host name as what is returned by "uname -n" on the machine
    you wish to run on.

    D. Distributed Execution when a Remote Host is Unavailable
    If, from the Execution Group Assignment menu, you are trying to
    connect to a remote host and the connection times out, you may
    need to reread the visual program into the user interface in
    order to retry the connection. The connection may time
    out if, for example, the remote machine was down when you tried
    to connect, or you did not have your .rhosts file set up
    properly to allow remote shells to be executed.

    However, if you make any changes to the Execution Group
    Assignment menu, then the user interface will retry the
    connections. In this case, it is not necessary to reread the
    visual program.

    E. Distributed Execution using Data Explorer SMP
    When using both distributed execution and Data Explorer SMP, it is
    recommended that a single processor host be connected to by the
    User Interface, i.e. be used as the master.

    F. If you start the user interface on a machine with DX installed for a
    given architecture or version of DX, and then try to start an executive
    using the Start Server dialog box on a remote system that does not have
    DX installed in the same place as the local machine, then the executive
    will not be able to start on the remote machine.  This is because
    bin_$arch (where $arch is the architecture of the system the user
    interface is running on) is not present remotely.  This problem
    is much more subtle when you are starting up your own exec on
    the remote system.  The exec may start, but will not be able to
    execute bin_$arch/dxshadow.

    8. System Environment

    A. Default Memory Size
    Except where noted in the architecture specific README, by default,
    Data Explorer will be allowed to grow to use all but 8 megabytes of
    the physical memory when there is less than 64 megabytes of physical memory.
    If there is more than 64 megabytes of physical memory, then Data Explorer
    will, by default, be allowed to grow to 7/8 of the amount of physical
    memory. Users may wish to alter this default amount of memory by using the
    "-memory" parameter to the dx command, or the "Memory" field of the Connect
    to Server--Options dialog.

    B. Paging Space
    Since it is possible for DX to use a large amount of virtual memory,
    users should configure systems with paging space at least two or three times
    the total physical memory in their system. If you do not have enough
    paging space, the operating system may kill Data Explorer (or other
    processes), sometimes without warning, depending on the architecture.
    Run /etc/lsps -a to list all paging space.  If you have N megabytes of
    physical memory, (on most architectures) the first N megabytes of page space
    are reserved to back that, so the available page space is the total listed
    with lsps minus the physical you have.

    C. Per Process Limits
    Some systems may enforce per process limits on such things as
    data segment size, stack size and so forth.  These may need to be
    adjusted to run Data Explorer with large amounts of memory to avoid
    paging.

    9. Notes on the Hardware Rendering Option
    The behavior of Data Explorer differs in a few ways when using the
    hardware rendering option.

    A. Hardware rendering requires z-buffer capabilities. If hardware
    rendering is attempted without a z-buffer card, a warning will
    be given and the results are unpredictable unless otherwise specified
    in the architecture specific README files.

    B. Fast mouse button transitions may go unnoticed
    When mouse button interactions are used in the image window to
    perform rotate, navigate or roam, the image should be allowed to update
    before the next mouse interaction is performed.  Failure to do so may
    cause the interaction to be ignored. This also means that when using
    direct interaction in hardware rendering mode with `Execute-on-Change'
    enabled, a change in the view (with mouse button depressed) is not
    accepted until the current image is rendered.  Thus, when rotating
    complex objects cursor movements must be commensurate with rendering speed.
    Rendering approximation can be used to increase the effective rendering speed.

    C. Arrow keys partially disabled during navigation
    During navigate mode, the use of the arrow keys to change the
    'Motion' and 'Pivot' speeds is ignored until the mouse button is
    released.

    D. Button-down interaction disables visual program changes
    When using hardware rendering with direct interactors in execute-on-change
    mode, updates are ignored until the mouse button is released. This
    is noticeable when rotating a scene which contains axes from AutoAxes.
    The axes in the scene will not reflect the new camera position until the
    mouse button is released and the AutoAxes module is allowed to re-run.

    E. Remote OpenGL
    Remote OpenGL can be run from an architecture on which Data Explorer
    supports OpenGL (ibm6000, alpha, sgi) to another OpenGL capable
    architecture (ibm6000, alpha, sgi), assuming the following conditions
    are met:
      The machine that the Data Explorer executive is running on must
      have OpenGL support installed (i.e., /usr/lib/libGL.a is installed)

      The machine the executive is displaying to must have OpenGL
      suport installed (i.e., /usr/lib/libGL.a is installed) and the
      X server must be configured to support OpenGL (i.e., the X server
      must be started with the GLX extension).

    10. Import/Export

    A. The External Data Format
    When using the Data Explorer external data format as described in
    the User Guide,  you must define an object before you
    reference that object.  For example, you must define an array before
    you define the field in which the array will be placed, and you must
    define a field before you define the group in which the field will
    be placed.

    11. Module Notes

    A. Map Module
    Map invalidates points outside of the domain of the map.  Since Map is
    also called internally by Color, points with corresponding data values
    outside of the range of the colormap will be marked invalid.  Similarly, when
    an explicit gradient field is passed to the Isosurface module, the
    gradient field must completely encompass the resulting isosurface.

    B. Grid Module
    Grid method "ellipse" assumes that the two given vectors in "shape"
    are orthogonal.

    C. The Display module and the screen-saver
    If the screen-saver is on, Data Explorer will wait to display an image.

    D. Slice Module limitation
    The Slice module takes a slice from a grid, reducing the grid's
    dimensionality by 1. This is in contrast to the Slab module which takes
    a slice without reducing the dimensionality.

    The Slice module will produce correct results only when the data form
    an orthogonal grid with the first coordinate (x) varying the slowest,
    and the last coordinate (z in a three-dimensional coordinate system)
    varying the fastest.  For regular grids, the delta vectors must be
                          a 0 0
                          0 b 0
                          0 0 c
    for any a, b, and c. For data which do not fit this description, you
    can use the Slab module instead to take a subset of the data, and then
    use Mark(object,"positions"), Compute, and Unmark(object,"positions")
    to remove the desired dimension from the object.

    E. Transformed Group Members
    It is recommended not to apply transforms to individual MultiGrid or Series
    group members.  In limited cases, this can cause abnormal termination.

    F. Print Module
    All values are printed in decimal format except for byte array data
    which is printed in hexadecimal.

    G. Morph and Filter Modules
    Morph and Filter replicate the boundary cells into the overlap
    region necessary to apply the filter.

    H. Error in Documentation for SuperviseWindow
    The manual page for SuperviseWindow indicates that the events output
    is an array of integer 4-vectors. It is in fact an array of
    integer 8-vectors. The first 4 integers in the 8-vector
    are as discussed in the documentation; the remaining 4 integers
    in the 8-vector are unused, and are reserved for future use.

    I. Error in Documentation for SuperviseWindow
    The manual page for ManageImageWindow says that you can pass
    the "window" (e.g. the "window" output of the Image tool)
    of the window to be managed to the "name" parameter
    of ManageImageWindow, if "how" is specified as "window". This is
    incorrect. "how" must be either "title" or "label".

    J. New parameter to Streakline, undocumented
    An undocumented parameter has been added to the Streakline module.
    Its name is "hold", and it defaults to 0 (false). If "hold" is set
    to 1 (true),  then Streakline uses the starting information (i.e.
    the starting points and times) ONLY for frame=0. Streakline
    will continue to use the values passed in for frame=0 for all
    other frames. This simplifies the use of Streakline for the
    case when vector fields are passed in one at a time, rather than
    as a series group all at once; you can be sure that each frame will
    use the same starting points and times, even if the values passed
    in to those parameters happen to change due to other changes in the
    visual program as the sequencer runs.

    K. New module, DXLOutputNamed, undocumented
    A new module has been added which is not included in the documentation.
    Its name is DXLOutputNamed, and it differs from DXLOutput in three
    ways. The first difference is that the name associated with the variable to be
    passed to a DXLink application can be specified via a direct
    input to the module, rather than by using the Notation field of
    the configuration dialog box as with DXLOutput. The second difference
    is that DXLOutputNamed can be placed inside a macro, while DXLOutput can not.
    The third difference is that the User Interface
    will not store the last value sent into/from DXLOutputNamed in the
    .net file, as it does with DXLOutput. This means that you cannot
    run the .net file without a DXLink connection and expect to see the
    same result, which you could if you were using DXLOutput.

    L. Parameter option for CategoryStatistics, undocumented
    In addition to the documented options for the "operation" parameter,
    "accum" is a valid option. The meanings of the various options are as
    follows: "count" determines the number of items in each
    category. "mean" determines the mean of the data values associated with
    each category. "sd" determines the standard deviation of the data
    values associated with each category. "var" determines the
    variance of the data values associated with each category. "min"
    and "max" determine the minimum and maximum respectively of the
    data values associated with each category. "accum" determines the
    accumulated value of all the data values associated with each
    category.

    12. X Colormap Interaction

    A. 24 Bit Root Windows
    By default, Data Explorer creates Image and Display windows of the same
    depth as the root window, and the depth of the window is stored when
    the visual program is saved.  Because many visual programs, including
    the supplied samples, are stored with 8 bit windows you may need to use
    the mouse to point to the image in order to see the correct colors.
    You can avoid this by using the Image Window Options menu to choose
    "Image Depth" and to select 24 bits.

    13. Scripting Language Lists cannot contain variables.
    All items in lists must be constants.

    14. Hints

    A. All of the Execute Options are Greyed Out
    This means that you are not connected to a Data Explorer executive.
    Go to the Connection menu on either the image window or the editor
    window.  Choose "Start Server...".  Type in the name of the machine
    on which you are running the executive software, if it's not already there.
    Press "Ok".

    B. Faces/Loops/Edges
    Some tools do not support faces, loops, and edges data. If you wish to use
    more tools on this type of data, then convert it to triangles using Refine.

    15. Notes on On-Line Help
    Figures have been omitted from On-Line Help.  Users are directed to the
    hard copy manual at appropriate points in the On-Line Help. Alternatively,
    you can use the html documentation available in /usr/share/dx/html.

    16. Adding Modules
    A. Building a Custom Executive
    The Makefiles in /usr/share/dx/samples/user provides an example of how to
    build a customized executive. Compiling a user defined module will
    require an ANSI compliant C compiler which can support function prototypes
    and the ellipsis notation (...) used in function declarations.

    B. Outboard Modules
    All outboard modules should link with the libraries "-lDXlite -lm".
    A number of examples of outboard modules, along with makefiles for
    each architecture and a README with more detailed information about
    outboard modules may be found in the directory
      /usr/share/dx/samples/outboard.

    C. Modules written for Version 1
    In order to compile a module written for Version 1 you need to include
     #include <dx/rel_1_bc.h>
    in your module.

    D. Asynchronous Modules
    By default, asynchronous modules by default are given a
    CACHE_LAST attribute for outputs. This means that only the last
    output of the module is cached. You can override this by
    specifying CACHE_NONE (this is done either in the configuration
    dialog box for the module or by using the Edit menu Output
    Cacheability option). If you set the output to
    CACHE_ALL, it will be reset to CACHE_LAST, since there is
    no value to specifying CACHE_ALL for an asynchronous module.
    It would be of value for users to also set the cacheability
    of all outputs of modules downstream of the asynchronous module
    to CACHE_LAST or CACHE_NONE.

    E. Error in documentation for starting sample modules
    The documentation tells you to start your custom module using
    a command such as
         dx -mdf ./showpick.mdf -exec ./dxexec
    Because the default command dx now starts the startup ui, you
    must instead include -edit, -menubar, or -image in the startup line,
    for example
         dx -edit -mdf ./showpick.mdf -exec ./dxexec

    17. OSF/Motif Warning Messages
    There are 3 groups of warning messages a user might see when Data Explorer
    starts.  Many of them appear when starting any OSF/Motif application.

    G R O U P    I:
    These messages will appear only from Data Explorer.  No other
    OSF/Motif program will make these.

    XtWarning:
        Name: vpeDeleteOption
        Class: XmPushButton
        Illegal mnemonic character;  Could not convert X KEYSYM to a keycode

    XtWarning:
        Name: endExecutionOption
        Class: XmPushButton
        Illegal mnemonic character;  Could not convert X KEYSYM to a keycode

    S O L U T I O N:
    The Edit/Delete and Execute/End Execution options on the menubar in

    Data Explorer require Delete and End keys respectively.
    After you make the following modifications to $HOME/.motifbind,
    restart your window manager if you're using mwm (or one of its cousins
    like vuewm or 4Dwm), otherwise run xmbind.

    For vpeDeleteOption add a line like this:
    osfDelete                :<Key>Delete

    For endExecutionOption add a line like this:
    osfEndLine               :<Key>End
    The 2 example lines above work for most machines although they
    depend on the configuration of the machine at which you sit.
    For hp700 workstations running hpux version 8 substitute
    DeleteChar for Delete. For hp700 workstations running hpux version 9
    substitute hpDeleteChar for Delete.

    G R O U P    II:
    These messages are not specific to Data Explorer.
    Those in Part A are common when displaying on an hp700 running  hpux
    version 9 or later.  Those in Part B usually come from a system running
    hpux 8 or earlier.  You would also see messages like these if you had
    a typographical error in $HOME/.motifbind.
    Part A:
    Warning: Cannot convert string "<Key>InsertChar" to type VirtualBinding
    Warning: Cannot convert string "<Key>DeleteChar" to type VirtualBinding

    Part B:
    Warning: Cannot convert string "<Key>hpInsertChar" to type VirtualBinding
    Warning: Cannot convert string "<Key>hpDeleteChar" to type VirtualBinding

    S O L U T I O N:

    Examine /usr/lib/X11/XKeysymDB on the machine
    on which you are executing (which may not be the machine at which you
    are sitting).  The key name in the error message is not in that file.
    Either modify the file, or find a substitute key to use in your
    $HOME/.motifbind.

    G R O U P    III:
    These messages are not specific to Data Explorer.  They will appear
    when running any OSF/Motif program.
    XtWarning: translation table syntax error: Unknown keysym name: osfActivate
    XtWarning: ... found while parsing '<Key>osfActivate:ManagerParentActivate()'
    XtWarning: translation table syntax error: Unknown keysym name: osfCancel
    XtWarning: ... found while parsing '<Key>osfCancel:ManagerParentCancel()'
    XtWarning: translation table syntax error: Unknown keysym name: osfSelect
    XtWarning: ... found while parsing '<Key>osfSelect:ManagerGadgetSelect()'

    S O L U T I O N:
    You must have a recent version of the file /usr/lib/X11/XKeysymDB in
    order to run OSF/Motif programs.  Most manufacturers provide one
    but older versions of SunOS with OpenWindows, machines
    with custom installations, and possibly a few other workstations
    will not have one.  With some releases of the X Window System it
    is acceptable to set the environment variable XKEYSYMDB to the
    path name of a valid XKeysymDB file.  (There is no way to tell
    if yours is among them other than to try it.)

    You could also add the following entries to your /usr/lib/X11/XKeysymDB:
    osfCopy                 :1004FF02
    osfCut                  :1004FF03
    osfPaste                :1004FF04
    osfBackTab              :1004FF07
    osfBackSpace            :1004FF08
    osfClear                :1004FF0B
    osfEscape               :1004FF1B
    osfAddMode              :1004FF31
    osfPrimaryPaste         :1004FF32
    osfQuickPaste           :1004FF33
    osfPageLeft             :1004FF40
    osfPageUp               :1004FF41
    osfPageDown             :1004FF42
    osfPageRight            :1004FF43
    osfActivate             :1004FF44
    osfMenuBar              :1004FF45
    osfLeft                 :1004FF51
    osfUp                   :1004FF52
    osfRight                :1004FF53
    osfDown                 :1004FF54
    osfEndLine              :1004FF57
    osfBeginLine            :1004FF58
    osfEndData              :1004FF59
    osfBeginData            :1004FF5A
    osfPrevMenu             :1004FF5B
    osfNextMenu             :1004FF5C
    osfPrevField            :1004FF5D
    osfNextField            :1004FF5E
    osfSelect               :1004FF60
    osfInsert               :1004FF63
    osfUndo                 :1004FF65
    osfMenu                 :1004FF67
    osfCancel               :1004FF69
    osfHelp                 :1004FF6A
    osfSelectAll            :1004FF71
    osfDeselectAll          :1004FF72
    osfReselect             :1004FF73
    osfExtend               :1004FF74
    osfRestore              :1004FF78
    osfDelete               :1004FFFF

    ----------------------------------------------------------------------

    The following trademarks apply to this information:

    IBM is a registered trademark of International Business Machines Corporation.
    IBM Visualization Data Explorer is a trademark of International
        Business Machines Corporation.
    Motif is a trademark of Open Software Foundation, Inc.
    OSF and OSF/Motif are trademarks of Open Software Foundation, Inc.
    Sun is a registered trademark of Sun Microsystems, Inc.
    HP is a registered trademark of Hewlett-Packard Company.
    NFS is a registered trademark of Sun Microsystems, Inc.
    X Window System is a trademark of Massachusetts Institute of Technology.
    DGC is a trademark of the Data General Corporation.
    DEC 3000 APX is a registered trademark of Digital Equipment Corp.