Developer Site
Getting StartedTcl AdvocacySoftware ResourcesDocumentsCommunityLinks
HomeHosted by Noumena Corporation
Tcl'ers Wiki | List Archives | News and Events | TclUrl | Features | People | Web Sites | Tcl'2005
Google SiteSearch
Main | Registration | Schedule | Tutorials | Info

10'th Annual Tcl/Tk Conference

July 28 - August 2, 2003
Ann Arbor , Michigan , USA

Important Information
Abstracts and proposals due May 15, 2003
Notification to authors June 1, 2003
Author materials due July 10, 2003
Conference starts July 28, 2003
Email Contact [email protected]

On of the many great reasons to attend the Tcl conference is the tutorials presented by renowned leaders and experts in the Tcl community. They will be sharing with you their knowledge of Tcl/Tk and its extensions, and experience in developing large, versatile and robust applications - information and techniques which will assist you in your day-to-day Tcl programming needs.

This year, Ken Jones is providing an extra bonus - he is offering his full-day Building Applications with Tk course on the Monday before the conference starts. This is your change to catch these sessions without flying to California.

You can register for these tutorials when you register for the Tcl'2003 conference at tcl2003.mod3.net/reg.html.
Monday Morning Monday Afternoon
Building User Interfaces with Tk
Building User Interfaces with Tk
Tuesday Morning Tuesday Afternoon
Enough Expect to be Dangerous
Tcl and Web Servers
Weaving Multi-Threaded Applications
Advanced Encapsulation and Modularization Techniques
Wednesday Morning Wednesday Afternoon
Starkits
Tcl and the C API
Metakit Database
Interprocess Communication

Tutorial Information

Monday Morning, July 28th

Building User Interfaces with Tk ( Ken Jones )
Pre-requisities: Basic knowledge of Tcl

With remarkably little code, you can add a full-featured GUI to your application that will have a platform-native appearance on Windows, Unix, and Macintosh. In this course you'll explore all the Tk interface components, learn how to modify and extend their behaviors, and see how to put them together into complex multi-window applications.

The two sessions will complement each other, introducing basic techniques in the first session, and more advanced techniques in the second.

Monday Afternoon, July 28th

Building User Interfaces with Tk ( Ken Jones )
Pre-requisities: Basic knowledge of Tcl

With remarkably little code, you can add a full-featured GUI to your application that will have a platform-native appearance on Windows, Unix, and Macintosh. In this course you'll explore all the Tk interface components, learn how to modify and extend their behaviors, and see how to put them together into complex multi-window applications.

The two sessions will complement each other, introducing basic techniques in the first session, and more advanced techniques in the second.

Tuesday Morning, July 29th

Enough Expect to be Dangerous ( Ken Jones )
Prerequisites: Basic Tcl programming knowledge. No previous experience with Expect required.

Expect's unparalleled support for interacting with command-line and network applications have made it the industry standard for automated test applications. But its features also make it an excellent tool for managing interprocess communication and extending legacy applications. As one developer said, "Expect can make easy all sorts of tasks that are prohibitively difficult with anything else." This tutorial concentrates on the four core Expect commands used in virtually all Expect programs, as well as showing tips and tricks for overcoming common Expect problems.

Tcl and Web Servers ( Clif Flynt )
Prerequisites: Grasp of HTML and Tcl fundamentals.

A survey of techniques for using Tcl for web backends. The primary focus will be on installing, configuring and using tclhttpd, but will also cover briefly Apache, tcl-cgi, and AOLServer.

The session will describe using templates to provide a uniform look&feel across your website, how to install SSL, tips and tricks, and comparison and contrast of the three major web servers (tclhttpd, AOLServer and Apache).

Tuesday Afternoon, July 29th

Weaving Multi-Threaded Applications ( Ken Jones )
Prerequisites: Good grasp of Tcl fundamentals. Experience with event-driven programming (GUI or fileevent-based) recommended. Knowledge of multi-threaded programming concepts is helpful, but not required.

A multi-threaded application can perform multiple tasks in parallel. Although Tcl's built-in event loop is an elegant and simple solution for tasks such as managing graphical user interfaces or handling interprocess communication (where threads are required in many other languages), there are still situations where a multi-threaded design is easier to implement and maintain. This module identifies appropriate uses of threads in Tcl applications, and describes the basics of the Thread extension, including: thread creation; joinable threads; thread termination; inter-thread-messaging; and shared variables as well as the advanced features of the Thread extension, including: mutexes; condition variables; and thread pools.

Advanced Encapsulation and Modularization Techniques ( Clif Flynt )
Prerequisite: A basic knowlege of Tcl scripting

This session will describe how to modularize your scripts from simple procedures and the source command to using namespaces and packages as well as using upvar and uplevel to control access to data. The class will also cover techniques for separating GUI code from business-rule code including using the bind command and variable tracing, to bind actions to events. Examples include a Tower of Hanoi game and a Nuclear Reactor simulator.

Wednesday Morning, July 30th

Starkits ( Steve Landers )
Prerequisites: Grasp of Tcl fundamentals.

A Starkit is a single file packaging of Tcl scripts, platform specific compiled code and application data; designed to facilitate simple deployment of cross-platform applications. Tclkit (itself a Starkit) is a single file Tcl/Tk interpreter used to run Starkits. It also includes the Metakit database and the [Incr Tcl] object oriented Tcl extension and, with versions available for over 30 platforms from PDAs to mainframes, Tclkit is one of the easiest ways of installing Tcl/Tk. A Starkit may be combined with a specific Tclkit version to create a self-contained single file application, providing an "installation-free" deployment model for even the most complicated Tcl/Tk applications.

This session will describe how to assemble Starkits and Starpacks and, by example, discuss applications such as the Tcl web server and Wikit (the wiki implementation behind the Tcler's Wiki). It will show how to use compressed versions of Tclkit on specific platforms - showing the development of a stand-alone web application (including web server) that fits on a single floppy disk. The session will also look at some advanced topics such as incorporating compiled code for multiple platforms into Starkits, and the use of the new Starsync facility to update Starkits from a repository.

Tcl and the C API ( Clif Flynt )
Prerequisites: Some knowlege of C and Tcl.

This exciting half day course will describe how to build extensions, and how to embed the Tcl interpreter into a "C" program. Topics covered include the basic extension architecture, adding a new command to Tcl, moving data from Tcl script to C and back, passing status information back to a script, using the Tcl hash table, creating commands with subcommands, parsing options and packaging an extension to allow it to be loaded with package require. creating and initializing a Tcl interpreter within another application, reading configuration files, generating a Tk GUI from within "C" code, and extending application behavior with user scripting.

Wednesday Afternoon, July 30th

Interprocess Communication (Client/Server Programming and Other Techniques) ( Ken Jones )
Prerequisites: Basic Tcl programming knowledge.

In a world of distributed computing, getting your programs to talk to each other is vital. And Tcl greatly simplifies the process of creating network-enabled applications. A single Tcl command can connect a client to a server, and you can create useful, multi-client servers in less than 50 lines of Tcl code. In this course youll learn all of Tcls standard mechanisms for interprocess communication, including TCP/IP sockets.

Metakit Database ( Steve Landers )
Prerequisites: Basic Tcl programming knowledge and a grasp of database fundamentals

Ever wanted to use advanced database features like join, project in Tcl? What about changing schemas on the fly - all scripted and with no database server necessary? The good news is that you can - using the new oomk interface to Metakit.

The Metakit database is a small, efficient embedded library that fills the gap between flat-file, relational, object-oriented, and tree-structured databases. It supports advanced features such as relational joins, serialization, nested structures, and instant schema evolution. Metakit works well for moderate-size (a hundred Mb) datasets, and offers good performance well beyond that size when its column-wise data model is fully taken advantage of.

Metakit is included in Tclkit and ActiveState's TclDevKit - and so is already available in the most popular Tcl/Tk distributions.

This tutorial covers the basic metakit concepts (including column-wise storage and dynamic schema evolution), but also introduces the advanced features of Metakit, newly available to Tcl programmers via the oomk extension. These features include:

  • relational operators like project, select, join and groupby
  • hierarchical operations involving subviews
  • set operators like concat, different, intersect, minus, product, union
  • hashed and indexed access for performance
  • blocked access for scalability

Contact Information

[email protected]

Top of page
Developer Home | Getting Started | Tcl Advocacy | Software Resources | Documents | Community | Links
Site Map | Feedback | [email protected]
Increase page width

Last modified: October 17, 2005