Progress by Ricardo Moran on the ESUG Squeakland education project: Squeak Courseware

Overview: Ricardo Moran was awarded a 2010 Google Summer of Code (GSoC) scholarship to create new tools for Etoys. The European Smalltalk Users Group (ESUG) was selected as a mentoring organization for the 2010 GSoC. The idea for the project Ricardo chose was submitted to ESUG by Randall Caton, a member of the Squeakland Education Team. Ricardo's project was selected as one of the top 5 ESUG entries. Randall Caton and Markus Gälli mentored Ricardo.

Get Etoys: Before you can enter the exciting world of Etoys, you need to download the software at

Squeak Courseware: Etoys is a free, exciting, multimedia, object oriented programming environment in Squeak that runs on several different computer platforms. Once you have the Squeak plug-in installed, you can access any project from several different browsers. Ricardo Moran has created most of the Etoys projects below to show how the tools he created for the GSoC project at ESUG can be used. To use the tools, open the project with the tools you want and develop your own project using the new tools. When you save your new project, be sure to select "yes" to include all changes in the change set.

The progress in the GSoC project is indicated by putting the most recent work at the top of the list and starting with the date of the creation of the project. If you click on the project link, it links to a launcher at Squeakland that opens the project. If the Squeakland web site is down or you just want to download the project to open later, click here to go to the download page.
August 24, 2010 A tool to help developers create new Etoys morphs by automatically compiling all the necessary classes and methods to generate the Etoys tiles, etc.
August 15, 2010 The point and bar graph tools have been improved based on suggestions from the Squeakland community. The graphing tools have been modified to allow any object to behave as a point or a bar. You just drop an object into the graph and it automatically starts behaving as a point or bar in the graph. The old behavior still works, though. You can add or remove points/bars using the same tiles, but this change allowed a lot of improvement in the code. Two very ugly classes were removed and a lot of methods were greatly simplified. Also, the interface is now more Etoys-like and less like Powerpoint. In the case of the bars, the value is calculated using the extent of the morph dropped and it's label is the morph's name.
August 8, 2010 A new paint tool has been created with a different layout that includes sliders to change the size of the brush and the alpha for the color. The values can also be typed in. This new tool allows infinite undo and redo. The current paint tool only allows undo and redo for the most recent action.
August 6, 2010 This project contains an Alert System object that shows when a certain source object has been contacted by the mouse (mouseDown, mouseStillDown, mouseUp, mouseEnter, and mouseLeave). Any object can be selected as the source. There is a drop down list of all the Players in the project and an "other" category to select any object, such as the "clock" button in a ScriptEditor window. The alerts can be programmed using the green scripting button to the left of the yellow resize button on the alert object. In this project every time the car is mouseEntered a counter is increased by one and the data are recorded in a spreadsheet and written to a file.
July 23, 2010 This project creates a file list from your computer's Etoys directory. You can then upload any file of type *.png, *.jpg, *.gif, *.morph, and *.csv. You can also export graphics, morph and spreadsheet files. The morph files need to be of extension *.morph.
July 10, 2010: The most recent version of the say/think bubbles with corrections and changes.
July 5, 2010 Author Randall Caton: This project calculates the fibonacci sequence and uses say/think bubbles to show the fibonacci number and ratio by combining both text and a number variable in the same bubble.
July 3, 2010: The ability to insert number and graphic value types into the say/think bubbles has been added.
July 2, 2010: The ability to export/import graphics using tiles has been added to this project. This function is now allowed in the Etoys friendly mode and can be used in tiles programming.
July 1, 2010 Authors Randall Caton and Ricardo Moran: Solar Flares for the month of June 2010 are plotted as the number of flares vs. the day of the month. The data were imported from the NASA web site ( ). They were turned into a csv data file called flares.csv and this file must be in your etoys directory to upload the data into etoys. This project shows how to import data using the Spreadsheet object and then graph them using the Graph object. This project takes a long time to load because it contains both the Graph and Spreadsheet objects. You can get the csv file from the download link above.
June 30, 2010: A calendar object has been created. It can be used to enter date information into the spreadsheet. The say and think tiles and spreadsheet object are also present in this project.
June 18, 2010: A new Spreadsheet object appears in the GSoC category in the object catalog. The new object has special tile categories of file i/o and spreadsheet. This projects demonstrates the capabilities of the Spreadsheet object where data are acquired, entered into a spreadsheet, saved, and loaded.
June 13, 2010: Say and think tiles were created to make it easier to create messages. You can access them in a special tile category called gsoc.

June 4, 2010: Andreas' code has been tested with the DejaVu, Mona, UnDotum, and UnBatang fonts. You can install them by copying the .ttf files in the font directory and executing the following code (make sure you have an updated image): TTFileDescription installFamilyNamed: 'Mona'; installFamilyNamed: 'UnBatang'; installFamilyNamed: 'UnDotum'; installFamilyNamed: 'DejaVu LGC Sans'; installFamilyNamed: 'DejaVu LGC Serif'; installFamilyNamed: 'DejaVu LGC Sans Mono' For convenience, the fonts are uploaded to The size is 11.1 MB.
June 3, 2010 Author Randall Caton: This project uses the graphing tools developed by Ricardo Moran and a die artifact developed by Hilaire Fernandes. Both the GSoC and Artifacts categories are in the Object Catalog included with this project. The project take a while to open so be patient.

May 30, 2010: New versions of po/mo files have been made. These have all the english files 100% filled (in almost all the cases the msgstr is the same as the msgid). This fixes the problem of sending #translatedInAllDomains for the english locale. Mo files: Po files:

GSoC -
May 22, 2010: This example uses a more recent version of the Graphing Tools.

May 14, 2010 Author Steve Thomas: A project using the graphing tools to introduce arithmetic operations.
May 7, 2010 Author Randall Caton: A project using the graphing tools to plot a vector field.
April 27, 2010: This example uses a more recent version of the DataGraphMorph that allows plotting bar charts.
April 22, 2010: This example uses a more recent version of the DataGraphMorph that gives the points the graphics category so they can take on any drawn shape.
April 20, 2010: This example uses a more recent version of the DataGraphMorph that provides an index value for both points and vectors. These take awhile to load.
April 18, 2010 Author Yoshiki Ohshima: This example uses the vector morph from the DataGraphMorph to create a square wave from a Fourier Series.

GSoC-Sine wave
April 17, 2010: These examples use a more recent version of the DataGraphMorph that combines point and vector plotting in the same class. A separate vector morph has also been created. The first example shows a new way of plotting the sine function. The second example shows the use of the vector morph. These take awhile to load.

April 13, 2010: This example uses a more recent version of the DataGraphMorph to create an example where the sine function is plotted using vectors. Ricardo has implemented two subclasses: PointGraphMorph and VectorGraphMorph.

GSoC - Check plotting
April 11, 2010: This example uses a more recent version of the DataGraphMorph to create an example where students can enter their data, plot their data and then check their plotted data.

April 3, 2010: Using a more recent version of DataGraphMorph to make an interactive exercise for physics students learning vectors.
March 28, 2010: A DataGraphMorph was created to allow users to set up a graph for plotting data. This example is an early version showing the use of the tools.

To examine the Smalltalk code written by Ricardo, open a browser from the world menu in the OLPC Etoys image from Squeakland. You need to uncheck eToyFriendly in the preferences before you can open a browser from the world menu.You will find his code near the bottom of the left pane as shown below in the category GSoC-Plot.

Ricardo Moran has set up a project monitor with detailed descriptions of the Smalltalk code progress at SqueakSource.

I would appreciate any comments or suggestions you may have to improve or extend these projects. You can email me at