Etoys: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
m (Reverted edits by Jamestew (Talk) to last revision by Rita)
 
(194 intermediate revisions by 67 users not shown)
Line 1: Line 1:
{{Translations}}
[[Image:EToys - new display.jpg|thumb|right|Etoys running on the OLPC display]] Squeak Etoys was inspired by LOGO, PARC-Smalltalk, Hypercard, and starLOGO. It is a media-rich authoring environment with a simple powerful scripted object model for many kinds of objects created by end-users that runs on many platforms, and is free and open source. It includes 2D and 3D graphics, images, text, particles, pres-entations, web-pages, videos, sound and MIDI, etc. It includes the ability to share desktops with other Etoy users in real-time, so many forms of immersive mentoring and play can be done over the Internet. It is multilingual, runs on more than 20 platforms bit-identically, and has been successfully used in USA, Europe, South America (Brazil, Colombia, Argentina), Asia (Japan, Korea, India, Nepal), and elsewhere.
{{Olpcboxtop|toptext=[[{{PAGENAME}}|Etoys]]}}
{{ OBX activity |[[Image:Activity1.png]]|core<!--|{{{text}}}--> }}
{{ OBX source dev|projects/etoys}}
{{ OBX test |[[Tests/Etoys]]<!--|2007-09-18--> }}
{{ OBX devtickets |etoys-activity}}
{{ OBX pootle
|http://etoys.laptop.org/svn/trunk/etoys/po/etoys/etoys.pot|etoys}}
{{ OBX team |[[User:Bert|Bert Freudenberg]], Ted Kaehler, Alan Kay, Yoshiki Ohshima, Ian Piumarta, Kim Rose, Scott Wallace, Takashi Yamamiya, and [http://squeak.org/ many others]}}
<small>see more [[:Category:OBX templates|templates]] or [[OBX proposals|propose new]]</small>
{{Olpcboxbottom}}


[[Image:EToys - new display.jpg|thumb|right|Etoys running on the OLPC display for the first time (Sep 11 2006)]]
Further reading: http://www.squeakland.org/school/HTML/essays/essays.html
[[Squeak]] Etoys was inspired by [[LOGO]], PARC-[[Smalltalk]], Hypercard, and starLOGO (see [[Talk:Etoys|discussion]]). It is a media-rich authoring environment with a simple, powerful scripted object model for many kinds of objects created by end-users that runs on many platforms, and it is free and open source. It includes 2D and 3D graphics, images, text, particles, presentations, web-pages, videos, sound and MIDI, etc. It includes the ability to share desktops with other Etoy users in real-time, so many forms of immersive mentoring and play can be done over the Internet. It is multilingual, runs on more than 20 platforms bit-identically, and has been successfully used in the USA, Europe, South America (Brazil, Colombia, Argentina), Asia (Japan, Korea, India, Nepal), and elsewhere.

An essay about Etoys on the OLPC: [[Media:OLPCEtoys.pdf|OLPCEtoys.pdf]]

Further reading: http://www.squeakland.org/resources/articles/

Also, see [[Smalltalk Development on XO]] for a guide to the "full-fledged, general purpose, multimedia ready, integrated development environment" that is inside of Etoys.

===Mailing list===
There is a mailing list specifically discussing Etoys in the OLPC environment. Please [http://mailman.laptop.org/mailman/listinfo/etoys subscribe] to keep in touch!

{{Users}}
===For Teachers and Learners===
* There are multiple Tutorials that come with the Etoys activity, which are recommended for first time users.
* There is a draft of a book describing the ideas behind Etoys on the XO [http://www.laptop.org/OLPCEtoys.pdf here].
* The central site for educational use of Squeak is the http://squeakland.org/ website.
* Waveplace has created thirty [http://waveplace.com/resources/tutorials video tutorials] that teach Etoys.
* Some [http://vg06.met.vgwort.de/na/8677032b6e94172e56224283aaced2?l=http://www.iam.unibe.ch/~scg/Archive/Papers/Gael06aC5.pdf Idioms] for Composing [http://emergent.de/etoys.html Games] with Etoys ([http://community.ofset.org/index.php/Idiomes_pour_composer_des_jeux_EToys French translation]).

====Projects for Squeak on the OLPC XO====
With Squeak the standard way to save contents/activity is through the project infrastructure. In a project file, you find living objects and source code. The source code is compiled in the host image at load time. Some more information at http://wiki.squeak.org/squeak/1817

Here a few project examples (please add your link here):
* http://www.hpi.uni-potsdam.de/swa/projects/olpc/ (Student projects' from the HPI Software Architecture Group),
* http://proyectos.educarex.es/Gallery/ Teachers' projects in spanish,
* http://squeak.educarex.es:9090/seaside/SBSuperSwiki (clic in <i>galería</i>) Students projects in spanish,
* [[Etoy Project sampler]] Projects with various stuff done in Etoys.
* [[DrGeo]], an interactive geometry project.
* http://www.EtoysIllinois.org (Teacher resource projects and lesson plans for CS4HS and CS4K5. See also the K-5 Technology Passport. The site's Library Collection has over 1200 projects including: stories, geometry games, puzzles, mazes, science books, and more.)

====Documentation====

* '''Powerful Ideas in the Classroom, Using Squeak to Enhance Math and Science Learning''' by B. J. Allen-Conn and Kim Rose, 2003, Viewpoints Research Institute, Inc., 86 pages, ISBN 0974313106 (translations available [http://squeakland.org/resources/books/ here])

* '''Quickguides:''' Inside Etoys there are more than 50 pages of help. These Etoys Quickguides are also available as web pages at the [[Etoys QuickGuides Index]] and as a printable PDF: [[Media:The Etoys Quick Guides.pdf|The Etoys Quick Guides.pdf]].

* [[Etoys Shortcuts]]

* Also see [http://www.vpri.org/html/writings.htm www.vpri.org/html/writings.htm] and [http://squeak.lec.ufrgs.br/ squeak.lec.ufrgs.br].

====Documentation in French====

* [http://www.iam.unibe.ch/~scg/Resources/EToyBook/book.pdf Des idées puissantes dans la classe], french translation of 'Powerfull ideas for classroom'.
* [http://squeakbyexample.org/fr/ Squeak par l'exemple], Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz, Damien Pollet, Damien Cassou, Marcus Denker
* [http://community.ofset.org/wiki/Squeak French speaking Squeak community]
* [http://community.ofset.org/index.php/Etiquettes_actives Etiquettes actives]Programmation visuelle et gestuelle pour jeunes enfants et débutants. dans Squeak /Etoys
=====Documentation, examples, tutorials, download =====
* [http://community.ofset.org/wiki/V-toys V-toys] Un langage visuel de programmation par script compatible avec Etoys. (Une version spéciale réduite est destinée aux jeunes enfants ne sachant pas encore lire.)
* [http://community.ofset.org/index.php/G%C3%A9om%C3%A9trie_et_syst%C3%A8me_expert géométrie et système expert] Projet en cours pour combiner les logiciels de construction de figures géométriques DrGeo et V-geom avec un système expert faisant des déductions à partir de figures et de règles.

====Documentation and examples in Spanish====

Etoys and Squeak (in the past, The current Etoys system was often referred to as "Squeak") have been used widely, and there are many documentation and books done in various languages. Following is the short list of documentation available in Spanish:

* '''Programando con Smalltalk''', Diego Gómez Deck. (http://wiki.gnulinex.org/LibroProgramacionSmalltalk/10)

* '''Swiki de Small-land''', (http://swiki.agro.uba.ar/small_land). Note that the original small-land.org is released and grabbed by somebody else. The translation of '''Powerful Ideas in the Classroom, Using Squeak to Enhance Math and Science Learning''' is available at: http://swiki.agro.uba.ar/small_land/193.

* '''Squeakpolis''' (http://squeak.educarex.es/Squeakpolis). The central site for educational use of Squeak in Extremadura (Spain).<br>Here you can find:<br>[http://squeak.educarex.es/Squeakpolis/30 Documentación], [http://squeak.educarex.es/Squeakpolis/13 Cómo Usar Squeak], [http://squeak.educarex.es/Squeakpolis/19 Aprende a manejar Squeak con estos ejercicios], [http://squeak.educarex.es/Squeakpolis/165 Ideas para trabajar en el aula], [http://squeak.educarex.es/Squeakpolis/140 Preguntas Frecuentes], [http://squeak.educarex.es/Squeakpolis/111 Manual de Referencia], [http://squeak.educarex.es/Squeakpolis/146 Catálogo de Objetos], [http://squeak.educarex.es/Squeakpolis/56 Galería de Proyectos según especialidades docentes], [http://squeak.educarex.es/Squeakpolis/48 Zona de descarga] and more.<br>Besides:<br>A [http://proyectos.educarex.es teachers' repository]<br>And a new [http://squeak.educarex.es:9090/seaside/SBSuperSwiki?_s=gijHaGjVoxPibESo&_k=eFMTctrQ one of public access] (clic en galeria).<br>

* '''NASA Connect''' is the education program for general public and children sponsored by NASA. There is Spanish version. (http://www.pcs.cnu.edu/~rcaton/sp/squeakindexSP.html)


{{Developers}}

===For Etoys designers===
To build etoys, the best thing would be to use the actual [http://etoys.laptop.org/src/etoys-image-and-pr.zip OLPC image]. However, etoys authored using the [http://squeakland.org/ squeakland.org] version should be fairly compatible. Remember that the actual screen of the kids' machines will be very small, even though it has a 1200x900 resolution!

<!--
We are planning a '''contest''' for the '''best etoys''' designed to work on the OLPC machines. The winners will be included in the repository distributed with 5 million machines next year. Precise criteria and the format for submissions are being worked on, but a good entry should be fun, suitable for younger kids (text shouldn't be too complex), hackable (code should be elegant), compact (disk space is precious), and should illustrate some creative aspects of using Etoys. Of course the best examples might be existing etoys rewritten to work nicely on the laptops.

Come back to this page in a few days for more information.
-->

===For Etoys Translators ===

Translation work is done in Sugar Labs Pootle: http://translate.sugarlabs.org

With Pootle you can translate online, or download a PO file, edit locally, and upload. <i>NOTE: uploading does not work currently due to the Etoys PO file size.</i>

Committing in Pootle pushes translated POs into git: http://dev.laptop.org/git/projects/etoys/tree/po

For the release, POs with enough translated phrases are copied to SVN http://etoys.laptop.org/svn/trunk/etoys/po/


===For Developers===
===For Developers===
The current Etoys version for OLPC is based on the squeakland.org image. It runs on the latest [[Squeak]] VM with minimal [[Sugar]] glue code.
The current Etoys version for OLPC is based on the squeakland.org image. It runs on the latest [[Squeak]] VM with minimal [[Sugar]] glue code.


'''Developer Images''' have not undergone stripping, project pre-loading, preference adjusting and changes compaction.
There is a mailinglist: [http://mailman.laptop.org/mailman/listinfo/etoys etoys@laptop.org] ''(to be created soon)''.
* [http://etoys.laptop.org/src/etoys-dev.zip etoys-dev.zip] contains dev image+changes, source PO translation files, and the index file for building the quickguide index.
Remember to update your image!


'''User Images''' are the ones actually deployed on the laptop, but since this is Squeak they work on other platforms too:
Downloads are here: http://tinlizzie.org/olpc
* [http://etoys.laptop.org/src/etoys-image-and-pr.zip etoys-image-and-pr.zip] is a zip of the very latest image, projects, quickguides, and compiled MO translation files in the git tree.


The '''Squeak Virtual Machine''' is built from the "olpc" branch:
Remember to update your image!
* http://squeakvm.org/svn/squeak/branches/olpc
* the RPM spec contains a changelog: [http://squeakvm.org/svn/squeak/branches/olpc/squeak-vm.spec squeak-vm.spec]
* all changes in the olpc branch are regularly merged back into the trunk, specific parts are guarded by "#ifdef SUGAR" pre-processor directives.


'''Activity Source:''' http://dev.laptop.org/git.do?p=projects/etoys
<b>Sugar:</b> For running inside [[Sugar]], use [[Sugar_with_sugar-jhbuild|sugar-jhbuild]] with this patch: [http://tinlizzie.org/olpc/sugar/sugar-jhbuild-etoys.diff sugar-jhbuild-etoys.diff]
git clone git://dev.laptop.org/projects/etoys
git apply sugar-jhbuild-etoys.diff
There is a mirror of the latest git tree at http://etoys.laptop.org/src
./sugar-jhbuild build etoys

'''RPMs:''' The Squeak VM and Etoys activity are packaged as RPMs. Download and install from http://etoys.laptop.org/rpms

'''SRPMs''' and spec files are at http://etoys.laptop.org/srpm

See [[Etoys RPM and XO bundle]] for the release process.

'''Sugar:''' For running inside the [[Sugar]] emulator, use [[Sugar_with_sugar-jhbuild|sugar-jhbuild]]:
./sugar-jhbuild buildone squeak
./sugar-jhbuild buildone etoys
Etoys are built by default in sugar-jhbuild.

'''Bugs:''' Please submit tickets at http://dev.laptop.org/, select the "Etoys" component.

====Building etoys.image from developer's image====

=====display size=====

Developer's image (etoys-dev.image) is included in the svn repository
http://etoys.laptop.org/svn/trunk/etoys/ as well as in etoys-dev.zip
(see above). etoys-dev.image is configured with proper screen size as
1200x900. Before building an image, it is nessesary to make your
display size more than 1200x900. If you have only small screen linux,
the simplest way is to add a Virtual directive into xorg.conf like:

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768" "800x600" "640x480"
Virtual 1280 1024
EndSubSection
EndSection

and run xrandr to change the display size.

xrandr -s 1280x1024

=====building release image=====

Open etoys-dev.image, and execute following expression.

<pre>
| result aStream |
result := Utilities readServer: Utilities serverUrls copy special: '' updatesThrough: nil saveLocally: false updateImage: true.
result first ifNotNil: [ self error: 'Update failure' ].
SmalltalkImage current closeSourceFiles.
SmalltalkImage current saveChangesInFileNamed: 'etoys.changes'.
SmalltalkImage current saveImageInFileNamed: 'etoys.image'.
PluggableTextMorph allInstances do: [:each | each askBeforeDiscardingEdits: false].
ReleaseBuilderSqueakland new prepareReleaseImageForOLPC.

aStream := (FileStream forceNewFileNamed: 'update') lineEndConvention: #lf.
[aStream print: SystemVersion current highestUpdate; cr] ensure: [aStream close].

SmalltalkImage current snapshot: true andQuit: true.
</pre>

New etoys.image is generated. The update number is stored a file named 'update'.
Note: To keep etoys.changes clean, it would be better to test the image after upload to the repository.

=====Upload image to subversion repository=====

* svn di po/etoys/etoys.pot. If this file is modified only the header (POT-Creation-Date, PO-Revision-Date, X-Etoys-SystemVersion), svn revert po/etoys/etoys.pot.
* svn revert etoys-dev.* (etoys-dev should be updated from clean each time)
* svn ci -m 'Update to {update#}, {some messages}'

=====Synchronize translations=====

Go to the git directory for etoys and update Content/ if necessary.
Makefile will do everything you need (copy pot from Content to git,
copy po from git to Content, and build mo into Content)

* make
* git commit -a -m 'some message'
* git push

===Running OLPC Etoys if you do not have OLPC laptop yet - For Content Creators/Testers/Teachers===

If you, as most of us, do not have the OLPC laptop, you can still develop OLPC Etoys content. There will be a few minor integration points missing (Camera etc), but most content and testing can still be performed. This section describes how to achieve this.

====Method 1 (Easiest) - Use Squeakland installation and the OLPC image====
The idea behind this method is to install, on your favorite operating system, the Squeakland Etoys system, and download the OLPC Etoys image and content. Then use the Squeakland virtual machine to run the OLPC image.

'''How to install OLPC Etoys on your system?''' (Skip Step 1 and 2 below if you already have Squeak installed.)

* '''On Windows'''
# Download and install Etoys [http://squeakland.org/ from Squeakland]. Go to the Squeakland link; in the middle of the page, click on the "Download Squeak" button. On the next page, click on the "Download Squeak" link. Click "Open" on the browser dialog asking you to open or save the SqueakPluginInstaller.exe.
# A Squeak Plugin Installer installation dialog will come up; click on "Next", then "Close". This will install Squeak on your system, and create an item on your desktop named Squeak, which looks like this: [[Image:Squeak-desktop-item.jpg| Squeak Desktop Item]]
# Now Download the OLPC version of Etoys. The latest version can be downloaded from [http://etoys.laptop.org/src/etoys-image-and-pr.zip this site]. You will need an extract program (such as PKZip, WinZip, or 7Zip) to extract this. Create a folder named "C:\Etoys-OLPC" or similar, and extract the contents of the downloaded etoys-image-and-pr.zip into the newly created folder.
# '''Running OLPC Etoys''': Now we are ready to run OLPC Etoys downloaded in Step 3, using the Squeak desktop item created in Step 2. The simplest way to run OLPC Etoys is to drag the file etoys.image from the "C:\Etoys-OLPC" folder you created in Step 3 on top of the Squeak icon created in Step 2. Try it - it works! You should see the OLPC Etoys menu page: [[Image:running-olpc-etoys-small.jpg|OLPC Etoys menu]], and are ready to create OLPC Etoys content, test, or just play.
* '''On linux''': todo (or see other methods below if you don't need the browser integration of squeakland)
* '''On Mac''': The Windows instructions work fine, although the icons look different.

====Method 2 - Use emulation====
Emulation allows to "pretend" you have the OLPC laptop - essentially the OLPC laptop runs "inside" your system. You can achieve this on any common operating system you have. Please [[OS images for emulation | follow instructions here]] for descriptions on how to do it using Windows, Linux, FreeBSD, or MacOS.

====Method 3 - Install RPMs or .deb's (Linux Only)====
If you are on any reasonably recent version of Linux, there are pre-built packages that you can install on your system.

* '''On an RPM-based system'''
Look [http://etoys.laptop.org on the Etoys page] for instructions and a link to the RPM download.

Copy a .rpm to a USB memory, and do:

rpm -i /media/VOLNAME/somefile.rpm

Or, if it complains because of dependency resolve it or simply do:

rpm -i --force /media/VOLNAME/somefile.rpm

* '''On Ubuntu''':
For a GUI install, note the help at this page to use synaptic, rather than add/remove packages: http://blog.blobworks.com/2007/10/19/squeak-on-ubuntu/

To use the command line, and the existing "squeak-vm" package with the OLPC etoys.image
# apt-get install squeak-vm ''# or use synaptic as noted above''
# mkdir etoys ''# put this directory whereever you like, with any name you like''
# cd etoys
# wget http://etoys.laptop.org/src/etoys-image-and-pr.zip
# unzip etoys-image-and-pr.zip
# squeak etoys.image

* '''On Debian''': http://wiki.squeak.org/squeak/3616

'''[[Etoys/Benchmarks|Benchmarks]]'''


=== Discussions ===
=== Discussions ===
I am writing from an XO laptop!
Feel free to edit below.
I would love to get more info on the Etoys and what you can do. I love that you can make lots and lots of things and then get them to move. But there is so much it is a bit overwhelming. Where can I find some info on all the different script buttons, or a basic overview of how to arrange code?
Thanks
Listen

:Please refer to the [[Etoys#Documentation|Documentation]] section of this page as a place to start. --[[User:Walter|Walter]] 09:17, 25 December 2007 (EST)

=== Programming for the OLPC using Etoys Squeak ===
There is a tutorial on how to set up the Squeak Smalltalk development environment on the XO. See [[Smalltalk_Development_on_XO]]. Bert Freudenberg has a way to create an .xo file from an Etoys project or Smalltalk change set. If we write it in Squeak and incorporate that into Etoys image, making an activity can be done on the XO as well.

We are beginning a tutorial series about programming using the OLPC Squeak -- not for kids, but for programmers trying to create activities inside the Etoys environment. We have also a customized kit for the installation of a Windows version of the emulator having Fedora+Sugar+Etoys. One click only... Read how to use it at the tutorials.

Unfortunately, the tutorials are currently only in brazilian and portuguese.
The link is [http://www.dmu.com/etoys here]. The pages are in the format to be accessed, in the future, by the OLPC browser.

===V-toys, a visual programming language built with E-toys===
Mostly in French, but since the language is visual, you can download projects and learn by examples. A visual language for comments will be used so that v-toys will be independent of language in the future.

* '''Download'''.<br>V-toys for XO and squeakland-OLPC image (English version):
**[http://www.squeakland.org/showcase/project.jsp?id=7516 Download from Showcase]

* '''Documentation.'''
**[http://community.ofset.org/index.php/V-toys_international V-toys international] (tutorial and download).
**French pages and link to the english pages: <br> http://community.ofset.org/wiki/V-toys
**Download the Video of the v-toy's presentation at the C5 conference in Poitiers:<br> [http://uptv.univ-poitiers.fr/web/canal/61/theme/54/manif/168/video/1489/index.html video at c5 2008]
**Some references to English examples :<br>[[v-toys English]]
**Translation of the French pages, see:<br>[http://community.ofset.org/wiki/En-V-toys En-V-toys]

== Version history ==
; Build 406 (pre-installed on B4 machines): Etoys-37.xo, etoys-2.0.1283, squeak-vm-3.9-10olpc5. Still used Python wrapper.
; Build 542 (Trial-2): Etoys-53.xo, etoys-2.0.1468, squeak-vm-3.9-11olpc4. Native activity.
; Build 623 (Trial-3/Ship.1, factory-installed on first mass-produced machines): Etoys-60.xo, etoys-2.1.1664, squeak-vm-3.9-11olpc5.
; Build 650, 653, 656 (Ship.2, final version for first mass-produced machines): Etoys-71.xo, etoys-2.2.1796, squeak-vm-3.9-12olpc3. PO translations, Quick guides, sharing via presence service.
; Build 703 (Update.1, first big update): Etoys-80.xo, etoys-2.3.1894-2, squeak-vm-3.9-12olpc5. Bug fixes.
; Build 767 (8.2, G1G1 2008): Etoys-94.xo, etoys-3.0.2153-1, squeak-vm-3.10-3olpc10. Use tubes for sharing, Pango text rendering.
; Build 802 (8.2.1, Uruguay 2009): Etoys-99.xo, etoys-4.0.2205-2, squeak-vm-3.10-3olpc11. Fully under MIT+Apache license.
; XO-1.5 (10.2, 2010): Etoys-113.xo, etoys-4.0.2339-1.fc11, squeak-vm-3.10.5-2.fc11. Fedora-packaged.

== See also ==
*[[Sugar Etoys]] (introduction / tutorial)
*http://squeakland.org/ (resources about Etoys in education and on non-XO platforms)
*http://lists.laptop.org/pipermail/etoys/ (mailing list)
*[[Smalltalk Development on XO]] (advanced Etoys use)
*[[Etoys RPM and XO bundle]] (how to build and release etoys and squeak-vm)
*http://www.hpi.uni-potsdam.de/swa/projects/olpc/ (game activities written in Etoys)

[[Category:Software ideas]]
[[Category:Etoys]]
[[Category:Build system]]
{{Activity page
|icon=Image:Activity1.png
|genre=General Search and Discovery
|activity group=Activities/G1G1
|short description=Etoys is a cross-platform, media-rich authoring environment and visual programming system for teaching children powerful ideas.
|contact person=User:Bert
|i18n=https://dev.laptop.org/translate/projects/etoys
|team=Bert Freudenberg, Ted Kaehler, Alan Kay, Yoshiki Ohshima, Ian Piumarta, Kim Rose, Scott Wallace, Takashi Yamamiya, many others
|bundle URL=http://etoys.laptop.org/rpms/Etoys-98.xo
|activity version=98
|releases=8.2.0 (767)
|devel status=6. Mature
}}

Latest revision as of 23:07, 5 September 2014

  english | español | 日本語 | 한국어 | română | français HowTo [ID# 296578]  +/-  
Activity1.png This activity was core
Trac print.png Tickets all - active - new
OlpcProject.png Bert Freudenberg, Ted Kaehler, Alan Kay, Yoshiki Ohshima, Ian Piumarta, Kim Rose, Scott Wallace, Takashi Yamamiya, and many others

see more templates or propose new

Etoys running on the OLPC display for the first time (Sep 11 2006)

Squeak Etoys was inspired by LOGO, PARC-Smalltalk, Hypercard, and starLOGO (see discussion). It is a media-rich authoring environment with a simple, powerful scripted object model for many kinds of objects created by end-users that runs on many platforms, and it is free and open source. It includes 2D and 3D graphics, images, text, particles, presentations, web-pages, videos, sound and MIDI, etc. It includes the ability to share desktops with other Etoy users in real-time, so many forms of immersive mentoring and play can be done over the Internet. It is multilingual, runs on more than 20 platforms bit-identically, and has been successfully used in the USA, Europe, South America (Brazil, Colombia, Argentina), Asia (Japan, Korea, India, Nepal), and elsewhere.

An essay about Etoys on the OLPC: OLPCEtoys.pdf

Further reading: http://www.squeakland.org/resources/articles/

Also, see Smalltalk Development on XO for a guide to the "full-fledged, general purpose, multimedia ready, integrated development environment" that is inside of Etoys.

Mailing list

There is a mailing list specifically discussing Etoys in the OLPC environment. Please subscribe to keep in touch!


  For the general public

For Teachers and Learners

  • There are multiple Tutorials that come with the Etoys activity, which are recommended for first time users.
  • There is a draft of a book describing the ideas behind Etoys on the XO here.
  • The central site for educational use of Squeak is the http://squeakland.org/ website.
  • Waveplace has created thirty video tutorials that teach Etoys.
  • Some Idioms for Composing Games with Etoys (French translation).

Projects for Squeak on the OLPC XO

With Squeak the standard way to save contents/activity is through the project infrastructure. In a project file, you find living objects and source code. The source code is compiled in the host image at load time. Some more information at http://wiki.squeak.org/squeak/1817

Here a few project examples (please add your link here):

Documentation

  • Powerful Ideas in the Classroom, Using Squeak to Enhance Math and Science Learning by B. J. Allen-Conn and Kim Rose, 2003, Viewpoints Research Institute, Inc., 86 pages, ISBN 0974313106 (translations available here)

Documentation in French

Documentation, examples, tutorials, download
  • V-toys Un langage visuel de programmation par script compatible avec Etoys. (Une version spéciale réduite est destinée aux jeunes enfants ne sachant pas encore lire.)
  • géométrie et système expert Projet en cours pour combiner les logiciels de construction de figures géométriques DrGeo et V-geom avec un système expert faisant des déductions à partir de figures et de règles.

Documentation and examples in Spanish

Etoys and Squeak (in the past, The current Etoys system was often referred to as "Squeak") have been used widely, and there are many documentation and books done in various languages. Following is the short list of documentation available in Spanish:


For Etoys designers

To build etoys, the best thing would be to use the actual OLPC image. However, etoys authored using the squeakland.org version should be fairly compatible. Remember that the actual screen of the kids' machines will be very small, even though it has a 1200x900 resolution!


For Etoys Translators

Translation work is done in Sugar Labs Pootle: http://translate.sugarlabs.org

With Pootle you can translate online, or download a PO file, edit locally, and upload. NOTE: uploading does not work currently due to the Etoys PO file size.

Committing in Pootle pushes translated POs into git: http://dev.laptop.org/git/projects/etoys/tree/po

For the release, POs with enough translated phrases are copied to SVN http://etoys.laptop.org/svn/trunk/etoys/po/

For Developers

The current Etoys version for OLPC is based on the squeakland.org image. It runs on the latest Squeak VM with minimal Sugar glue code.

Developer Images have not undergone stripping, project pre-loading, preference adjusting and changes compaction.

  • etoys-dev.zip contains dev image+changes, source PO translation files, and the index file for building the quickguide index.

Remember to update your image!

User Images are the ones actually deployed on the laptop, but since this is Squeak they work on other platforms too:

  • etoys-image-and-pr.zip is a zip of the very latest image, projects, quickguides, and compiled MO translation files in the git tree.

The Squeak Virtual Machine is built from the "olpc" branch:

Activity Source: http://dev.laptop.org/git.do?p=projects/etoys

git clone git://dev.laptop.org/projects/etoys

There is a mirror of the latest git tree at http://etoys.laptop.org/src

RPMs: The Squeak VM and Etoys activity are packaged as RPMs. Download and install from http://etoys.laptop.org/rpms

SRPMs and spec files are at http://etoys.laptop.org/srpm

See Etoys RPM and XO bundle for the release process.

Sugar: For running inside the Sugar emulator, use sugar-jhbuild:

./sugar-jhbuild buildone squeak
./sugar-jhbuild buildone etoys

Etoys are built by default in sugar-jhbuild.

Bugs: Please submit tickets at http://dev.laptop.org/, select the "Etoys" component.

Building etoys.image from developer's image

display size

Developer's image (etoys-dev.image) is included in the svn repository http://etoys.laptop.org/svn/trunk/etoys/ as well as in etoys-dev.zip (see above). etoys-dev.image is configured with proper screen size as 1200x900. Before building an image, it is nessesary to make your display size more than 1200x900. If you have only small screen linux, the simplest way is to add a Virtual directive into xorg.conf like:

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes    "1024x768" "800x600" "640x480"
                Virtual   1280 1024
        EndSubSection
EndSection

and run xrandr to change the display size.

xrandr -s 1280x1024
building release image

Open etoys-dev.image, and execute following expression.

| result aStream |
result := Utilities readServer: Utilities serverUrls copy special: '' updatesThrough: nil saveLocally: false updateImage: true.
result first ifNotNil: [ self error: 'Update failure' ].
SmalltalkImage current closeSourceFiles.
SmalltalkImage current  saveChangesInFileNamed: 'etoys.changes'.
SmalltalkImage current saveImageInFileNamed: 'etoys.image'.
PluggableTextMorph allInstances do: [:each | each askBeforeDiscardingEdits: false].
ReleaseBuilderSqueakland new prepareReleaseImageForOLPC.

aStream := (FileStream forceNewFileNamed: 'update') lineEndConvention: #lf.
[aStream print: SystemVersion current highestUpdate; cr] ensure: [aStream close].

SmalltalkImage current snapshot: true andQuit: true.

New etoys.image is generated. The update number is stored a file named 'update'. Note: To keep etoys.changes clean, it would be better to test the image after upload to the repository.

Upload image to subversion repository
  • svn di po/etoys/etoys.pot. If this file is modified only the header (POT-Creation-Date, PO-Revision-Date, X-Etoys-SystemVersion), svn revert po/etoys/etoys.pot.
  • svn revert etoys-dev.* (etoys-dev should be updated from clean each time)
  • svn ci -m 'Update to {update#}, {some messages}'
Synchronize translations

Go to the git directory for etoys and update Content/ if necessary. Makefile will do everything you need (copy pot from Content to git, copy po from git to Content, and build mo into Content)

  • make
  • git commit -a -m 'some message'
  • git push

Running OLPC Etoys if you do not have OLPC laptop yet - For Content Creators/Testers/Teachers

If you, as most of us, do not have the OLPC laptop, you can still develop OLPC Etoys content. There will be a few minor integration points missing (Camera etc), but most content and testing can still be performed. This section describes how to achieve this.

Method 1 (Easiest) - Use Squeakland installation and the OLPC image

The idea behind this method is to install, on your favorite operating system, the Squeakland Etoys system, and download the OLPC Etoys image and content. Then use the Squeakland virtual machine to run the OLPC image.

How to install OLPC Etoys on your system? (Skip Step 1 and 2 below if you already have Squeak installed.)

  • On Windows
  1. Download and install Etoys from Squeakland. Go to the Squeakland link; in the middle of the page, click on the "Download Squeak" button. On the next page, click on the "Download Squeak" link. Click "Open" on the browser dialog asking you to open or save the SqueakPluginInstaller.exe.
  2. A Squeak Plugin Installer installation dialog will come up; click on "Next", then "Close". This will install Squeak on your system, and create an item on your desktop named Squeak, which looks like this: Squeak Desktop Item
  3. Now Download the OLPC version of Etoys. The latest version can be downloaded from this site. You will need an extract program (such as PKZip, WinZip, or 7Zip) to extract this. Create a folder named "C:\Etoys-OLPC" or similar, and extract the contents of the downloaded etoys-image-and-pr.zip into the newly created folder.
  4. Running OLPC Etoys: Now we are ready to run OLPC Etoys downloaded in Step 3, using the Squeak desktop item created in Step 2. The simplest way to run OLPC Etoys is to drag the file etoys.image from the "C:\Etoys-OLPC" folder you created in Step 3 on top of the Squeak icon created in Step 2. Try it - it works! You should see the OLPC Etoys menu page: OLPC Etoys menu, and are ready to create OLPC Etoys content, test, or just play.
  • On linux: todo (or see other methods below if you don't need the browser integration of squeakland)
  • On Mac: The Windows instructions work fine, although the icons look different.

Method 2 - Use emulation

Emulation allows to "pretend" you have the OLPC laptop - essentially the OLPC laptop runs "inside" your system. You can achieve this on any common operating system you have. Please follow instructions here for descriptions on how to do it using Windows, Linux, FreeBSD, or MacOS.

Method 3 - Install RPMs or .deb's (Linux Only)

If you are on any reasonably recent version of Linux, there are pre-built packages that you can install on your system.

  • On an RPM-based system

Look on the Etoys page for instructions and a link to the RPM download.

Copy a .rpm to a USB memory, and do:

 rpm -i /media/VOLNAME/somefile.rpm

Or, if it complains because of dependency resolve it or simply do:

 rpm -i --force /media/VOLNAME/somefile.rpm
  • On Ubuntu:

For a GUI install, note the help at this page to use synaptic, rather than add/remove packages: http://blog.blobworks.com/2007/10/19/squeak-on-ubuntu/

To use the command line, and the existing "squeak-vm" package with the OLPC etoys.image

  1. apt-get install squeak-vm # or use synaptic as noted above
  2. mkdir etoys # put this directory whereever you like, with any name you like
  3. cd etoys
  4. wget http://etoys.laptop.org/src/etoys-image-and-pr.zip
  5. unzip etoys-image-and-pr.zip
  6. squeak etoys.image

Benchmarks

Discussions

I am writing from an XO laptop! I would love to get more info on the Etoys and what you can do. I love that you can make lots and lots of things and then get them to move. But there is so much it is a bit overwhelming. Where can I find some info on all the different script buttons, or a basic overview of how to arrange code? Thanks Listen

Please refer to the Documentation section of this page as a place to start. --Walter 09:17, 25 December 2007 (EST)

Programming for the OLPC using Etoys Squeak

There is a tutorial on how to set up the Squeak Smalltalk development environment on the XO. See Smalltalk_Development_on_XO. Bert Freudenberg has a way to create an .xo file from an Etoys project or Smalltalk change set. If we write it in Squeak and incorporate that into Etoys image, making an activity can be done on the XO as well.

We are beginning a tutorial series about programming using the OLPC Squeak -- not for kids, but for programmers trying to create activities inside the Etoys environment. We have also a customized kit for the installation of a Windows version of the emulator having Fedora+Sugar+Etoys. One click only... Read how to use it at the tutorials.

Unfortunately, the tutorials are currently only in brazilian and portuguese. The link is here. The pages are in the format to be accessed, in the future, by the OLPC browser.

V-toys, a visual programming language built with E-toys

Mostly in French, but since the language is visual, you can download projects and learn by examples. A visual language for comments will be used so that v-toys will be independent of language in the future.

Version history

Build 406 (pre-installed on B4 machines)
Etoys-37.xo, etoys-2.0.1283, squeak-vm-3.9-10olpc5. Still used Python wrapper.
Build 542 (Trial-2)
Etoys-53.xo, etoys-2.0.1468, squeak-vm-3.9-11olpc4. Native activity.
Build 623 (Trial-3/Ship.1, factory-installed on first mass-produced machines)
Etoys-60.xo, etoys-2.1.1664, squeak-vm-3.9-11olpc5.
Build 650, 653, 656 (Ship.2, final version for first mass-produced machines)
Etoys-71.xo, etoys-2.2.1796, squeak-vm-3.9-12olpc3. PO translations, Quick guides, sharing via presence service.
Build 703 (Update.1, first big update)
Etoys-80.xo, etoys-2.3.1894-2, squeak-vm-3.9-12olpc5. Bug fixes.
Build 767 (8.2, G1G1 2008)
Etoys-94.xo, etoys-3.0.2153-1, squeak-vm-3.10-3olpc10. Use tubes for sharing, Pango text rendering.
Build 802 (8.2.1, Uruguay 2009)
Etoys-99.xo, etoys-4.0.2205-2, squeak-vm-3.10-3olpc11. Fully under MIT+Apache license.
XO-1.5 (10.2, 2010)
Etoys-113.xo, etoys-4.0.2339-1.fc11, squeak-vm-3.10.5-2.fc11. Fedora-packaged.

See also

Activity Summary

Icon: Sugar icon::Image:Activity1.png
Genre: Activity genre::General Search and Discovery
Activity group: ,|x|Activity group::x}}
Short description: Short description::Etoys is a cross-platform, media-rich authoring environment and visual programming system for teaching children powerful ideas.
Description:
Maintainers: ,|x|Contact person::x}}
Repository URL:
Available languages: ,|x|Available languages::x}}
Available languages (codes): ,|x|Language code::x}}
Pootle URL: Localization URL::https://dev.laptop.org/translate/projects/etoys
Related projects: Related projects,|x|Related projects::x}}
Contributors: ,|x|Team member::x}}
URL from which to download the latest .xo bundle Activity bundle::http://etoys.laptop.org/rpms/Etoys-98.xo
Last tested version number: Activity version::98
The releases with which this version of the activity has been tested. ,|x|Software release::x}}
Development status: Devel status::6. Mature
Ready for testing (development has progressed to the point where testers should try it out): ,|x|Ready for testing::x}}
smoke tested :
test plan available :
test plan executed :
developer response to testing :