Received: from FNAL.FNAL.Gov by d0sgi3.fnal.gov via ESMTP (951211.SGI.8.6.12.PATCH1042/940406.SGI)
	for <lueking@d0sgi3.fnal.gov> id JAA22400; Mon, 5 Aug 1996 09:33:04 -0500
Received: from D0SFB.FNAL.GOV ("port 1845"@d0sfb.fnal.gov)
 by FNAL.FNAL.GOV (PMDF V5.0-5 #3998) id <01I7WUDUVRLE001MCB@FNAL.FNAL.GOV> for
 lueking@FNAL.FNAL.GOV; Mon, 05 Aug 1996 09:33:02 -0600 (CST)
Date: Mon, 05 Aug 1996 09:33:01 -0500 (CDT)
From: "Oh drat these computers! They're so naughty and complicated I could just pinch
 them. (Marvin the Martian)" <LUEKING@D0SF25>
To: lueking@FNAL.GOV
Message-id: <960805093301.21a003bb@D0SF25.FNAL.GOV>
Content-transfer-encoding: 7BIT

From:	FNALD0::HAGOPIAN     "Sharon @FNALD0(708)840-2825"  1-AUG-1996 10:56:14.55
To:	D0SFT::LUEKING
CC:	
Subj:	minutes from Jul. 25 GUI meeting

Dear Lee,
  Below is a draft of the minutes from the last GUI meeting. If you have the 
text file from your discussion with Ken Stox, you may want to substitute it
for that section. Fritz Bartlett made extensive revisions to the first
section, which makes it very useful for future references.
Regards,
Sharon
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Minutes of the D0 GUI Working Group
               Meeting of July 25, 1996

 Present: Lee Lueking, Dhiman Chakroborty, Nobu Oshima, Sharon Hagopian,
          Herb Greenlee, Fritz Bartlett (first part), Scott Snyder (last part).

          S. Hagopian and N. Oshima minutes taker

1. Experience with Tcl/tk  - Fritz Bartlett

      Tcl is used as the scripting language of the Sloan Digital Sky Survey. It
    is the glue that ties together all the processing programs. All processing
    algorithms can be accessed via their Tcl interfaces. To make it useful,
    many new verbs have been added to the Tcl language. It also has an
    interface to X-Windows called Tcl/Tk which is widget-oriented and is much
    easier to use than X-Windows itself,  MOTIF, or DEC WINDOWS.

      Tcl has only 1 data type - text. This means that numerical entities such
    as integer or real numbers are kept as strings and performing calculations
    using these numbers requires that the expression text be interpreted at RUN
    time. So, Tcl is relatively slow for doing numerical calculations. Such
    calculations are better done using a C or a C++ procedure which is
    installed as a Tcl verb. It is straightforward to add such verbs to Tcl
    once one has learned the technique. It helps greatly to have an example or
    two for reference.

      Tcl has many of the good  features of BASIC. It is very good for
    debugging. The user can look at all variable, change them, restart the
    program, etc. The user can flag changes to a variable (WATCH feature). It
    gives the user a high degree of flexibility in debugging.  Basic Tcl does
    not have any debugging step throughs or break points; however, there are
    extensions that provide these capabilities.

      A Fermilab extension to Tcl allows the user to have complex objects, but
   the use of classes and methods is not as obvious as in C++. Tk is a GUI
   widget interface. It is almost independent of Tcl and may be used with
   PYTHON, C, C++ etc. The originator of Tcl is John Ousterhout
   (john.ousterhout@eng.sum.com).  

     The sky survey uses objects with a "handle" or generic identifier.  These
   have two attributes: handle type, and a pointer to a data structure. The
   user can create Tcl verbs that can deal with these objects, and Tcl can pass
   the handle to the verbs. For example, an object can be a region of the sky
   represented by a 2-D pixel map. The verb regNew can create a region and give
   it a handle. Another Tcl verb, regDel, deletes an existing region. There are
   other Tcl verbs to load a region from a FITS-format file, write a region to
   a FITS-format file, display it as a color map, create sub-regions which
   behave like regions, etc. Astronomy data is stored in a platform-independent 
   format called FITS files, which is mostly ASCII, but contains some binary
   information.

     There are a large number of Tcl support libraries such as:

       Tcl_DP - A Tcl library for distributed processing; gives access to
                TCP/IP,  remote procedure calls, client/server
       TclX   - A Tcl library for access to the operating system -- follows the
                POSIX standard.  Can handle UNIX signals (like VMS AST's)

     A common problem begining users have with Tcl is understanding when the
   substitution of a variable's string value takes place. The $ prefix operator
   triggers the substitution but the type of enclosing brackets determine when
   the actual substitution occurs. There are 3 types of brackets in Tcl [], {},
   and " ". The [] brackets cause command substitution: everything between the
   brackets is evaluated as a Tcl command and the resulting string is
   substituted for the bracket expression. The other two brackets group words
   together to form a common unit, particularly when there is imbedded white
   space. The {} brackets defer substitution by stripping off the outer level
   of brackets and substituting the resulting string for the original bracket
   expression while the "" brackets cause immediate substitution. Users
   commonly experiment with these forms interactively until they understand
   how substitution mechanism works.
    
    Disadvantage: Since Tcl is an interpretive language, there can be a long
                  start up time (5-10 sec.) for complicated procedures. 

    Advantages:   Tcl is particularly well suited for textual processing such
                  as making directory searchs, browsers, etc. It has both the
                  regular-expression and "glob" pattern search methods
                  available.

2. Lee Lueking for Ken Stox- (see handout of notes from Discussion on July 16.)
   JAVA is a simplified version of C++. It is strongly typed, which helps
   platform independence. Some good features of C++, such as iterative
   operations are missing from JAVA. It is especially goood for applications
   that require extensive display support. In general, different languages
   are good for different applications. The only real use of JAVA in a HEP
   project that we know about is the jigsaw project at CERN. (www.w3.org)
   Lee also gave us handout entitled "The Relationship Beteen Tcl/Tk and JAVA".

3. Scott Snyder - Discussion about PYTHON and JAVA
   The D0 Frames Working Group has made a partial prototype of a application
   to read/write ZEBRA files using PYTHON. JAVA is a more complicated 
   language than PYTHON. JAVA is hard to extend, and takes more effort to port
   to new platforms. JAVA has good thread implementation but needs run-time
   support. There is a SGI port of JAVA, that is not publically available.
   PYTHON can be linked with GL on the SGI to give graphics extensions.

4. Dhiman Chakraborty - PAW++ GUI
   A comparison of KUIP/Motif vs Tcl/Tk, written by Yan Zhao, Univ. Tenn.
   can be found on WWW:
   http://uther1.phy.ornl.gov/offline/code_develop/tcl_kuip/tcl_kuip.html

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  ACTION ITEMS:

 1. Lee Lueking will ask the Comp. Div. to install JAVE on D0SGI cluster.
 2. Dhiman Chakroborty will try to write a simple application in JAVA.       
 3. Nobu Oshima will give a demo of Mike Shupe's GL version of demo_viewer on
    the SGI. (Date and time to be arranged.) 

       ++++++++++++++++++++++++++++++++++++++++++++++++++++++
       +                                                    +
       +     Next GUI WG meetings: Aug. 8, Aug. 22          +
       +                                                    +
       ++++++++++++++++++++++++++++++++++++++++++++++++++++++