Eleventh Annual Tcl/Tk Conference

Organized by Gerald Lester see https://www.tcl-lang.org/community/tcl2004/ for details.

Occurred October 11 - 15, '04, in New Orleans, Louisiana


Conference Papers

Brian O'Hagan and Stephen K. Long, Sr. : Enhancing International Space Station (ISS) Mission Control Center (MCC) Operations Using Tcl/Tk
This paper discusses the use of Tcl/Tk to enhance flight controllers' abilities to control the International Space Station from the Mission Control Center at Johnson Space Center. The authors explain how Tcl/Tk overcame limitations of existing C and C++ applications that were costly and time-consuming to modify. They demonstrate interfacing with the MCC infrastructure to receive ISS telemetry, register services, and send commands, resulting in applications developed faster, with fewer defects, and more user-friendly interfaces while maintaining rigorous Configuration Management and certification standards.

Bruce A. Johnson : From C to Java, Scientific Data Analysis with Java, Jacl and Swank
Nuclear Magnetic Resonance (NMR) spectroscopy is used to derive information about molecular structures and motions. NMRView, developed by the author, facilitates visualization and analysis of bio-molecular NMR data and is cited in over one hundred scientific papers annually. The program incorporates Tcl and implements its GUI with the Tk toolkit, featuring custom Tk widgets for interactive one-dimensional and two-dimensional data plots that display orthogonal slices through multidimensional NMR datasets ranging from megabytes to gigabytes in size.

Bryan Oakley : Actions: A Simple Implementation
Writing rich, highly interactive event-driven user interfaces presents unique challenges, particularly in synchronizing controls with application state and managing multiple ways to accomplish tasks. This paper introduces the concept of "actions" - pseudo-objects that join functionality with enabled/disabled states and can be associated with multiple widgets. When an action's state changes, all associated widgets update automatically. This approach simplifies development of applications where the same function is accessible through toolbar buttons, menu items, keyboard accelerators, and context menus, while also enabling features like interaction logging, high-level undo, and automated GUI testing.

Clif Flynt : TkTest: Cross Platform and Remote GUI Regression Testing - A tkreplay Application
The TkReplay framework, originally developed by Charles Crowley in the early 1990s, has been updated to support modern widgets and Windows across networks. Unlike low-level record-and-replay systems that capture mouse movements and keystrokes, TkReplay works at the lexical and syntactic levels, recording events tied to graphical objects, making it more robust and platform-independent. The upgraded TkReplay serves as the engine for TkTest, a regression test and exercise application that can precisely repeat user interactions for testing, tutorials, and software demonstrations across different platforms.

D. Richard Hipp : SQLite and Tcl
SQLite is a serverless, zero-configuration SQL database engine that is particularly well-suited for standalone Tcl applications. Unlike traditional SQL databases that use separate server processes, SQLite talks directly to database files using ordinary disk I/O. It understands most of SQL-92, supports ACID transactions, has no arbitrary size limits, and uses a flexible typing system similar to Tcl's approach to variables. SQLite comes bundled with Tcl bindings, providing a single sqlite3 command that creates database connections. The simplicity of deployment and administration makes it ideal for embedded applications and situations where a full database server would be overkill.

Donal K. Fellows : Using Tcl 8.5 Features to Build an OO System
Object-oriented programming in Tcl is better supported in the 8.5 release than ever before. This paper demonstrates how to build a basic OO system using Tcl 8.5's new features, including dictionaries for data parceling, commands as object references, ensemble commands with advanced mapping capabilities, and command traces for object lifecycle management. The dict with subcommand enables elegant binding of dictionary keys to local variables within methods. The paper illustrates how these features combine to create objects that store state in dictionaries, expose methods through ensemble commands, and automatically clean up resources when deleted.

Gerald W. Lester : Using and Abusing TclLib
This presentation provides an overview of TclLib, a collection of Tcl modules and packages. The paper includes a tour of available modules and demonstrates their practical applications through three examples: a parallel difference utility, sending email with attachments, and an FTP mirror application. The presentation also discusses how users can contribute to the TclLib project.

Joe English : The Tile Widget Set
The Tile widget set is an experimental reimplementation of core Tk widgets built on an enhanced version of the TIP #48 theme engine. By separating widgets' appearance from their implementation, Tile enables complete look-and-feel changes without modifying widget internals. The package includes several built-in themes: a streamlined default for X11, a classic Motif-like theme, xpnative for Windows XP using Visual Styles API, winnative for other Windows versions, and aqua for Mac OSX using the Carbon Appearance Manager. Themes consist of elements (individual widget parts), layouts (element arrangement), and styles (element options), which combine to determine the overall appearance. New themes can be implemented as packages in Tcl or C.

Robert W. Techentin, David R. Holmes III, Barry K. Gilbert, and Erik S. Daniel : Real-Time Code Distribution on a Heterogeneous Network for Laboratory Equipment Control
A custom distributed computing framework was developed for electronics research laboratory automation at Mayo Clinic, with flexibility in heterogeneous networks as the primary goal. Based on Tcl and the comm package, the implementation uses real-time distribution of code rather than traditional remote procedure calls. Generic server daemons run on networked equipment and execute arbitrary Tcl code sent from client applications. This eliminates the need to install or maintain applications on servers, works equally well on Unix workstations and Windows PCs, and provides transparency to application programmers. The approach dramatically increases flexibility for constantly changing laboratory configurations while avoiding version incompatibilities and reducing management overhead.

Ron Fox, Chase Bolen, Kanayo Orji, and Jason Venema : NSCLSpecTcl Meeting the Needs of Preliminary Nuclear Physics Data Analysis
The National Superconducting Cyclotron Laboratory at Michigan State University performs basic research in heavy ion collisions with rare isotopes. NSCLSpecTcl is a hybrid C/C++ application framework with Tcl/Tk as an extension language, designed for preliminary nuclear physics data analysis. The system balances ad-hoc extensibility with performance requirements, providing a framework controlled by an extended Tcl/Tk interpreter. The paper describes experimental nuclear physics needs, the structure of the C++ framework, how Tcl/Tk is integrated as a control language, and various extensions created by the user community. The software has achieved acceptance within the NSCL and the broader nuclear physics community.

Steve Landers : Klant - A Server-Managed Client Framework for Tcl/Tk
Klant is a prototype Tcl/Tk server-managed client framework that combines the rich user experience of thick-client applications with the convenience and security of thin-client deployment. Built upon existing Tcl technologies including Starkits, TLS for secure communication, TclRFB for VNC protocol implementation, and Tequila for shared data, Klant provides centrally managed, easy-to-deploy applications. The server runs on Unix systems with VNC, while clients run on any platform supporting Tcl/Tk and TLS. Applications display through VNC but can incrementally add client-side functionality, such as invoking local applications or displaying documentation stored in the client's virtual file system. This approach achieves both "fit for purpose" and "value for money" by delivering superior user experiences at lower deployment and maintenance costs.

GWL There was some discussion last year about video recording of the conferences, would people be interested in it and at what price?

There will be an Audio Webcast from the Tcl Conference. See Conference slides for a pointer to the state of tcl slides from 2004.


Okay, from the chat and listening to the audio, it appears that DKF, stevel, stever, gwl, tclguy are there. I also have to assume that clif flynt is there as well.

Anyone else we know?


LV Okay - you guys had fun yesterday - where's the description? Don't leave us in the dark! Is there a blog some place covering the conference?


MC Oct 14 -- There is some sort of routing problem upstream from the hotel & mini.net. I've created a Simple TCP/IP proxy that is running (temporarily) at 166.70.107.100 that proxies to mini.net and is reachable here from the hotel.


Coolest Tk Screenshot Contest

Congratulations to the winners of the Coolest Tk Screenshot contest, announced October 13 at the 11th Annual Tcl/Tk Conference in New Orleans, LA. This was held by ActiveState, with grand prize winners receiving a subscription to ActiveTcl Pro Studio, featuring Komodo Professional, Tcl Dev Kit and Safari Bookshelf. Honorable mention winners received a copy of TDK.

Grand Prize Winners

Mats Bengtsson, Coccinella

Home: http://thecoccinella.org/ Screenshots: http://thecoccinella.org/gallery

Damon Courtney, InstallBase

Home: http://installbase.sourceforge.net/main.shtml Screenshots: http://installbase.sourceforge.net/screenshots.shtml

Honorable Mentions

Alexey Shchepin

Home: http://tkabber.jabber.ru/ Screenshots: http://tkabber.jabber.ru/book/view/29

Mike Doyle

Home: http://www.bionetlab.org/2/73 Screenshots: Above, from "Rotating the 3D data" on.


Links to Presentations

DKF: I gave this presentation; it's notable for being an obvious precursor to TclOO even if many of the ideas were not fully cooked at that point.