Program

Seventh ESUG Smalltalk Summer School
August 30 - September 3
Gent, Belgium

Monday August 30th

8.45

Welcome introduction

9.00 - 10.00

D1: Design Fest - MOO Design
Ivan Tomek, Acadia University, Canada

10.00 - 10.30

Coffee break

10.30 - 11.30

VisualWorks 5i demo
Simon Townsend, Objectshare, UK

11.30 - 12.30

T1: VisualWorks 5i and Opentalk
Roland Wagener, Georg Heeg Objektoriente Systeme, Germany

12.30 - 14.00

Lunch

14.00 - 16.00

T2: Pocket Smalltalk
Carsten Härle, Germany

16.30 - 16.30

Coffee break

16.30 - 17.30

D2: Design Fest

17.30 - 18.30

D3: Numerical Method
Didier Besset, Switzerland

18.30 ...

*Guided Tour of Gent* (by Delaware)

Tuesday August 31st

9.00 - 10.00

D4: SmallScript 3D
Ernest Micklei, ECL, The Netherlands

10.00 - 10.30

Coffee break

10.30 - 12.00

T3: Building highly configurable and adaptive frameworks
Michel Tilman, Unisys, Belgium

12.00 - 12.30

D5: Duploc, a tool to detect and visualize duplicated code
Matthias Rieger, University of Bern, Switzerland

12.30 - 14.00

Lunch

14.00 - 16.00

T4: The Classification Browser
Koen De Hondt, MediaGenix, Belgium

16.00 - 16.30

Coffee break

16.30 - 17.30

D6: SilverMark Testing Mentor

17.30 - 18.30

Discussion on future browsers

20.00

Special Dinner

Wednesday September 1st

9.00 - 10.00

D7: Software in the Next Millennium
Andy Berry, UK

10.00 - 10.30

Coffee break

10.30 - 12.30

T5: Advanced Topics in ENVY
Joseph Pelrine, Daedalos Consulting AG, Switzerland

12.30 - 14.00

Lunch

14.00 - ???

*Visit to Bruges* (by Cincom)

Thursday September 2nd

9.00 - 10.00

D8: Gemstone products
Martial Doré, Gemstone, France

10.00 - 10.30

Coffee break

10.30 - 12.00

T6: Ultra Light Client
Sanjay Madhavan, OTI, Switzerland

12.00 - 12.30

D9: ObjectStudio on the Middle Tier
Sherry Michael and Thomas Haaks, Cincom

12.30 - 14.00

Lunch

14.00 - 16.00

T7: Extreme Programming
Kent Beck, Daedalos Consulting AG, Switzerland

16.00 - 16.30

Coffee break

16.30 - 17.30

D10: Design Fest

Friday September 3rd

9.00 - 10.00

>ESUG general assembly and discussion

10.00 - 10.30

Coffee break

10.30 - 12.00

T8: VisualAge for Smalltalk - Tips and Tricks
Greg Hutchinson, Object Oriented Ltd., Switzerland

12.00 - 12.30

D11: CodeCrawler
Michele Lanza and Stephane Ducasse, University of Bern, Switzerland

12.30

Lunch


Tutorials

T1 - VisualWorks 5i and Opentalk
Roland Wagener, Georg Heeg Objektoriente Systeme, Germany
OpenTalk is the next generation of Smalltalk messaging, build into VisualWorks5i. It is an extensible, pluggable development architecture, initially supporting a pure Smalltalk to Smalltalk messaging model. It is user-expandable, and will support disparate protocols such as COM/DCOM and RMI. OpenTalk allows for full bore remote development (browsing and debugging of code).
The presentation consists of an introduction and a demo of OpenTalk with VisualWorks5i.

T2 - Pocket Smalltalk
Carsten Härle, Semior Consultant, Germany
Pocket Smalltalk is a Smalltalk implementation for the Palm Computing platform. It has a 24Kb VM and full access to the Senior. The talk discusses the implementation and gives programming examples.

T3 - Building highly configurable and adaptive frameworks
Michel Tilman, Senior System Architect, Unisys Belgium
Building flexible applications in a heterogeneous world of ever-changing needs requires appropriate techniques. Metadata (data about data) and active-object models (explicit object models that are interpreted at run-time) are increasingly applied in various application domains. By means of small examples and a larger case study, we aim to convince the audience that these reflective systems are very useful (in fact, needed), and that they are easier to build than is commonly thought. We present techniques that work and emphasize potential problems that the developer should be aware of.

T4 - The Classification Browser
Koen De Hondt, MediaGenix, Belgium
The Classification Browser is based on a general model to organize software entities, called the software classification model. Classifications can be considered enhanced categories with which classes can be grouped in arbitrary, user-defined ways. Apart from the support for organizing software entities, the Classification Browser also provides integrated support for browsing senders and implementers, and for browsing acquaintance relationships. Classes and methods can be viewed in different ways, so that the developer can choose the most appropriate way of browsing for a given browsing/development activity. The browser can be used for reverse engineering; it is able to produce UML diagrams. On top of that, the Classification Browser can be used to manage software evolution.

T5 - Advanced Topics in ENVY
Joseph Pelrine, Daedalos Consulting AG, Switzerland
As good a tool as ENVY is, the documentation leaves something to be desired. This is all the more evident when the job to be done is extending the ENVY environment with additional functionality. This code-intense course provides an in-depth look at the ENVY system API, uncovers some interesting things, and provides numerous examples of tools and scripts which can immediately be used to increase the productivity of an ENVY site.

T6 - Ultra Light Client
Sanjay Madhavan, OTI, Zürich, Switzerland
The IBM VisualAge Ultra Light Client (ULC) is a new architecture to address the fat client problem. The principal idea is to run applications on a centrally controlled application server. Only the presentation part of an application is run on the client's desktop. The presentation part is implemented by a universal user interface engine (UI Engine). ULC produces thin, easily distributable, low bandwidth client applications. The presentation will consist of an introduction to the ULC architecture and a demo of building and running ULC Smalltalk applications.

T7 - Extreme Programming
Kent Beck, Daedalos Consulting AG, Switzerland

T8 - VisualAge for Smalltalk - Tips and Tricks
Greg Hutchinson, Object Oriented Ltd., Switzerland
This tutorial will focus on some useful tips and tricks to help developers make their coding easier and more reusable. It will also explain some of the lesser know functionality provided in Visual Age for Smalltalk.
The Eavesdropper Pattern: Occasionally the widgets that are supplied with your favorite dialect of Smalltalk do not have all the functionality that you may desire. Usually your choices are to subclass the supplied parts, or decorate (or wrap) the supplied parts. The eavesdropper pattern is another alternative to the above without the drawbacks of either. The presenter will explain and illustrate the use of this pattern in several working code examples to add useful functionality to existing VA Smalltalk widgets.


Short Presentations and Demonstrations

Experience Reports

D1 - Design Fest
Ivan Tomek, Acadia University, Canada
A MOO is a client-server text-based virtual environment emulating real world features such as places (rooms, building, etc.), actors (people, machines), and objects and combining them in a virtual universe. It allows its users to build new locations, instantiate objects, navigate in the virtual universe, communicate with others, and extend the environment by creating new object templates. MOOs have been shown to be useful in education and in computer supported collaborative work, and they are very popular as gaming environments. In a sense, virtual environments can be viewed as a generalization of existing networked environments that provide new forms of scoping, communication, navigation, customizability and extendibility. Up to now, however, they have not proved as popular as their potential would suggest. This is, among other reasons, probably due to their outdated designs and it is the purpose of this proposal to suggest an initial specification and work out a suitable design. The implementation could eventually become an exciting new environment that would be of interest in many applications, among them as a meeting place of the Smalltalk community.
Implementing such an environment in Smalltalk could be an interesting proof of the strength and viability of Smalltalk. It is hoped that the fact that the environment would be user-extendible in Smalltalk could lead to increased popular awareness and interest in Smalltalk.

D3 - Smalltalk implementation of selected numerical methods
Didier Besset, Switzerland
Numerical data analysis seems largely ignored by most Smalltalkers. It turns out, however, that implementing numerical method in Smalltalk is very easy because of the large potential for mathematical objects to be mapped into computer objects. In this talk, we shall present a general framework for computation by successive approximations. Then, we shall present numerous examples of concrete implementation of this framework: zero finding, integration, finding the eigen values of a matrix, least-square fit. As a side exercise, we shall study vector and matrix operations and show how to implement matrix LUP decomposition (to solve linear systems of equations and invert a matrix).
Author: Didier Besset has a Ph.D. in experimental high-energy physics. Since 1987, he has been using Smalltalk to develop large applications using statistical analysis of data as a basis for decision support. He now is working as an independent consultant.

You can download the presentation and example code (in pdf).

D4 - SmallScript 3D
Ernest Micklei, ELC, The Netherlands
It contains a set of classes for representing all kinds of 3D objects, operations on these objects and some nice exporting facilities for rendering them using non-Smalltalk programs such as POVRay, Quake,VRML or a simple Direct3D viewer.
In this demo, I would like to show some of these scripts and scenes and of course a detailed view on some interesting objects and concepts used (Smalltalk Interfaces, Kind Dispatching, Optimizing Collections ... ).

You can see the presentation if you have a VRML-plugin in your browser.

D7 -Software in the next millenium
Andy Berry , UK
It's just over fifty years since the first computer program was written. Since then, much has changed but much has remained the same. For example, the first program was swiftly followed by the first 'bug' - just like every program written today. Object orientation (and, of course, Smalltalk) was one of the 'drivers' for windowing systems which is one of the most significant developments in the first half-century of software.
No-one can predict the future and I'm not going to try.
What I will try to do is provide a historical context for software development (such as the Cold War and the internationalization of business) and then highlight some outstanding challenges that you may have to address in the first few years of the new millennium.
Some of the issues will be obvious (such as what is next in user interfaces and why is voice recognition so difficult) and some less so (for example, how can we achieve a step increase in software productivity).
My aim is to be thought-provoking and even downright controversial.

Research aspects

D5 - Duploc
Matthias Rieger, University of Bern, Switzerland
Duploc is a tool to detect duplication in source code. Duploc compares source files line by line using simple string matching and displays the results in a two-dimensional matrix, where each dot stands for an exact match between two lines. Thanks to image reduction techniques, Duploc can display matrixes of arbitrary size, the only restriction being the memory capacity. Duploc also produces textual reports about the duplication found.
Duploc is implemented fully in VisualWorks2.5/3.0 and is distributed under the GNU license from http://www.iam.unibe.ch/~rieger/duploc.

D11 - CodeCrawler
Michele Lanza and Stephane Ducasse, University of Bern, Switzerland
CodeCrawler is a tool for reverse engineering of (large) object oriented systems. It combines graphs and metrics to achieve a graphical display of source code. The generated graphs are interactive and serve as a base for information extraction which is useful for the intuitive understanding and the detection of problems of the displayed system.
CodeCrawler is based on MOOSE, a language-independent metamodel developed at the university of Bern, Switzerland. It is part of the European FAMOOS project. The display of graphs is done using the functionality's of HotDraw, a graphical framework developed by John Brant. CodeCrawler is written in Smalltalk using the VisualWorks 3.0 environment.

Product Presentations

D6 - Silvermark Testing Mentor

Smalltalk provides an extremely productive development environment. Despite that it is impossible to ensure delivery of defect free code without first testing it. Unfortunately, testing manually is a painstaking, expensive and error prone process. SilverMark's Test Mentor is the only automated testing solution developed specifically for VisualAge Smalltalk and VisualWorks that automates test creation and execution at the GUI level, as well as testing at the model level. This presentation will briefly describe Test Mentor focusing on how best to apply it to the development process based on experiences deploying it on many major Smalltalk development projects.

D8 - Gemstone products
Martial Doré, Gemstone, France

D9 - ObjectStudio on the Middle Tier
Sherry Michael and Thomas Haaks, CINCOM
Armed with an encapsulation of industry proven Transaction Processing Middleware and architectural changes to facilitate deployment as an Application Server, ObjectStudio is poised to provide an environment for building complex, n-tier, component oriented, enterprise class systems. This presentation will discuss the ObjectStudio Transaction Framework, synergies with our Smalltalk Request Broker, our Internet Client connectivity, and the initiatives currently underway to re-architect ObjectStudio as an Application Server on both the UNIX and NT platforms. We will conclude with a demo of our initial release, now in the final stages of testing, running on Windows NT and enabled by BEA Tuxedo.