ESUG (the European Smalltalk User Group), had an exciting and challenging Google Summer of Code with 10 students who successfully completed their projects. The students worked on many kinds of projects using different implementations of Smalltalk like Pharo, Squeak or Amber, ranging from end-user applications to VM improvements. This year's Google Summer of Code has indeed been a big boost for our open source community, besides all the new projects and contributions (and contributors!) to our project, this year we also mentored twice the number of students than ever before.

We also started to improve the visibility of the new projects to the community and the integration of the students with the rest of the developers, asking them to write blogs on their work and publish screencasts and news about their projects in the mailing lists. It's been a good experience compared to our last Google Summer of Code in 2010, but we hope to improve this even more in a future instance of the program.



We would like to invite you to take a look at our passing students' projects this year:

Interactive and Social Smalltalk Tutorial (by Facundo Mainere)
When the summer started, the Smalltalk community didn't have a place to promote their language to new coders in social networks. SmalltalkTutorial offers a game-like way of learning the language basics by integrating the user achievements in social networks like Facebook, Twitter and Google+. Besides a cool tool for newcomers, it's a nice project to illustrate what can be done with Smalltalk web technologies such as Amber (a Smalltalk implementation written in Javascript).

TestSurgeon (by Pablo Estefo)
TestSurgeon is a tool for the Pharo environment which monitors the execution of unit tests and collects data on what is being tested and how it is tested. The TestSurgeon's screencast shows how it provides a test similarity metric and a visualisation for refactoring and restructuring tests.

Esse (by Paul Kuzovkin)
Simply put, this is a framework for building presentations of a new generation. The emphasis is on brainstorming, presenting and sharing ideas. The demo screencast of Esse might remind you of a Prezi presentation, but with the possibility of editing and evaluating Smalltalk code while the presentation is running.

Improving Nautilus (by Benjamin Van Ryseghem)
This project was about improving the new System Browser for Pharo. Nautilus' demo shows the capabilities of the new browser, such as accessing a project's code repository from the packages list in one click, changing between different views of the classes in the system and interacting with a browsing history.

Hazelnut (by Guillermo Polito)
Pharo has an image-based development environment, as we can read in Guillermo's blog. The current image that is being used has been inherited from much older implementations of Smalltalk, and it's time to deconstruct it in order to build a new and better one. Hazelnut is a project for bootstrapping Pharo's image, that means that it's able to generate smaller subsets of that system that may be used to reproduce the complete one, and therefore it will help to understand the current image architecture, how it can be improved, and help to build a new one from scratch. Hazelnut won 2nd place in the 9th Innovation Technology Awards at the conference ESUG 2012. Take a look at the demo.

Call Graph - Type Inference (by Santiago Bragagnolo)
A popular property of Smalltalk is that it is a dynamically typed language and it does type checking on run-time. When programming, it could be useful to know the type of expressions we write, like when we do code refactors, or browse for senders of a message, or even when documenting. In Santiago's blog we can find a detailed diary of this project that enables concrete type inference in this dynamically typed environment.

Tanker (by Martín Dias)
Tanker is a project that aims to avoid recompiling code each time you import a package. It uses binary serialisation and materialisation of packages to avoid compilation time. You can watch Tanker's demo.

Rizel (by Juan Pablo Sandovar)
The Rizel application is designed to monitor global performance across different versions of a software. This project helps the developer answer questions like "How has performance evolved over time?" and "Which software version is the cause of a drop in performance and why?" You can find examples on Rizel’s website and also view this screencast.

ARM JITter for Squeak VM (by Lars Wassermann)
The Squeak VM is the dynamic virtual machine used for many open source software projects like Scratch, eToys, Pharo, the Newspeak language, the innovative web framework Seaside, and many others. CogVM is a development of the Squeak VM which adds a powerful Intel x86 JITer. The CogVM JIT has significantly improved the performance of the open source Smalltalk projects which have adopted to use it. The goal of this project was to add simple ARM JITing capability to the CogVM to significantly increase the performance of popular Smalltalk software running on ARM platforms, such as the Raspberry Pi, the Beagle Board and the computers of the one-laptop-per-child project. To get to the achieved milestones of this project refer to Lars' review.

HMI (Human-Machine Interface) with Amber (by Rustem Khubbatov)
A framework for building Human-Machine Interfaces with a Pharo back-end providing model, and a presentation front-end in Amber. You can view the screencast here.

We congratulate all of our students for their great contributions, and we also want to thank the mentors who worked with them last summer. We hope you find these projects as interesting as we do, and feel free to check The World of Smalltalk for following our mailing lists and news, as well as our ESUG Google Summer of Code website.  Many thanks to Google for supporting Smalltalk for yet another summer and we look forward to participating again in Google Summer of Code 2013!

By Carla Griggio, ESUG Organization Administrator