Seventh ESUG Smalltalk Summer School
August 30 - September 3
Gent, Belgium
| 
 8.45  | 
 Welcome introduction  | 
| 
 9.00 - 10.00  | 
 D1: Design Fest - MOO Design  | 
| 
 10.00 - 10.30  | 
 Coffee break  | 
| 
 10.30 - 11.30  | 
 VisualWorks 5i demo  | 
| 
 11.30 - 12.30  | 
 T1: VisualWorks 5i and Opentalk   | 
| 
 12.30 - 14.00  | 
 Lunch  | 
| 
 14.00 - 16.00  | 
 T2: Pocket Smalltalk  | 
| 
 16.30 - 16.30  | 
 Coffee break  | 
| 
 16.30 - 17.30  | 
 D2: Design Fest  | 
| 
 17.30 - 18.30  | 
 D3: Numerical Method  | 
| 
 18.30 ...  | 
 *Guided Tour of Gent* (by Delaware)  | 
| 
 9.00 - 10.00  | 
 D4: SmallScript 3D  | 
| 
 10.00 - 10.30  | 
 Coffee break  | 
| 
 10.30 - 12.00  | 
 T3: Building highly configurable and adaptive frameworks  | 
| 
 12.00 - 12.30  | 
 D5: Duploc, a tool to detect and visualize duplicated code  | 
| 
 12.30 - 14.00  | 
 Lunch  | 
| 
 14.00 - 16.00  | 
 T4: The Classification Browser  | 
| 
 16.00 - 16.30  | 
 Coffee break  | 
| 
 16.30 - 17.30  | 
|
| 
 17.30 - 18.30  | 
Discussion on future browsers | 
| 
 20.00  | 
 Special Dinner  | 
| 
 9.00 - 10.00  | 
 D7: Software in the Next Millennium  | 
| 
 10.00 - 10.30  | 
 Coffee break  | 
| 
 10.30 - 12.30  | 
 T5: Advanced Topics in ENVY  | 
| 
 12.30 - 14.00  | 
 Lunch  | 
| 
 14.00 - ???  | 
 *Visit to Bruges* (by Cincom)  | 
| 
 9.00 - 10.00  | 
 D8: Gemstone products  | 
| 
 10.00 - 10.30  | 
 Coffee break  | 
| 
 10.30 - 12.00  | 
 T6: Ultra Light Client  | 
| 
 12.00 - 12.30  | 
 D9: ObjectStudio on the Middle Tier  | 
| 
 12.30 - 14.00  | 
 Lunch  | 
| 
 14.00 - 16.00  | 
 T7: Extreme Programming  | 
| 
 16.00 - 16.30  | 
 Coffee break  | 
| 
 16.30 - 17.30  | 
 D10: Design Fest  | 
| 
 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  | 
| 
 12.00 - 12.30  | 
 D11: CodeCrawler  | 
| 
 12.30  | 
 Lunch  | 
 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.
 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.
 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.
 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