Thursday, November 13, 2008

Smalltalks 2008, Thursday notes

Whoa, it's been an almost 20 hour day already, and I had not been able to sleep last night anyway. Organizer jitters, most likely. Here are some notes on Thursday's happenings at Smalltalks 2008.

The conference's opening was again in the hands of Hernán Wilkinson. The main point was that this event happens because our community shares the enjoyment of doing what we do. This goes from the UAI offering the conference's venue, to the sponsors offering the prizes for the contest (the finals are tomorrow!), to Diego Roig-Seigneur donating an original August 1981 Byte magazine to be given to the best presentation in the conference. There were plenty of jokes, and I was the receiver of one :)... since I will be the referee in the coding contest's finals, I became the infamous William Boo! We shall see is justice is served on the final round now...

Monty's keynote showcased a complete list of successful applications (where successful is defined as 10+ years in production) written in Smalltalk that have a profound effect in our lives whether we are aware of them or not. Besides OOCL's container shipping application, Progressive's auto insurance rating, Adventa's chip manufacturing application, Key Technologies' food sorting machinery, Florida's power utility call center running in a state that goes through hurricanes every year and many others that I do not recall, there was again mention of one that I remember fondly... JP Morgan's Kapital.

I really enjoyed Dan Rozenfarb's talk on his expert system to handle patients at a medical call center. He went through many of the attempts that did not work, and that made the final achievements of e.g.: 99.3% correct seriousness evaluation all the more impressive (if the call is incorrectly assessed, then the software can suggest not to send an ambulance when one is definitely needed).

Next was a follow up on Zafiro by Andrés Poncelas. Zafiro is InfOil's application framework, which was presented at Smalltalks 2007. With the new improvements, InfOil uses Zafiro as a means to easily express domain objects and their relationships in their applications, which are used to manage a significant fraction of all the oil and gas produced in Argentina.

After lunch, we saw Gabriela Arévalo's presentation on Moose, an application designed to enhance the way in which developers can obtain a high level view of software they do not yet know intimately. It was interesting to see how the 7 +/- 2 rule applies everywhere, even to the diagrams Moose produces --- for example, one can use colors in Moose to represent different metrics obtained from the code, but after 5 colors they become difficult to understand because it is difficult to concentrate on so many colors at the same time.

Gabriel Cotelli showed Mercap's reflexive report tool, which is used in XTrade to allow power users to produce ad-hoc reports in a controlled way and without having to write Smalltalk scripts.

Bruno Brassesco came from Uruguay to show how he used Dolphin to deal with a really obtuse XML, WebServices, .NET and C# development environment that produced applications for banks in Central America. Basically the problem they were having was that they had to use a C# framework that executed a WebServices stack. The WebServices stack was structured in 3 layers (the presentation layer, the business layer, and the system primitives layer) on top of a set of .NET libraries that called the back end. Each layer of the WebServices stack called services in the same layer or a lower layer, starting from an original invocation from HTML. Eventually the back end was called and the results were transformed via XML transformation rules until the last transformation produced HTML from XML. The issue came when there was a problem somewhere. Let's say we know the presentation level service didn't finish. So they would insert debug steps before and after each service invocation to determine which service failed in the presentation layer. The debugger action of these debug steps? Send the developer an email.

Yes, you read that right.

No, I am not kidding.

So if you were debugging a web service with 3 service sub invocations, you'd add 4 email sending debug steps. Let's say you find that service number 2 is broken (because you only get two emails: before step 1, before step 2, and then the thing crashes). That's great because now you have to go to the business model XML file, find the service definition for service number 2, and add more email debugging steps on that to see where the problem was.

Eventually you have 3 huge XML files open, with lots of copy/paste going on, missing service definitions, unsent services, broken XML, etc etc etc. Egad. Bruno showed us a definition of a service with well in excess of 100 sub invocations. And each time you make a change, you have to kill the server, recompile all the files, upload the files, restart the whole thing, and try your test case again by hand hoping you'll be able to reproduce the failure. And, oh by the way, without proper file locking in an environment with 150-200 developers.

What he did was to use Dolphin to create an IDE for all this mess. Since the technology could not be changed, then at least he was able to make work far more bearable. His IDE brought things like senders and implementors to the XML files. Automatic email probe management. Detection of problems before they actually happened, like missing service declarations, broken files, etc. It was a sorry state of affairs for those in the development project... attrition was horrendous and developers lasted 1.5 projects. However, the mere insanity of the development process they had been forced to use had us laughing out loud many times during Bruno's presentation.

Then, Fernando Olivero and Juan Matías Burella showed us the master thesis work they are preparing: using Croquet to assist in teaching object oriented programming. To do this, they have designed a language which is actually a subset of Self. They plan to introduce programming students to this first, to then progressively introducing additional concepts and techniques ending with students learning something like Smalltalk. Most interesting!

After the last break, we saw roadmap presentations for Cincom and GemStone, given by Alan Knight and James Foster respectively. Not everybody is aware of the fact that Alan is an actual soccer referee, and since he knows his soccer he added several photos and videos to his presentation --- one such video played in an ActiveX control embedded via an innocent looking windowSpec inside a VisualWorks window!

James Foster followed on with an impeccable roadmap presentation including several demos of working technology such as Seaside and a new scaffolding framework (see here). I write impeccable quite purposefully, as GemStone presentations are always flawless. This, despite the fact that there was a nasty snafu and James' laptop ended up being left behind in the US by accident! But no worries: with little to no time to recover, there was essentially no evidence that anything had gone wrong. Such nice guys, these GemStone folks :).

After that, we had dinner in San Telmo and now finally this long day has come to an end. To be continued tomorrow...

1 comment:

Germán Arduino said...

Thanks by the abstract Andrés!.

Very interesting to the people (as me) that wasn't able to assist.

Any pics somewhere?