Home Page - http://www.sics.se/~emmanuel/
In summary, scripting and Tcl have changed my programmer's life. There is before and after. I am a researcher and have been involved in numerous prototyping projects where we show people how to use the technology that we are focusing on (multi-user VR).
Before, we were coding horrible applications in C, it tooks months for a pale result. Then, I interfaced Tcl to our toolkit and now we can do in weeks what took us months before.
If you are interested, have a look at DIVE http://dive.sics.se/
. The page has already been outdated for several years, but we are still working on the software behind it.
I have changed research area since I last wrote something in here, but am still using Tcl for most of my work. I have made a library called the TIL
] available for download and hacking. I am also making available some libraries on my home page [2
], feel free to use them, they are BSD licensed.
I appear here and there in this Wiki, usually as EF
. Here are the places where I made some sort of significant contribution.
- The DIVE page, though initiated by someone else, feels like mine, since I am the architect behind the DIVE/Tcl "revolution".
- The TIL is my way to give back years of satisfaction to the Tcl community. The library contains plenty of what I hope is useful code.
- TAX Revisited is my own take on a revisited minimalist XML parser.
- I have made a proper package  of e: the tiny editor for eTcl .
- outlog  rotates log file automagically, you'd better off picking up the (more up to date) implementation in the TIL.
- Skype and Tcl is one my latest additions, I hope to get this growing as I go on with my experiments.
- I extended a bit htext.
- The LongLat Converter will help you out when converting between all the different ISO formats for Longitude and Latitude.
- DNS Library Revisited is now part both of the tcllib and the TIL. Sadly these are two slightly diverging versions and out to merge at some point.
- Java UTF Socket Communication says almost it all. And while we are into Java, this  will help you finding where it is installed!
- This debugging helper  will help you watching the creation of global variables (in sub-namespaces).
- The winapi library is an (incomplete) attempt to provide a low-level layer to access the Windows API.
- The Batch Changing Modification Time of Pictures is a little script that will use JPEG EXIF data to re-date the files according to the EXIF DateTime fields.
- A(Modified)(Simple)Meter is an improvement over A(Simple)Meter from the french wiki. I felt like I had done enough improvements to give it a life on its own, and that it would benefit to more people by having a space here.
- make library
I also make available a number of libraries under a liberal BSD license. For the latest list you should look at efr-lib within my new Google Code
project. At the time of writing, these libraries are:
The picbrowser library implements a new Tcl/Tk widget for the navigation of file hierarchies that contain a lot of pictures. During browsing, all pictures within a directory will be shown as thumbnails. Other files will be shown with standard icons.
The dragger library implements the back end support for drag and drop of icons, i.e. Tk widgets. The library will take care of creating the dragged icon and of the animation and will deliver a callback when the icon is dropped.
The flexupdate library aims at minimising the number of calls to the infamous update command by issuing calls to the command at regular intervals only.
The splash library implements a new Tcl/Tk toplevel widget that aims at showing one (or more) splash windows during the initialisation phase of an application or any other lengthy operation.
The winapi library is a Tcl library that offers access to the low-level Win32 API. The philosophy of winapi is to give the programmer total control over the calls being made, at the expense of longer code. winapi attempts to mimick as closely as possible the Windows API: it uses names and naming conventions that are similar, offers Tcl commands that have the same order of arguments, represents flags and masks using the same names as their Windows constants counterparts and represent structures by lists of even length containing the keys and values of the structures.
The notifier library implements a new Tcl/Tk widget that presents itselfs as an (animated) notifier that pops up from one of the side of the screen in a direction that can be chosen. The notifier is a new toplevel and it is up to the caller to fill it in with content.
The osd library implements a new Tcl/Tk widget that presents itselfs as an (animated) notifier that pops up from one of the side of the screen in a direction that can be chosen. The osd features an image and an informative message.
The fullscreener library forces an existing window from any Windows application to remain on top of a fullscreen blank frame, which will ensure the presence of one and only one window on the screen.
The floatingbbar library implements a new Tcl/Tk widget that presents itself as an (animated) floating button bar that pops up from one of the side of the screen in a direction that can be chosen. The floatingbbar features any number of buttons.
The gestures library implements a low level Tcl service for gesture recognition. Mouse and keyboard events are pushed into the service, which will callback interested parties whenever a matching gesture has been recognised. The library does not draw on the screen, this is left to the caller.
winop is a library that attempts to provide a unification layer for managing and manipulating windows. The library provides equivalent for a number of the 'wm' and 'winfo' commands, while being able to control both regular Tk applications and foreign Windows applications.
The zshader library is a utility library that will allow to shade (fade) away items on a Zinc canvas. The shading effect is attained through a stepwise modification of the alpha value of groups, which makes this library Zinc specific.
The zlineedit library provides facilities for the interactive edition of polylines on a Zinc canvas. The library provides facilities for both the creation of polylines and for the amending of created polylines. When all operations are allowed, the library will arrange for users to move, remove and add vertices and to move lines by clicking and dragging with the mouse.
The updater is a library that aims at facilitating the auto-update of software over the Internet. It will poll on demand or regularly a location and will download any newer version posted to that location to a local file. Newer versions are detected through MD5 digests, which values are posted along the Internet location.
The make library has a twin goal: providing a pure-Tcl approach to expressing dependencies and rules for their resolution (as in makefiles) and automating the process of generating (Windows) binaries that are branded with your data.
The wprocess library is a Tcl library that provides an API compatible with the process library of the TIL but acts without the help of any external application. It only works on windows.
The event library provides Tk-like eventing facilities for Tcl processes.
Nowadays, I also have started some activity on the french wiki [8
]. I will probably keep most of my contributions here though.