Conference Report: ESUG 2018

Between the 10th and 14th of September I attended the Smalltalk european conference: ESUG 2018, held in Cagliari, Italy, representing Mercap. It was my first time in Europe and a great experience. There was a lot going on the whole week, so I will highlight my favorites.

I arrived a few days early, just in time for the Camp Smalltalk and discovering the city. And no, the Camp Smalltalk is not that kind of camp:

Photo credit

It’s something like this:

Photo by Adriaan van Os’

Day 1

The conference started officially on Monday. My favorite talks for this day were:

  • Open Source, an infinite game by Marcus Denker: It was mostly a philosophical talk, but really cool.
  • Reshaping the development experience: Tudor Girba showed the GTDocumenter tool that his team is doing (currently in alpha). The basic idea is to deeply integrate the documentation within the development environment and making it interactive with the living objects residing in the image. I think it’s a pretty cool concept that will require further refinement.
Photo by Adriaan van Os’

After the talks it was time to do the demo for the Innovation Awards. I proposed two products: Willow and Mercap Abbaco, and when I arrived there were two “stands” (one for each product demo), so I had to bring everything to one place and do a multiple demo. Self-hint for the next time: propose only one project or be more than one person :) .

It was a looong day and I came back to the hotel for the dinner, but what a great start! I talked to a lot of people and saw a lot of cool stuff.

Day 2

I started the day by walking to the conference site. Cagliari is a really nice city so it was a pleasure to discover it by walking. By the way, always have a map at hand because the historic center is like a labyrinth.

A glimpse of my favorite talks:

  • Smalltalk Security Landscape: It was about security in the different distributions and it was a great reminder that as a community we need to be more aware of this stuff.
  • Docker and Pharo at ZWEIDENKER by Marcus Denker and Norbert Hartl: An experience report on how the company is deploying Pharo in docker containers and scaling it. We’re doing something similar at Mercap (deploying not only Pharo but also VA Smalltalk) and it was nice to see other people going the same route and sharing their experience.
  • Iceberg 2018: bringing Pharo to git, or git to Pharo? by Guille Polito Nice update on the latest development of Iceberg. I have to say that the last year it has greatly improved over the previous version.
Photo by Adriaan van Os’

After the official track was time for “Show us your projects”. There were something like 20 projects inscribed so it took a lot of time, my highlights were:

  • Pharo Sentry by Peter Uhnak: Integration between Pharo and sentry.io.
  • Git migration tool by Peter Uhnak: A tool to migrate a codebase including it’s history from Monticello to a git repository.
  • Compiler bindings by Marcus Denker: Marcus showed us some support he added to the Pharo compiler so you can pass it your own bindings. You can use it for example to work on the compiler itself without breaking the version in use. It’s pretty cool and I can imagine other use cases like: 
    1. Using the existing tests for OrderedCollection to test a new implementation but changing the bindings to #OrderedCollection in the tests only without breaking the rest of the system. 
    2. Having an optimized version of some class and using it in specific parts of the code without having to change all the references.
  • Docker-API and OpenAPI by Norbert Hartl: Norbert showed some tooling to control and visualize a Docker Swarm inside Pharo and integration with Open API.

Day 3

This was a shorter day because of the Social Event in the night. Besides the talk I gave on Willow, it was a nice day:

  • Gemtalk Systems and Instantiations talked about the latest releases and roadmap for both GemStone/S and VA Smalltalk. BTW Seth Berman was appointed president and CEO of Instantiations. Congrats Seth!
  • Seaside Add-Ons: Cyril Ferlicot showed some cool add-ons made on top of Seaside at use in Synectique. Including integration with Material Design Lite, prism.js for syntax highlighting , chart. js and Cytoscope for visualizations.
  • Willow: the interaction tour: This was the talk I presented. It went very well. I introduced Willow and focused the talk on the interaction affordances the library provides. You can check the slides online here. The talk had a good repercussion, so I’m very happy with the end result:
  • Tools for Smart Contract Analysis, Santiago Bragagnolo introduced Fog, a driver for the Ethereum blockchain in Pharo.

The talks ended early so everyone had time to go back to the hotel and prepare for the social event. It was held at night on a beach-side restaurant. The Innovation Awards winners were announced during the social event. Congratulations to all the winners! You can see the list here.

Smalltalkers Bus by Giovanni Corriga

Day 4

After the Social Event the previous night, the schedule slipped a bit.

  • Enjoying Parsing: John Brant introduced us to some new tooling he’s working on for Pharo and SmaCC, including grammar syntax highlighting, some simple grammar refactorings and templates and a SmaCC aware Debugger mode. Everything built on top of GToolkit. Nice!
  • Clap: Damien Pollet showed the improvements on CLAP (Command Line Argument Parser) for Pharo. It looks like a really clean design and it’s intended to be used as part of the CLI for the next Pharo version.
  • Stateful Traits in Pharo: Pablo Tesone talked about the current iteration on the traits support, now providing state and behavior sharing. It’s an optional package to the Pharo kernel, and it ended up begin similar to Mixins but with an explicit conflict resolution mechanism, putting the developer in control.
  • Using system-level tools to debug smalltalk systems: Jan Vrany gave a really interesting talk. I couldn’t grasp all the fine print, but he basically showed us some tooling to debug a segmentation fault in the VM, rolling back the execution stack and program state until the point where the segmentation fault cause is produced, easily fixing it. Wow! Take a look at the video once it’s made available.

Day 5

The last day ended up about lunch time.

  • The PolyMath project reached v1.0.0-alpha, so if you’re interested in doing science with Pharo give it a try.

In the afternoon we went to the beach and ended up eating into a restaurant there.

Conclusion

It was an intense and very productive week. A very good opportunity to meet in person people who I only knew virtually, and to meet interesting people and projects that I didn’t know, besides being able to show and discuss what we do in this little corner at the south of the world.

I also discovered that apparently we are planning a stealthy invasion of France by sending Argentinians to work at INRIA with Pharo :).

Bye bye Cagliari, I hope to see you folks again in another year!

Leaving Cagliari