Received: from FNAL.FNAL.Gov by d0sgi3.fnal.gov via ESMTP (951211.SGI.8.6.12.PATCH1042/940406.SGI) for 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)" 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 + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++