Tuesday 28

What's New in Cincom Smalltalk

9:00 am - 10:00 am

By: Alan Knight. Alan Knight is the technical architect for Cincom Smalltalk and lead on the open source GLORP project for object-relational mapping. Within Cincom he has been involved with many aspects of the VisualWorks implementation, including web serving, Store, deployment, and introducing Subsytems to control image startup and configuration. Before joining Cincom he was chief architect for the TOPLink family of products, and a member of the Sun expert groups on EJB 2.0 and JDO. He is co-author of Mastering ENVY/Developer (Cambridge, 2001) and has written and spoken at conferences extensively. He lives in Ottawa, Canada.

This talk will review some new features of interest in the current Cincom Smalltalk release, preview upcoming features planned for future releases, and talk about future plans in general. We will specifically cover the larger new components including ObjectStudio 8, Widgetry, and the new Macintosh VM. Other, smaller features of interest will also be explored in some technical detail. This includes, among others, shadow compilation, internationalization, security and networking improvements, C connectivity, scripting support and as many others as time will permit.

Squeak VM Performance

10:30 am - 11:15 am

By: Bryce Kampjes. Bryce Kampjes has worked on a range of commercial systems from financial services to telemetry. Over the last few years he's been writing Exupery, first as an exercise in designing and building complex software, then later as a project that's slowly becoming practical.

Squeak's VM provides good performance from a relatively simple implementation relying on a few key optimizations. This talk will focus on these optimizations and modern hardware to show why the VM performs as it does, what to be careful about for performance, and what the limits on interpreter performance are.

Calling Java - The JNIPort framework

11:15 am - 12:00 pm

By: Joachim Geidel. Joachim Geidel works as a senior consultant for blueCarat Consulting GmbH, Cologne, Germany. He has been using Smalltalk for development in academic and business projects since 1990.

Chris Uppal's JNIPort framework enables using Java class libraries from Smalltalk, thus making a large amount of components available to Smalltalk developers. It was originally developed for Dolphin Smalltalk and is now also available for VisualWorks. We will look into the design of JNIPort, the techniques used for its implementation, and how it can be used.

Expressive Testing and Code for Free

13h30 pm - 14:30 pm

By: Tim Mackinnon. Tim has been programming with objects for 20 years, however it was when he heard Kent Beck describe Extreme Programming at OOPSLA 98 that he also found a process that balances quality, delivery and happiness. Tim was a member of the OTI team that created UML Modeler for VA Smalltalk, and followed this by creating the XP development team at Connextra where he invented the techniques: Mock Objects, Heartbeat retrospectives and Gold Cards. He followed this at ThoughtWorks where he mentored many successful corporate XP teams and conceived further agile techniques like Progress Bar graphs and Futurespectives. Tim is now the founder of Iterex Ltd, a company specialising in Iterative Excellence. Look out for their forthcoming Iterex Professional software.

While unit testing was popularised through Smalltalk and SUnit, 13 years later the unit tests in many common libraries (some of them in Smalltalk) are difficult to read, inexpressive in their intent, and when failures occur they require tedious debugging. Smalltalk is much more powerful than this, and I will present a simple way of writing tests using a family of first class object assertions that are capable of clearly describing their intent, and more importantly, they fail clearly, communicating exactly what went wrong.

By combining these constraining assertions with the Test Driven Development approach, it enables you to write tests that also explore the required protocol of associated objects. The resulting assertions can then generate the code required for development of the next layer of your application.

This talk will present the test Constraints that I have identified and used so far in my projects, and explain how they can be combined to create useful test failures. I will then demonstrate a simple TDD session using the additional SMock framework and show how constraints and expectations can generate code stubs for continued development.

Extreme Validation

14:30 pm - 15h00 pm

By: Leandro Caniglia has been working the last 14 years as a Smalltalk consultant for several companies in Argentina, Brazil, Chile and the US. He was also professor at the University of Buenos Aires for more than 20 years, and worked as a researcher in the CONICET, the national office for scientific research in Argentina. He founded SUGAR, the Smalltalk User Group of Argentina and the MathMorphs Squeak User Group. He has a Ph.D. in Mathematics and has published on Computational Algebraic Geometry. In 2001 Caniglia joined Caesar Systems where he currently serves as a solution Architect and development lead for company.

SUnit Validation was originally conceived by Andres Valloud as a framework for instantaneous feedback on data consistency in the GUI. The framework brilliantly solves the classical problem of handling user inputs in the event that they do not make sense in the model.

As envisioned initially, validators factor out repetitive checks that are usually found in the presentation layer. However, the experience has shown that validators are extremely helpful identifying and solving a wide range of problems.

The talk will summarize the experience of introducing heavy validations in a simulation system that has been successful for more than ten years in the Petroleum Industry. That includes new uses of the framework for the GUI, as well as applications to other areas as model diagnosis, validation of data imported from (and linked to) external sources, version upgrading, naming services, object deletion, SUnit testing, debugging support and automatic source code QA. We will explain how the original framework has been extended and describe the patterns that resulted from its application. Additionally, we will report how all of this has contributed to increase significantly the user experience and why the framework has shown beneficial for programmers too.

Using Eclipse as a Smalltalk Plugin

3:30 pm - 4:15 pm

By: Johan Brichau. Johan Brichau is a postdoctoral researcher at the Département d'Ingénierie Informatique (Departement of Computer Science and Engineering) of the Université catholique de Louvain in Louvain-la-Neuve, Belgium. He received a PhD degree in Computer Science in 2005 from the Vrije Universiteit Brussel, where he also obtained his Licentiate (Masters) degree in Computer Science in 1999. Throughout his research, Johan has maintained a strong interest in (logic) metaprogramming and reflective techniques in the context of advanced software engineering tools as well as programming languages. More specifically, he has applied logic metaprogramming to pointcut languages in AOSD, the implementation of program generators and the verification of software applications.

The Smalltalk environment is endowed with a wide variety of software reasoning tools such as SOUL, MOOSE, CodeCrawler, IntensiVE, etc. These tools enhance the Smalltalk development environment with the ability to query, investigate, measure and document Smalltalk programs using advanced research-oriented techniques. Although these tools are often not specifically targeted at Smalltalk programs, their existence in the Smalltalk environment often complicates their application to reason over code implemented in languages other than Smalltalk. It is, for example, undesirable to reimplement Java parsing and analysis tools in Smalltalk, especially because there already exist many such tools in Java development environments. Similarly, it is not desirable to reimplement the existing Smalltalk tools in a Java environment.

In our work, we are applying some of the above-mentioned tools for reasoning over Java code. To this extent, we have developed an interoperability between the Smalltalk and Java environments, called JavaConnect. JavaConnect is a Visualworks Smalltalk library that allows a seamless interaction between Smalltalk and Java, much like JNIPort. A Smalltalk application can access any Java object and send messages to it, just as if it were a Smalltalk object. JavaConnect was developed to enable SOUL to reason over Java programs, while retaining the possibility of using many of the available Java libraries and utilities that exist for this purpose. For example, we use the Soot static analysis framework and the Eclipse JDT in Smalltalk because JavaConnect makes these Java utilities and libraries available as Smalltalk libraries. In this talk, we demonstrate how JavaConnect enables advanced Smalltalk development tools to reason over Java code that lives in an Eclipse workspace.

Ballooning in Cairo

4:15 pm - 5:00 pm

By: Travis Griggs. Travis Griggsself styled "Objologist"works for Cincom Systems, Inc. Travis has spent 16 years (since 1991) using Smalltalk to make tools that make end users lives easier, ranging from optical food sorting equipment to nuclear fuel design automation software. Now days, he's on a mission to continue making the Cincom Smalltalk IDE the best programming toolset around. When not overwhelmed with improving tools and graphics and all things Cincom Smalltalk, he does his best to contribute to various open source projects, some in Smalltalk, some not.

The Cairographics Project (www.cairographics.org/) is an OpenDesktop project that is "...a 2D graphics library with support for multiple output devices. It's gaining momentum rapidly as a cross-platform way of doing modern, anti-aliased graphics for multiple back ends." Bindings exist for many different languages and toolsets, including GTK+, Ruby, and Python. This presentation is an overview of a language binding for Smalltalk, specifically VisualWorks(r). Attendees will gain a general understanding of the general drawing model and techniques Cairo empowers, how it's mapped in Smalltalk, as well as some of the techniques used to interface with the library.

Managing Business Processes with Smalltalk

5:00 pm - 5:45 pm

By: Janko Mivšek. Janko Mivšek, a Smalltalker since 1995, founder of Eranova d.o.o, author of AIDA/Web web framework, maintainer of Swazoo web server and passionate contributor to Smalltalk community is currently using Smalltalk for developing complex business web based systems for management of business processes in many industries, from gas, logistics to pharmaceutical.

Business Process Management (BPM) is currently a very hot topic because it promises to close the barrier between business and IT people by introducing a common language: business processes. There is already a common standard for modeling processes BPMN which also enables them to become executable by computers. With that in mind we started developing our own BPM execution engine in Smalltalk, which is executing processes modeled in BPMN. This engine as part of AIDA/Web based portal BiArt is already running a concrete business process of calibration of measures on Slovenian gas pipeline and this web application will be demonstrated during the presentation.

Sport, the Smalltalk portability library

5:45 pm - 6:30 pm

By: Bruce Badger. Bruce is an enthusiastic technologist and the Founder of OpenSkills.org, a global non-profit association of professional individuals. His strong technical leadership skills have contributed to his success of a wide range of IT projects, over a period of more than 25 years. He has built and deployed many systems and libraries over the past 10 years, preferring to develop software using Smalltalk, a pure Object Oriented language. Bruce is currently focusing on the evolution of the services market as Free and Open Source software is increasingly adopted. He has written a number of Open Source libraries, and is currently engaged with building the support systems for the OpenSkills association.