TCLA
Tcl Community Association
Current Activities: US Conference: Sep 23-27 2012 -- Google Summer of Code
TCLA

Birds of a feather flock together

Tcl/Tk Conference: 2008

The 2008 Tcl Conference was held in Manassas, VA.

Our invited guest was Miguel Sofer, who explained the improvements to the Non Recursive Engine byte-code interpreter. The NRE byte code interpreter allows Tcl to support more programming styles including tail-call recursion and co-routines.

Our Keynote speaker was Dan Foos of Testing and Evaluation Solutions. TNES does simulation and modeling studies for the US Navy. They use Tcl and Sqlite to manage simulations on a cluster of 300 blades and then analyze the results with another set of Tcl/Tk applications. The speed with which applications can be created in Tcl/Tk allows TNES to develop solutions quickly with a very small staff of programmers.

The Tcl Community Association was pleased to award Larry Virden with the first Tcl Community Association Service Award. Larry has maintained the Tcl FAQ, scrutinized the wiki for typos and abuse, and quietly and selflessly helped keep the community running for nearly 20 years.

Thanks, Larry

A copy of the proceedings can be purchased as hardcopy at the Tcl Community Association Press storefront on Lulu.

Google Summer of Code


Tcl/Tk Community GSoC European report
Daniel A. Steffen
An overview of the European Tcl/Tk GSoC report

A Business Rule Management System based on the high-level object oriented scripting language XOTcl
Gustaf Neumann, Franz Wirl
High level object oriented scripting languages like XOTcl can be perfectly used to implement Charles Forgy's Rete algorithm. An algorithm that has been developed and tested to match between more than a thousand patterns and objects. Implementing this fast algorithm into/with XOTcl will provide a fast and dynamic Rete library in XOTcl.

Google Summer of Code Overview
Tomasz Kosiak
Powerpoint presentation: Overview of the Google Summer of Code

Google Summer of Code Overview
Tomasz Kosiak
MS: Word: Google Summer of Code Projects

State of Tcl


The (Active) State of Tcl
Jeff Hobbs
History and current state of Tcl/Tk development

Domain Specific Languages


A Domain Specific Language for defining Nuclear Physics Experiments.
R. Fox
Tcl's support for the implementation of domain specific languages (DSLs) has been used to define a language for describing the readout and initial unpacking of data from nuclear physics experiments. The DSL described has been tailored to the Weiner VM-USB USB/VME interface module, and the NSCLSpecTcl data analysis software. I will describe the extensions to TCL and a case study where this system was deployed at Säteilyturvakeskus (STUK) [1], the Radiation and Nuclear Safety Authority of Finland.

A Domain Specific Language for defining Nuclear Physics Experiments.
R. Fox
Powerpoint slides for presentation above

Networked Applications


mod_tcl: TCL inside the Apache web server
Olly Stephens
mod_tcl is an apache httpd module that allows TCL code to be executed inside the web server during any of its phases whilst handling requests. This tight integration makes possible many things over and above simple page generation.

dotNyet
Mike Doyle, Cyndy Lilagan, Steve Landers, and Steve Huntley
In recent years, the notion of "cloud computing" has become all the rage. Despite its recent wave of popularity, distributed computing has been with us in various forms for more than 20 years. Distributed computational systems are all about allowing one machine on a network to tap into the computational resources of one or more other systems connected to the same network. Currently popular frameworks for this range from commercial systems such as Microsoft's .NET to large open source projects such as the Globus Grid. One characteristic common to these systems is the relatively high level of complexity inherent in their architectures, deployment requirements, and development resources. The dotNyet system is a Tcl-based response to the complexity of these other systems. dotNyet exploits a handful of uniquely-Tcl-empowered technologies to provide a simple yet powerful platform for the easy development and safe deployment of secure platform-agnostic distributed Tcl applications over untrusted network environments.

Skybot
Steve Landers and Mike Doyle
The Skype API provides facilities for external applications to be able to communicate with and control various aspects of the Skype VOIP and IM application. Originally developed in early 2005, Skybot uses the power and flexibility of Tcl to dramatically expand the usefulness of the Skype system. Using Skybot, one can create a variety of programmable responses to incoming Skype calls and chat messages. The system incorporates a Tcl-based state machine which can be configured to automatically trigger Tcl code in response to various Skype events. This provides the user with a surprisingly-broad and powerful set of capabilities for automating Skype-based communication operations.

Numerical Applications


Relation Oriented Programming with Raloo
Andrew Mangogna
Raloo is an objected-oriented extension to Tcl that combines the relational data structuring capa- bility of TclRAL with an object-oriented programming style as provided by TclOO. This paper intro- duces Raloo and describes how the capabilities of Raloo may be used to capture the semantics of a software problem in a more declarative manner. Raloo suppor ts problem decomposition into domains, with domains containing classes, relationships and domain functions. Both synchronous processing and asynchronous processing via state machines are provided. The relationship of Raloo to formal software methods is also discussed.

Relation Oriented Programming with Raloo
Andrew Mangogna
Slides for previous paper

Implementation


Eagle: Tcl Implementation in C#
Joe Mistachkin
Eagle, Extensible Adaptable Generalized Logic Engine, is an implementation of the Tcl scripting language for the Microsoft Common Language Runtime (CLR). It is designed to be a universal scripting solution for any CLR based language, and is written completely in C#. Superficially, it is similar to Jacl, but it was written from scratch based on the design and implementation of Tcl 8.4. It provides most of the functionality of the Tcl 8.4 interpreter while borrowing selected features from Tcl 8.5 and the upcoming Tcl 8.6 in addition to adding entirely new features.

Eagle: Tcl Implementation in C#
Joe Mistachkin
Powerpoint slides for previous paper

NRE: the non-recursive engine in Tcl8.6
Miguel Sofer
Tcl8.6 has a completely redesigned execution model that allows among others arbitrary deep recursion in constant C-stack space. The design is derived from the ideas already present in mod-8-3-branch, implemented at a different level and much generalized. It is com- pletely transparent to extensions, users of the standard Tcl APIs keep perfect compatibility.

NRE: the non-recursive engine in Tcl8.6
Miguel Sofer
PDF Slides for previous paper

Tailcalls in 8.6
Miguel Sofer
PDF Slides for Tail Recursion talk

Coroutines in 8.6
Miguel Sofer
PDF Slides for Coroutines talk

Tcl Database Connectivity
Kevin B. Kenny
Tcl Database Connectivity is a newly-approved interface in the Tcl Core as of release 8.6. It fills the need - expressed over many years - of a uniform interface to Tcl for SQL databases. TDBC is built to exploit the latest features of 8.6, including its ob- ject-oriented functionality. It is designed for close integration with Tcl; in particular, it addresses such issues as immunity to SQL injection attacks, type mismatches be- tween Tcl and SQL, and the presence of NULL columns without requiring either spe- cial Tcl code to handle them. (It approaches everything with the attitude that it should be more difficult to write insecure code than secure code, and that SQL should have no impact on "everything is a string.") It is the intent that TDBC should be one of Tcl's foundational components, so that database applications in Tcl can have the same ubiquity as Tcl itself.

Testing


Remote Control of Test Equipment Using Distributed Objects
Timothy L. Tomkinson
Many testing environments consist of a heterogeneous mixture of CPUs connected via a network. These CPUs, in-turn, are used to control various pieces of test equipment over a wide variety of interfaces. By combining the power of Tcl, the object-oriented capabilities of Itcl, the remote communication facility of comm and the ability of Ffidl to access C libraries, an extremely simple remote method call mechanism was developed that both hides the complexity of network programming and eliminates the need to write control software in any language other than pure Tcl.

Remote Control of Test Equipment Using Distributed Objects
Timothy L. Tomkinson
Powerpoint slides for previous paper

Agent SMITH: Evolution of a Test Tool in Tcl/Tk
John J. Seal
PDF Presentation slides for previous paper

Agent SMITH: Evolution of a Test Tool in Tcl/Tk
John J. Seal
This paper describes the evolution of the Story Maker Interface Test Harness (SMITH), a test tool developed by Raytheon Technical Services Company (RTSC) for internal use on one of its projects. Development started with a sketch made by a project engineer, and proceeded in four incremental stages: First, implement the sketch as proof of concept; second, automate the tool using test case files; third, develop a C extension to provide hooks into the target system; and fourth, analyze the target system's response. These stages tracked the changing needs of the project, from development of the interface code before real hardware was available, through unit test, and finally into full-scale system integration and qualification testing.

Education


AnatLab: A Web-based Virtual Anatomy Laboratory
Mike Doyle, Maury Pescitelli, Cyndy Lilagan, Steve Landers, Steve Huntley, Elise Pescitelli
This work represents the convergent evolution of a number of technologies and research "threads." A project called MetaMAP, which developed early hypermedia imagemap technology, dates back to 1986. Work on creating a new paradigm for doing client-server visualization over the Internet began in 1992. Another major project began in 1993 to turn the Web into a platform for interactive applications. A project to develop multidimensional imagemap technology began in 1995. Finally, work on a scalable computational server architecture called "Dark Iron" began in 1997. The AnatLab project represents the intersection of these various research efforts to create a new kind of navigable knowledgespace that leverages the advantages of each of its constituent technologies.