Archive-name: tcl-commercial-faq
Version: 2.2
Last-modified: May 24, 1993
Posted:	Around the 1st of each month

Commercial Uses of Tcl/Tk

This file contains brief descriptions of how Tcl/Tk is being used in commercial products. If you have questions about specific postings, contact the person who made the submission directly. The purpose of this listing is to show that Tcl/Tk is being used in commercial products and to discuss that use.

Index

0. Rumors and other miscellaneous...

P1. Use of TCL/TK for Computational Fluid Dynamics Applications

P2. CASE Tool Code Generation

P3. CPU's Supervisory Control And Data Aquisition Sytem (SCADA)

P4. NeoSoft Tcl

P5. Other NeoSoft products

P6. SYSTEM 9 Geographic Information System (TM)

P7. Cyberterm - a Networked 3D OS for PCs

P8. NANNY - CPU-time balancer for UNIX compute servers

P9. KIS - Kernel Information System

T1. Training by AT&T: "Object Oriented Programming with [incr Tcl]"

T2. Training by Computerized Processes Unlimited: "Introduction to Programming in Tcl/Tk"

T3. Training by Computerized Processes Unlimited: "Building Graphical User Interfaces in Tk"

T4. Training by Computerized Processes Unlimited: "Extending Tcl via C"

T5. Training by NeoSoft: "Tcl and Tk: An Applications-Based Approach"

Each posting is prefaced by a line with dashes so you can search to the beginning of the next message.

Please submit further postings to gwl@cpu.com

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

ENTRY 0 - Rumors and other miscellaneous...

Several companies are using Tcl or Tcl/Tk in their products but do not advertise that fact.

It is rumored that the following computer vendors may be using tlc/tk in a future version of some of their management tools: SCO, Digital, Cray.

It was stated at the Spring 1994 DECUS Symposium in New Orleans by a speaker from OSF that the management tools "DCE Shell" that is part of DCE Version 2.0 is an extended tcl/tk shell. The speaker did not know if dynamic loading was present nor what extensions are present.

In addition, numerous companies are using Tcl to automate regression testing. In essence, they are using the framework developed by folks at Sun that is used to test the Tcl implementation. Take a look at the files in tcl/tests.

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

ENTRY P1. - Use of TCL/TK for Computational Fluid Dynamics Applications

Usage: Computational Fluid Dynamics Applications
Company: ICEM CFD Engineering, Berkeley CA
Contact: Wayne A. Christopher
Email: wayne@pmac.com
We have been using Tcl/Tk extensively since 1992 for front-ends to computational fluid dynamics (CFD) systems. We currently have two main products. The first is ICEM CFD, a general purpose front-end that includes a CAD system, several mesh generators, and interfaces to numerous flow solvers. The second is ICEPAK, which is specific to electronic cooling simulation.

In ICEM CFD, Tcl/Tk is used for several components. The first is a "manager", or a graphical shell that is written entirely as a wish script and ties together over 100 component programs, manages the files they use, and gives the overall system a more unified look and feel. The second is Leo, which is a grid visualizer that is partly written in Tcl and partly in C++, and allows the user to examine and modify computational meshes that are potentially very large. The third is a CAD tool, P-Cube, which is a large program mostly written in Fortran, that has some rather tricky qualities that made retrofitting a Tcl/Tk interface an interesting task, especially in the area of event loops. Finally, several mesh generation tools have separate Tcl/Tk interfaces that run as pure wish scripts and communicate with the "real" application using pipes.

ICEPAK, which was developed in collaboration with Fluid Dynamics International, was designed to be a very application specific tool. It recognises electronic cabinet components such as cooling fans and printed circult boards and handles each of them specially. There are three components to this system: the front-end/postprocessor, the automatic hexahedral mesh generator, and the solver. Only the first was written with Tcl/Tk. The code specific to the front-end includes about 35K lines of Tcl and 35K lines of C++, and some rather large Fortran components which, fortunately, another group maintains.

Our experience with Tcl/Tk in the CFD environment has been very positive. The key to using Tcl with large data sets is to ensure that only data that remains small is manipulated at the Tcl level, and that all other data is passed around using handles or pointers to the lower level. Industry acceptance has been very good, both due to the ease of fast modification and customization and also to the high quality of the interfaces that can be created. It also helps that most tools previously available for mechanical engineers have had rather unfriendly GUI's.

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

ENTRY P2. - CASE Tool Code Generation

Usage: CASE Tool Code Generation
Company: Westmount Technology B.V., Holland
Contact: Eko Bousema, Tineke Keuzenkamp
Email: ekbo@wmt.nl
US Subsidiairy: Westmount Inc., Arlington, VA 22209
Tel. (+1) 703 875 8799
Fax. (+1) 703 527 5709

Products:

Westmount I-CASE Yourdon

Westmount I-CASE Yourdon is an Open Integrated Computer Aided Software Engineering (CASE) tool (based on X and OSF/Motif) running on Unix and VMS. This product supports the complete software life cycle. It supports Yourdon SA/SD. All Information is stored in a central repository (Ingres, Informix, Oracle or Sybase). Code is generated Ingres, Informix, Oracle and C.

Westmount I-CASE Ward/Mellor

Westmount I-CASE Ward/Mellor is an Open Integrated Computer Aided Software Engineering (CASE) tool (based on X and OSF/Motif) for developers of technical/real time systems running on Unix and VMS. This product supports the complete software life cycle. It supports the Ward/Mellor, Yourdon and Constantine methods. All information is stored in a central open repository (Ingres, Informix, Oracle or Sybase). Code is generated for C applications.

Westmount I-CASE SSADM

Westmount I-CASE SSADM is an Open Integrated Computer Aided Software Engineering (CASE) tool (based on X and OSF/Motif) for SSADM Developers running on Unix. This product supports all 5 modules of the SSADM method; Feasibility Study, Requirements Analysis, Requirements Specification, Logical System Specification, Physical Design. It provides full life-cycle support and seamless target integration. The Physical Design module will support code generation for SQL-schema building and 4GL target environments from Ingres and Informix. The project information will be stored in an open repository (Ingres and Informix).

Westmount I-CASE OMT

Westmount I-CASE OMT (Object Modeling Technique) is an Open Integrated Computer Aided Software Engineering (CASE) tool (based on X and OSF/Motif) for developers to meet the goals set by Object Modeling techniques running on Unix. This product supports all four phases and models described by Rumbaugh et al.. It provides full life-cycle support and seamless target integration. All information is stored in a central repository (Informix, Ingres or Sybase). Westmount I-CASE OMT generates client-server applications for C++, Ingres and Informix environments.

Westmount Lite

Westmount Lite is the most advanced database designer available in the market today. Westmount Lite designs, documents and maintains databases. Westmount Lite is also very useful for maintaining existing databases. A reverse engineering module supports in recreating the design for existing databases. Supported databases: Ingres, Informix, Oracle Integrated DTP packages: Framemaker, Interleaf, WordPerfect Development environment: Unix

TCL/Tk;

The code generation of all Westmount products is based on parsing diagrams and generating code from that. This conversion is written in C++, the generation in TCL. The advantage of that is that users can adapt the code generation themselves, which is even more interesting because they can also extend the diagram definitions.

We have extended TCL with some features which converts diagrams from the repository into an internal datastructure (model) which can be accessed from within TCL.

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

ENTRY P3. - Supervisory Control and Data Acquisition (SCADA) by Computerized Processes Unlimited, Inc.

Usage: Supervisory Control And Data Aquisition (SCADA)
Company: Computerized Processes Unlimited 
Contact: Gerald W. Lester
Email: gwl@cpu.com
Computerized Processes Unlimited, Inc. (CPU) is an independent consulting system integrator. The company serves oil and gas energy and other process industries. Expertise represented among the principals and staff include requirements analysis, design and implementation competencies in process, electrical, mechanical, instrumentation, software, and control systems. The company s product is knowhow in technical areas it has targeted for business.

CPU has embraced Tcl/Tk technology and made it the basis for its own powerful SCADA technology. In combination with Hewlett- Packard Company s RTAP Plus applications enabler product, CPU has engineered and delivered powerful SCADA systems.

RTAP Plus is not a complete SCADA package. The user must furnish applications (including the GUI) to build the completed SCADA system. CPU has brought all of RTAP s API (i.e., call interface) up into Tcl as Tcl commands. The GUI and application programs are written in SCL Plus (Tcl/Tk with CPU s RTAP extensions). This technology has been implemented and delivered on the distributed client/server model.

The most ambitious application of this technology is for an oil and gas production platform located in the Gulf of Mexico. Shell Offshore Incorporated s tension-leg platform, Auger, is designed to produce 40,000 barrels of oil per day and 150 million cubic feet of gas per day. This $1.2 billion facility began producing oil and gas in April, 1994. The monitoring and control system integrates numerous state-of-the-art technologies--in excess of 12 workstation-class computers on an ethernet network, communicating with over 40 programmable logic controllers, in a distributed data base environment, using both copper coaxial and fiber optic cable--in an open system architecture. The system is connected with all aspects of facility operation: production, drilling, utilities, and marine operations.

CPU s Tcl/Tk effort for SCL Plus and this facility has resulted in excess of 250,000 lines of Tcl/Tk code, the largest known Tcl/Tk project to date.

For information about the technology and CPU's services, contact:

Gerald W. Lester Computerized Processes Unlimited 4200 S. I-10 Service Road, Suite #205 Metairie, LA 70001 Voice: (504)-889-2784 FAX: (504)-889-2799 E-Mail: gwl@cpu.com ---------------------------------

ENTRY P4. - NeoSoft Tcl

Usage: Support
Company: NeoSoft
Contact: Karl Lehenbauer
Email: sales@NeoSoft.com.

NeoSoft Commercial Tcl Support

Thank you for your interest in NeoSoft's commercial Tcl support. We offer a flexible support plan that can be tailored to your organization's needs.

NeoSoft Tcl is our integration of the core Tcl technologies into a professionally maintained and supported release.

Below is a description of NeoSoft Tcl and our Tcl services.

To set up a support contract, or if you need more information, please contact us at +1 713 684 5969 9-4 M-F, or send email to sales@NeoSoft.com.

NeoSoft Tcl:

    Includes the latest Tcl, Extended Tcl, Tk, and XF source.

    Includes the graph and photo widgets, compiled in at your option.
	
    NeoSoft's Tcl support libraries are included, providing useful tools 
       such as dialog boxes, a file requester, and many additional functions.

    Includes xpm pixmap library to allow any widget's bitmap to be a
       color pixmap, TIFF, GIF, etc.

    Point releases of Tcl, Extended Tcl, Tk and XF integrated and
       made available within thirty days.

    Major releases made when code is stable and needed tools are
       available.

    No license is required to redistribute with an application.

    Documentation comes in nroff and postscript (tm) formats.

    Available via FTP, DC-600A data cartridge, DAT tape 
       (in DATA/DAT format) or 3.5" high density floppy disks.



Service types:

Basic service:
    Source copy of NeoSoft Tcl.
    Binaries built on your machine using telnet or modem, if needed.
    Free updates for a year (available via FTP or media).
    20 hours of remote support, including consulting, bug fixing, etc.
    Standard documentation set.
    Release notes.
    NeoSoft Tcl T-shirt (specify L or XL).
    Additional support available on an hourly basis.

    Price: $2500/year


Additional services (billed as Time and Materials):
    Help desk.
    24 hour emergency support.
    Training.
    On-site work.
    Hard-copy documentation sets.
    Software development.
    Software integration, release building and porting.
    Builds for additional architectures.
---------------------------------

ENTRY P5. - Other NeoSoft products

Usage: Other
Company: NeoSoft
Contact: Karl Lehenbauer
Email: sales@NeoSoft.com.

Additional NeoSoft products:
    Tcl source encryption system.
    Tcl X-windows desktop.
    Control Station - programmable network monitoring software.
    CUTE - programmable, Tcl-based telecommunications program.
To set up a support contract, or if you need more information, please contact us at +1 713 684 5969 9-4 M-F, or send email to sales@NeoSoft.com.

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

ENTRY P6. - SYSTEM 9 Geographic Information System (TM)

Usage: GIS
Company: Unisys Canada Inc, GIS Division
Contact: Alex Lee
Email: alex@system9.unisys.com
SYSTEM 9 Geographic Information System (TM) is a workstation based commercial software developed by the Unisys Corporation. It is being used worldwide in facility/utility management and mapping applications. Some of the SYSTEM 9 functionality includes spatial data capture and management, raster image processing, graphic data display and plotting, and client/server distributed processing. SYSTEM 9 currently runs on Solaris 1.x, 2.x, HP-UX 9.0, and IBM-AIX 3.2 platforms operating in the UNIX/X environment.

With the increasing diversity of end user applications, SYSTEM 9 architecture allows users to build custom applications to meet specific requirements using the Application Tool Box (ATB)(TM) module. The ATB module supports Unix style commands that interface with underlying SYSTEM 9 functionality. In addition, a C API is also available for applications written in the C language.

Currently, the Korn Shell (KSH)(TM) is being used as the scripting language for building applications. The majority of SYSTEM 9 customers are using KSH for customisation. The C API is used only by a few who require performance and have in-house 3GL programming support staff. One of the drawbacks of KSH is performance and a lack of GUI support. The Windowing Korn Shell (WKSH)(TM) from AT&T may fill the GUI gap, but the complexity of Xt/Motif syntax is beyond the comprehension of many of our customers (who are not trained programmers). This has led to the requirement for an extensible command/scripting language that supports GUI, easy to use, extensible, fast, and syntactically like KSH. This is where Tcl/Tk fits in.

Our plan is to use Tcl/Tk as the front-end command parser/dispatcher which operates in sync with special tasked servers across the network. This fits in nicely as the client side C API of ATB is already in a format that can be easily integrated into Tcl. However, new protocols will be needed to allow servers to communicate with the Tcl/Wish interpreter or vice versa. The client/server model reduces the size of the interpreter and yet maximizes the processing power of networked machines.

We expect to use Tcl/Tk as a common programming language for both internal core development as well as end user customization. Using Tcl to implement base functionality hopefully will give us a better turn around time in both development and field support. We also plan to establish guidelines and standards for building Tcl/TK applications to ensure consistency across our products.

At time of writing, a prototype Tcl/Tk interpreter with a subset of SYSTEM 9 functionality is completed for internal evaluation. Also, the first draft of the Tk style guidelines is being reviewed. The tentative customer ship date of this product is around end of this year.

We understand that the SYSTEM 9 GIS extension will not be public domain software, but by adopting Tcl/Tk in our product will help extend the Tcl/Tk horizon into the commercial arena, especially the ever expanding GIS market.

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

P7. - Cyberterm - a Networked 3D OS for PCs

Usage: Cyberterm - a Networked 3D OS for PCs
Company: Cyberterm Pty Ltd
Contact: Michael Snoswell
Email: snoswell@guest.adelaide.edu.au
Cyberterm is a 3D type of operating system, a bit like a multi-user flight simulator where everyone can log into central servers via modems from their PCs. The servers can also be connected together to form a single huge cyberspace. All objects within the environment are user programmable, using Tcl, extended by about 150 functions for object manipulation, file and message handling, user interaction, environment control, networking, security and general administration.

Tcl is used to write applications within the environment. Such applications currently include an artificial life demo with growing, breeding and evolving plants, herbivores and carnivores, a 3D file system manipulator and a multi-user shooting game.

The system is currently in beta test. The server runs under QNX, the PC client under MSDOS (compiled with Watcom) using a slightly modified version of Tcl 7.3 (mainly for security reasons).

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

ENTRY P8. - NANNY - CPU-time balancer for UNIX compute servers

Usage: UNIX System Administration
Company: Parallelograms
Contact: Terry Coley
Email: terry@pgrams.com
Telephone: 818 577 5515
Fax: 818 577 5515

NANNY

Nanny is a Tcl-based CPU-time balancer for UNIX compute servers. Nanny automatically balances CPU-time between users and groups of users on single and multi-processor UNIX computers by periodically adjusting relative process priorities. Nanny can also be configured to automatically give high priority to a console user. Tcl scripts are used to configure Nanny. The package includes a Tk script which graphically displays the CPU-bound per user load for any Nanny host in your network.

All Parallelograms products are enhanced with TCP/IP communications Tcl commands which are an extension of Kevin B. Kenny's tclTCP package. Included in the extensions are timers for creating applications which run periodically. Source code for this enhancement is freely available and distributable, with or without a license of Parallelograms products.

Contact info@pgrams.com for more information and free trials.

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

ENTRY P9. - KIS - Kernel Information System

Usage: UNIX System Administration
Company: Parallelograms
Contact: Terry Coley
Email: terry@pgrams.com
Telephone: 818 577 5515
Fax: 818 577 5515

KIS

The Kernel Information System allows rapid creation of platform-independent UNIX process management tools. KIS implements a single (multiple option) Tcl command which provides UNIX kernel information for any KIS host on your network. With just a few lines of script, you can query the state of processes throughout your network. KIS has powerful filtering capabilities to let you select only those processes of interest. For example, the filter "RSSIZE > 5MB && delta(CPU)/delta(TIMESTAMP) > 10%" will select all processes with a resident memory size greater than 5MB and using more than ten percent of CPU-time since the last scan. Perl users can also use the socket() function to obtain information from any KIS server.

Parallelograms maintains a growing library of freely distributable KIS application scripts.

All Parallelograms products are enhanced with TCP/IP communications Tcl commands which are an extension of Kevin B. Kenny's tclTCP package. Included in the extensions are timers for creating applications which run periodically. Source code for this enhancement is freely available and distributable, with or without a license of Parallelograms products.

Contact info@pgrams.com for more information and free trials.

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

ENTRY T1. - Object Oriented Programming with [incr Tcl]

Usage: Training
Company: AT&T Bell Laboratories
Contact: Michael J. McLennan
Email: michael.mclennan@att.com
Course Title:
Object-Oriented Programming with [incr Tcl]
Course Length:
2 Days
Course Format:
Course material is presented in a lecture format.
Course Description:
When Tcl/Tk scripts grow larger than a few hundred lines, the code complexity can be difficult to manage. [incr Tcl] provides a set of object-oriented extensions for the Tcl language, enabling programmers to write high-level building blocks that are more easily assembled into a finished application. This course describes object-oriented programming with [incr Tcl]. Fundamental concepts are presented on the first day, showing how [incr Tcl] can be used to write more modular code. On the second day, these same concepts are used to create "mega-widgets", high-level widgets that look and act like the usual Tk widgets but are constructed entirely with [incr Tcl] code.

Topics include:
  • Designing object classes
  • Public/protected data members
  • Shared data members
  • Member functions (methods)
  • Inheritance
  • Multiple inheritance
  • Object construction/destruction
  • Manipulating scope
  • Persistent objects
  • Anatomy of a mega-widget
  • A mega-widget base class
  • Example widgets
  • Adding new bindings
  • Creating reusable libraries
Course Level
Technical: Beginner to Intermediate
Prerequisites
Exposure to tcl/tk programming concepts
For pricing and availablity information, please contact:

 Michael J. McLennan
 AT&T Bell Laboratories
 1247 S. Cedar Creast Blvd., Rm 2C-226
 Allentown, PA 18103

Voice:  (610)-712-2842
FAX:    (610)-712-3843
E-Mail: michael.mclennan@att.com
---------------------------------

ENTRY T2. - Introduction to Programming in Tcl/Tk

Usage: Training
Company: Computerized Processes Unlimited 
Contact: Gerald W. Lester
Email: gwl@cpu.com
Course Title:
Introduction to Programming in Tcl
Course Length:
Two (2) days
Course Format:
Course material is presented in a lecture format and through a hands-on laboratory using a network of X terminals connected to a RISC workstation.
Course Description:
This course introduces the participant to programming in Tcl/TclX.
Topics include:
  • Variables
  • Arrays
  • Lists
  • Keyed Lists
  • Syntax
  • Flow control
  • Procedures
    • Creating
    • Invoking
    • Passing variables
    • Passing arrays
    • Passing lists
  • Running programs from Tcl
  • Communicating with child processes
  • Signal handling
  • Error processing
  • Accessing system facilities
  • Programming techniques
    • Using autoloading procedures
    • Proper use of quoting
Course Level:
Technical: Beginner to Intermediate
Prerequisites:
Use of vi or emacs editors; exposure to programming concepts; use of csh/ksh (not programming).
For pricing and availablity information, please contact:

 Gerald W. Lester                        
 Computerized Processes Unlimited        
 4200 S. I-10 Service Road, Suite #205   
 Metairie, LA  70001

Voice:  (504)-889-2784
FAX:    (504)-889-2799
E-Mail: gwl@cpu.com
---------------------------------

ENTRY T3. - Building Graphical User Interfaces in Tk

Usage: Training
Company: Computerized Processes Unlimited 
Contact: Gerald W. Lester
Email: gwl@cpu.com
Course Title:
Building Graphical User Interfaces in Tk
Course Length:
2 Days
Course Format:
Course material is presented in a lecture format and re-enforced through a hands-on laboratory using a network of X terminals connected to a RISC workstation.
Course Description:
This course introduces the participant to building graphical user interfaces using Tcl/Tk.
Topics include:
  • Background Concepts
  • A tour of the widgets
  • Adding Bindings
  • Widget Class Bindings
  • Geometry Managers
  • Running programs from Tcl/Tk
  • Communicating with child processes
  • Writing widgets in Tcl/Tk
  • Programming techniques
    • Proper use of quoting
  • Interface Builders for Tk
Course Level:
Technical: Beginner to Intermediate
Prerequisites:
CPU's "Introduction to Programming in Tcl" course or understanding and experience using Tcl
For pricing and availablity information, please contact:

 Gerald W. Lester                        
 Computerized Processes Unlimited        
 4200 S. I-10 Service Road, Suite #205   
 Metairie, LA  70001

Voice:  (504)-889-2784
FAX:    (504)-889-2799
E-Mail: gwl@cpu.com
---------------------------------

ENTRY T4. - Extending Tcl via C

Usage: Training
Company: Computerized Processes Unlimited 
Contact: Gerald W. Lester
Email: gwl@cpu.com
Course Title:
Extending Tcl via C
Course Length:
1 Day
Course Format:
Course material is presented in a lecture format and through a hands-on laboratory using a network of X terminals connected to a RISC workstation.
Course Description:
This course teaches how to add new commands to Tcl via C.
Topics include:
  • Approaches to adding commands
    • Action vs Object
  • New tcl/tk shell vs embedding
  • Creating a new Tcl Command
  • Returning Results
  • Creating a new shell
  • Conversion functions
  • Accessing Tcl variables
  • Mapping Tcl variables to C variables
  • Tracing Tcl variables
  • Executing Tcl commands from C
  • Embedding into an applications
Course Level:
Technical: Intermediate to Advanced
Prerequisites:
Use of vi or emacs editors; knowledge of Tcl; C programming experience.
For pricing and availablity information, please contact:

 Gerald W. Lester                        
 Computerized Processes Unlimited        
 4200 S. I-10 Service Road, Suite #205   
 Metairie, LA  70001

Voice:  (504)-889-2784
FAX:    (504)-889-2799
E-Mail: gwl@cpu.com
---------------------------------

ENTRY T5. - Tcl and Tk: An Applications-Based Approach

Usage: Training
Company: NeoSoft
Contact: Karl Lehenbauer
Email: sales@NeoSoft.com.

NeoSoft Tcl and Tk Training Information

NeoSoft is perhaps the premier corporate contributor to the Tcl and Tk toolkit efforts. Our groundbreaking work in Tcl and Tk dates back to its first appearance in 1990, and is reflected by the copious amount of concepts and code taken from Extended Tcl for use in the Tcl baseline. We continue to collaborate with Dr. John Ousterhout, the author of baseline Tcl and Tk, on the forthcoming release of Tcl 7.0 and Extended Tcl 7.0.

NeoSoft's Tcl training efforts have been a natural outgrowth of our work with, and extensions of, Tcl.

The philosophy of the course is one of immediate, maximum impact by rapid immersion into hands-on building of X-windows graphical user interfaces and the Tcl programs that underly a number of useful applications. This approach grew out of our first-generation Tcl training course, where we discovered that students became very excited once the Tk toolkit was introduced and they could begin typing statements and interactively creating sophisticated X-windows interfaces.

This same philosophy is the backbone of a book we're writing, Tcl and Tk: An Applications-Based Approach, due to be published in the first quarter of 1994 by Prentice-Hall Technical Publications.

Training Options

We are flexible and can customize a course to your specific needs. We have found that almost everyone is content with one of a few options. The class lasts for two or three days, at your option. The class can be structured to support new Tcl and Tk users and/or users with significant prior experience. In either case, it is nice to allocate some unstructured time at the end of the class to talk about specific applications and issues that the students are interested in, including new users, approaches, tools, environments, and the future of Tcl itself.

Course Location and Times

The course can be taught at your company's facility, or at our training facility located in Houston, Texas. Enrollment is limited to ten people per class to provide a substantial amount of instructor attention to each student. If the course it to be held at your company's facility, there should be no less than one workstation per two students, if at all possible. The class can be taught over a weekend. Contact NeoSoft for pricing and availability.

Instructor

The class will be taught by Karl Lehenbauer, the co-author of Extended Tcl. Karl is an experienced trainer, having taught and/or developed previous courses on Unix, Unix system administration and Tcl/Tk.

Course Goals

Teach Tcl and Tk with the maximum impact by building real world applications in the classroom.

Site Prerequisites

Integrated copy of Tcl and Tk, including Extended Tcl, running on site.

Course Contents

Below is the list of basic sections of the class, beginning with the elementary things that we would teach to users without prior Tcl experience and ending with building several tools that are useful, real-world applications in their own right. We can work with you to tailor the course to your organization's specific needs.

Section 1 Hello, World

Concepts:
	Typing commands interactively into the interpreter.
	The most important command in Tcl: "proc"
	Passing arguments to Tcl procedures.
	The C "Hello, World" koan in a graphical context:
The button command
The pack command

Section 2 Making Choices with Buttons

Concepts:
	Variables and variable substitution
	Radiobuttons
	Checkbuttons
	More on the pack command

Section 3 A quartet of application launchers

Concepts:
	Launching applications
	Tcl Language elements:
		Variable assignment
		Conditional expressions
		Beginning file I/O
		Square-bracket substitution
		Generating window elements from data
		Accessing command line arguments

Section 4 Building a support library:  The dialog box

Concepts:
	The message widget
	Control structures:  if/else/endif
	Default values for procedure arguments
	First mention of Tk's event loop
	Subordinate toplevel windows
	'tkwait' to support sequential control
	
Section 5 Building pulldown and popup menus

Concepts:
	The menu widget
	Binding commands to keypress events

Section 6 A few simple but useful applications

Concepts:
	Intermediate file I/O
	Delayed execution with 'after'
	Temporal commands (getclock, fmtclock)
	Capturing a spawned command's output in a variable

Section 7 Building a support library: The file selector

Concepts:
	The listbox and scrollbar widgets
	The frame widget
	More about the packer

Section 8 Creating a text editor with the text widget

Concepts:
	The text widget
	Text widget tags
	More about key bindings
Integrating support library examples

Section 9 Creating a hypertext system with the text widget

Concepts:
	More about the text widget
	More about text widget tags
	Builds on the text editor



Section 10 X resource customizer

Concepts:
	Use of the "send" command to access another interpreter.
	More about text widget tags.
	Builds on the text editor to make a new tool.

Section 11 Introduction to the canvas widget

Concepts:
	Introduces the canvas widget.
	Tags and tag processing.
	More on list processing.
           Use of different canvas widget types.

Section 12 A second encounter with the canvas widget

Concepts:
	Commands and options within the canvas widget.
	Combining items with actions.
	A new application launcher.

Section 13 Creating a drawing tool with the canvas widget

Concepts:
	Traversing items within a canvas widget.

Section 14 Sysadmin tool:  New user creator

Section 15 Sysadmin tool:  ttytab editor

Section 16 Developer tool:  The proc browser

Concepts:
	More on using "send" to access another interpreter.
	Using "info" to find variables and procedures.
           Using entry widgets.

Section 17 Color editor

Concepts:
	Slider widget
	Performing math with the "expr" command
To set up a support contract, or if you need more information, please contact us at +1 713 684 5969 9-4 M-F, or send email to sales@NeoSoft.com.