SummerTalk2007

Welcome to SummerTalk 2007. This program is here to help students work on open-source Smalltalk projects. The European Smalltalk User Group (http://www.esug.org/) will fund some students during the summer. Each student (in sync with his supporting organization and project leader) will receive 1500 euros. Each student will work under the guidance of a mentor accredited by ESUG. The money will be distributed in 2 steps: middle and end of the project.

The code developed during this program has to be released under the MIT Licence.

Call for Projects

We are looking for new projects. Please send us your idea at stephane.ducasse@iam.unibe.ch and Serge.Stinckwich@info.unicaen.fr. ESUG will fund up to five projects. So in total we have 6 projects. If you are a company you can also sponsor this action.

Project list

SqueakBot (funded by Planète Sciences)

  • Description: the student will take part in the SqueakBot project.
  • Mentor: Planète Sciences

Trait-aware tools

  • Description: Traits is new technique to reuse code and comes without disadvantages of multiple inheritance or Mixins. For full adoption by developers it is necessary to offer tools to handle them. Currently, Squeak has great refactoring and completion tools. Unfortunately both of them do not deal with Traits. This project will extend both tools to support Traits.
  • Mentor: Andrew Black or Stephane Ducasse

Enhance OmniBrowser and port tools to this framework

  • Description: OmniBrowser is a browser framework that supports the definition of browsers based on an explicit metamodel. With OmniBrowser a domain model is described in a graph and the navigation in this graph is specified in its associated metagraph (http://www.iam.unibe.ch/~scg/Archive/Papers/Berg07cOmnibrowser.pdf). Most of the current Squeak tools have not been ported to this new framework. Work for this project is:
    • find the squeak tools which would benefit from a port to the OmniBrowser framework;
    • enhance OmniBrowser to support new tools;
    • port the tools to OmniBrowser.
  • Mentor: Andrew Black or Stephane Ducasse
  • Student: juraj.kubelka@googlemail.com

Exupery

  • Description: Exupery is a compiler written in Smalltalk which compiles bytecodes to machine code. It is currently under heavy development. The project will improve this areas:
    • profiling and primitive writing;
    • floating point support;
    • fast 32 bit integers;
    • a Mac port.
  • Project website: http://wiki.squeak.org/squeak/5947
  • Mentor: Bryce Krampje
  • Student: iakovz@gmail.com Iakov Zaytsev

Seaside on Sails

  • Description: Seaside is a framework for developing sophisticated web applications in Smalltalk. It provides APIs for html generation, UI component library facilities, callback-based request handling. Furthermore, Seaside models an entire user session in a linear way, so that it can be developed with a continuous piece of code, helping design and debugging of the application. Seaside is a powerful and elegant solution to develop web applications, especially if they are complex, but in many simple web application the development time can be drastically reduced by automating the most repetitive and error prone tasks. Sails is a Seaside add-on that aims to automate many tasks by use of scripts, patterns and conventions. The project aims to provide a well-abstracted and flexible connection to persistence layers (both OODBMS- and RDBMS-based) using active record pattern model. This will help developers to easily build web applications that store and manipulate data, that have to be persistent over sessions and users.
  • Mentor: Giovanni Corriga
  • student: Yuriy Ivanovich Mironenko

Supporting Strongtalk

  • helping with porting Squeak to the Strongtalk VM
  • looking into porting the Squeak plug-in interface to work with Strongtalk
  • helping work on the Linux port

Mentor: David.takeThisPartOut.Griswold.at.acm.org Student: Marc Fauconneau prunedtree.takeThisPartOut@gmail.com

Fast Loading Package

  • Description: The student will implement a kind of parcel like mechanism based on monticello 2 (which should be dialect agnostic). He will start with Squeak. The development will be XP style: scenario and test driven.
  • Mentor: R. Wuyts

Unicode support

  • Description: Squeak's support for Unicode can be improved:
    • more unicode to character code translators.
    • review existing code and clean it up, some classes have methods that have different code to do same thing.
    • check the code for correctness, and fix it (example: the unicodeToMacRoman actually does unicode to latin1).
    • improve performance of the translators: as an example the UTF8 translator creates a write stream, but then actually writes out bytes to your file system one byte at a time as it considers if the unicode byte needs to be made into a utf8 sequence. Needless to say if you have a multiple MB text file this suddenly takes millions of file I/O requests to the operating system which is really slow.
  • Mentor: Todd Blanchard

Sake: a Declarative Build Tool for Squeak

  • Description: Squeak can run scripts through OSProcess, but it doesn't have a framework for declarative building of various targets that is customarily exhibited by Make or Ant. Ruby's Rake demonstrates an interesting approach to this problem that could be implemented in Squeak readily. The implementation goal of this project is to translate the idioms and features of Rake into a library comparable to SUnit in terms of coding style and level of implementation, then a "mini-language" on top of that which makes it convenient to add build systems to other projects for their own purposes, with some usage examples, and finally (optionally) a graphical tool for running build processes with possibly some interaction and logging interfaces. ToolBuilder is suggested but not necessary for the tool phase.
  • Mentor: Brian Rice

Sponsors

  • ESUG
  • <a href="http://www.planete-sciences.org/robot/"><img src="http://www.planete-sciences.org/images/logo_planetesciences_nation.gif" alt="Planète Sciences" width="150" height="75"></a>
  • Klaus D. Witzel

How we will proceed

We will proceed the following way:

  • the mentor should acknowledge that this is ok to start with the students
  • a month after the start of the project the mentor should gives his ok and the student will receive 500 Euros
  • then at the end of the project, the mentor should give its ok and the student will receive 1000 Euros once the code is publicly available and other parties can load it.

The projects should be distributed with an open-source license fitting the project: MIT/Squeak-L, BSD, APSL 20....

Note that we encourage students and mentors to advertize that they have been selected for a SummerTalk and make public their progress. Some quality points:

  • The project should be advertized so that other people may provide input, piece of code.
  • We would like to have Unit tests and comments for the projects.
  • The projects should be published in an open repository such as http://www.squeaksource.com/ or Cincom Store

Organization points

The selection process done by ESUG will take into account whether the student will be supervised, if there is an infrastructure to help him as well as a the relevance of the topic for the community and the trust in the mentor.

When and Process

  • Running from from June 15th, 2007 through December 15th, 2007.