EuroTcl Logo
Currently selected Program
Past Events


General information

There will be a come-together event on Friday evening for those arriving in Munich the day before.
We will meet in the restaurant Steinheil 16, which is close to the meeting place for eating, drinking and talking.
It will start at 19:00 and you can join anytime depending on your arrival time.

Saturday evening the official social event will take place in the restaurant Munich Flair, which is directly below the meeting room in the same building.

Note, that lunches on Saturday and Sunday as well as the social event are included in the registration fee.


Photos from EuroTcl 2014

Program Schedule

19:00 Come Together at the Steinheil 16
09:00 10:00 On-site registration, Meet and Greet
10:00 10:15 Welcome
Session: Tcl and databases
10:15 11:00 Richard Hipp SQLite As An Application File Format
11:00 11:45 Franco Violi Large scale deployment of a legacy application using tclrad
11:45 12:15 Axel Nagelschmidt Still TCL after all these years ...
12:15 14:00 Lunch(Italian restaurant)
Session: Tcl and hardware
14:00 14:45 Uli Ender Using Tcl for simple hardware-interfaces (Additional material)
14:45 15:15 Holger Jakobs Monitoring temperatures of central heating system
15:15 16:00 Coffee break
Session: Tcl on new platforms
16:00 16:45 Christian Werner Tcl/Tk on Android
16:45 17:15 Arnulf Wiedemann NtkWidget
17:15 18:30 All Discussion about AndroWish and Tcl/Tk on new platforms
18:30 19:30 Ad-hoc presentations by Alexandru Dadalau, Konrad Schwarz
19:30 Social Event (Munich Flair)
Session: New stuff for Tcl
09:30 10:15 Christian Gollwitzer Introducing the numeric array extension VecTcl
10:15 11:00 Harald Oehlmann msgcat 2.0 with TIP # 412: Dynamic Locale Changing with On-Demand File Load
11:00 11:45 Harald Oehlmann Core Socket code for IPV6 finally reached Windows platform
11:45 13:00 Lunch (buffet in the meeting room)
13:00 13:45 All State and Future of Tcl. Discussion with TCT member Donal Fellows
13:45 14:30 Ad-hoc presentations by Steve Redler, Florian Murr, Rene Zaumseil
14:30 15:00 Conclusion and Good bye

Talks and Presentations

Harald Oehlmann
Christian Gollwitzer
Uli Ender
Franco Violi
Richard Hipp
Holger Jakobs
Christian Werner
Harald Oehlmann
Axel Nagelschmidt
Harald Oehlmann
msgcat 2.0 with TIP # 412: Dynamic Locale Changing for msgcat with On-Demand File Load
The core package "msgcat" solves the task to localize TCL applications.
When designing a trilingual web-site with Rivet, I was not able to change the locale (e.g. user language) after package load.

First TIP #399 was developed and voted yes, which allows to preload multiple languages.

This is sufficient for the upper case but not satisfactory for TCL in general. Specially the clock command has a high demand on msgcat, which is currently implemented by internal tweeks.

Thus, TIP # 412 was developed and implemented having a good set of features.
  • dynamically load and unload locales
  • all operations also possible only on package level
  • command to check if a translation is present (clock)
  • callback on locale change (asked by aku)
  • callback on required mcload (to support other sources like db)
The aim of the talk is also to get input about a reasonable design of msgcat:
  • is the proposed tip wise
  • should a compatibility mode be included
  • how to deal with tcloo (I have no idea)
Christian Gollwitzer
EIAS and numerical math - introducing the numeric array extension VecTcl
Numerical analysis is a topic covered by several extensions[1,2,3,4,5] and two pending TIPS[6,7].
In this presentation, a new design of a numerical analysis package is presented, which focuses on a seamless integration with the Tcl language[8].
The array type is implemented by a new Tcl_ObjType, numarray, which is interchangeable with nested lists. The user interface is given by a single associated command vexpr, which compiles and executes a Matlab-like language. The language and its current implementation support integral, floating-point and complex scalars, vectors, matrices and higher-rank tensors.
The compilation of vexpr expressions into Tcl procs with calls to optimized core commands implemented in C provides both flexibility and sufficient performance in most cases.
Larger systems of scientific computational software can be built upon this architecture without sacrificing neither performance nor interoperability.
  1. narray
  2. NAP
  3. blt::vector
  4. tcl-tna
  5. tensor
  8. VecTcl https://
Uli Ender
Using Tcl for simple hardware-interfaces
Todays computers no longer have "userports, centronics interfaces etc." to get a simple connection to selfmade circuits.
If you are lucky you can connect a serial interface adapter to your USB-connector and use the handshake lines for digital input and output.

In my talk I want to show some applications using very simple interfaces and to demonstrate, how to control them with Tcl.
These interfaces are enabled e.g. simply by photo-resistors that detect light intensity of an area of the computer display or the microphone to detect sound pulses of an RC-oscillator.

Franco Violi
Large scale deployment of a legacy application using tclrad
The talk focuses on the structure of tclrad, a multi rdbms rad system entirely written in Tcl.

It shows how this technology can deploy applications to over hundreds of customers in a multi platform environment using multiple tdbc and/or native dbms interfaces without any code change.

Richard Hipp
SQLite As An Application File Format
Most programmers know about SQLite, the embedded database engine that is perhaps the world's most famous spin-off from Tcl. But many people view SQLite as just another database, as a light-weight (and low-powered) substitute for PostgreSQL and/or MySQL. That is an inaccurate characterization of SQLite. SQLite is not intended as an enterprise data depot, but rather as an application file format. SQLite does not compete with PosgreSQL; SQLite competes with [open].

This talk will examine the difference between the intended use of SQLite versus client/server databases such as PostgreSQL, MySQL, SQL Server, Oracle, etc., and give examples of where SQLite is useful and where those other database engines might be a better fit. The concept of "application file format" will be defined and examined, and it will be argued that SQLite makes a superior application file format in many cases.

The objective of this talk is to give attendees new insights into how SQLite can aid in building ever more powerful applications in Tcl and Tcl/Tk.

Holger Jakobs (WiP)
Monitoring temperatures of central heating system in large buildings using RaspberryPi, Tcl and SQLite.

It's about measuring and monitoring temperatures with a Raspberry Pi, programmed mostly in Tcl, which is included and pre-installed in Raspbian, the Raspberry Pi version of Debian. One little daemon in Tcl collects the values from all connected sensors on a regular basis and writes them to an SQLite database, plus is makes the current values available for other processes via TCP. Another little daemon in Tcl serves a whole web page with all temperatures which are updated regularly. It gets its data from the first daemon.

Plans are to write another server in Tcl which collects data from a whole bunch of Raspberry Pis distributed across a building complex (like a group of apartment buildings, a campus or the like), saving the data to an SQLite database, presenting them on an electronic dashboard grouped in panels. The monitoring will also include automatic alarms if temperatures leave certain ranges.

The overall goal is to make sure that centralised heating system run smoothly and to inform facility managers promptly, should a problem arise. By comparing temperatures, finding the problem is supposed to be a lot easier. Another benefit would be to accumulate knowledge about how much energy is being consumed where and at what times. This way, the controlling of the heating system can be optimised by hydraulic calibration in order to save enery and cost.

Christian Werner
Tcl/Tk on Android
Christian will talk about AndroWish.
Harald Oehlmann
Core Socket code for IPV6 finally reached Windows platform
IPV6 requires that a socket open tests multiple sockets. This is a report how this was implemented for async sockets on the windows platform.
Axel Nagelschmidt
Still TCL after all these years ...
How i learned to stop worrying and to rely on frameworks, building blocks and tests. A short historical overview how i used TCL through the ages and where it helped me to successfully build industry reliable working software tools.