One of the greatest problems facing the learner of a programming system, or indeed almost anything, is not knowing the conventional names for things. What does the learner look for? So one purpose of a glossary such as this is to bring the terminology together where it can be discovered.
Whether it is an equal problem to know the terms but not what they mean depends in part on the organization of a document. It is good practice to define terms on first use, but this is not sufficient. This problem is compounded in the case of a highly-structured but also highly non-linear system. It is much worse when most of the structure is deliberately hidden from the user, as is the case with Etoys.
This glossary collects and defines the terminology and abbreviations used in Etoys, and to the extent necessary for explaining Etoys, terminology from Squeak and Smalltalk also, where they differ from usage in other realms. It does not attempt to explain the names of Etoys or Squeak objects. Etoys objects are described in the Objects and More Objects chapters, and the corresponding Squeak objects in the Morph Definitions appendix. Further information is available using the introspection tools in Squeak, described in the Programming Tools chapter.
Audio Interchange File Format
aspect ratio Ratio of width to height of an image, Morph, window, or screen.
badge The tool for communicating with joined buddies, providing information on the person connected with, and various modes of communication.
balloon help Help text that appears when the user hovers the mouse pointer over an object.
Editable by users as shown here with the Halo menu selection below.
basic (viewer category) A menu of commonly used options in any object viewer. Displayed by default when a viewer is opened. Each of these options appears in another category (geometry, motion, or sound) as well.
Basic (Object Catalog category)
A smooth curve made of segments of cubic curves joined smoothly together. Cubic curves can be defined algebraically by cubic equations, or visually, by specifying a start and end point and the directions and curvatures at both with handles for adjustment. In Etoys Curve Morphs, curvy polygons, and such, the adjustment points are in the middle of segments, thus.
black tool (Halo)
See Pick-up tool
blue tool (Halo)See Viewer tool
A multi-page structure for creating texts, presentations, and the like by dropping in other objects, with controls for adding or removing pages and for navigating.
Boolean value type
A type for variables that can have one of just two values, True or False.
BorderStyle value type
A type for variables that can have any of the following values:
Etoys objects generally have a border style tile such as this:
Changing the setting affects the appearance of objects that use a border.
brown tool (Halo)
See Move tool
Click in an image being edited to flood the connected area of the same color as the selected point with the current painting color.
In the Sugar version of Etoys, another Sugar user connected via the collaboration mechanism. Click the Sharing button to begin.
An Etoys object, a button with editable text.
button (viewer category)
In the viewer for a button object, the following menu of programming tiles.
ButtonPhase value type
A type for variables that can have the values button up, button down, or while pressed, corresponding to the states of a ThreePhaseButton.
category (Viewer), see viewer category
Change color (Halo)
Depending on the object type, a purple tool to open a colorpicker or to allow the user to select a color from the screen.
Change font (Halo)
Change size (Halo)
Change emphasis & alignment (Halo)
Halo tools for styling text within an object.
In the Smalltalk language, everything is an object, created as an instance of a class. The definition of a class consists of a specification of its superclass, of declarations of variables, and of code for methods. Thus the class Integer is a subclass of Number, and defines methods for various arithmetic operations. Every class is an instance of the class called Class. Most Smalltalk classes are defined entirely in Smalltalk, but some that deal with the external world or with system fundamentals, including the core of the object hierarchy, are implemented in a Virtual Machine.
A tool for clearing a drawing and starting over.
closing (Script Status)
Run this script when the object is closed.
Use this tan tool to reduce an object to a button with a similar toolbar icon for restoring the object.
collapse (toolbar button)
Reduce an object to a button with a similar toolbar icon for restoring the object.
color (viewer category)
Color value type
A 24-bit color that can be chosen from a color picker such as this one.
color swatches (PaintBox)
An area that holds color samples for reuse during a Paint session.
A scripting tile containing an executable command, in contrast with assignment and test tiles. A command tile can be recognized by the ! icon on its left. Clicking that icon executes the command once.
connectedTo (Script Status)
Run this script when a connector connects to this object.
Etoys graphical objects have predefined points where connectors can join to them. When the user holds a connector end over the object, the connection points are shown. When the user drops the end, it connects to the nearest connection point.
The user can add connection points by dropping pins on the object.
connections to me (Viewer category)
When a connector is connected to an object, the target object gets this category of scripting tiles.
A line, straight or curved, with connection points at each end that can be dragged and dropped on connection points in objects to make diagrams. Connectors can have a great variety of graphic forms, including line types, arrows at each end, and more.
Connectors (Object Catalog category)
control structure tile
Either a test yes no tile for branching or a repeat tile for looping.
The Morph that provides the graphic for an object. Objects with a graphics category in the viewer have a look like tile for swapping costumes (as in animations) without changing their other properties.
A variable type.
How are custom events created, and what are they used for?
dark blue tool (Halo)
See Rotate tool
See Object, value type
delete tool (Halo)
An X in a pink background at the top left of a Halo, used for deleting the object whose Halo it is from the workspace and sending it to the Trash.
disconnectedFrom (Script Status)
Run this script immediately before a connector disconnects from this object.
do it (Squeak)
A Squeak command to execute Smalltalk code in a text window.
A default object in scripting tiles, such as "image overlaps dot", "turn toward dot", and so on. Get a tile for another object and drop it over dot on a tile in a viewer or script to replace it.
drag & drop (viewer category)
In addition to the ordinary meaning of drag and drop or pick up and drop, in Etoys there is an operation of dropping one object on another to create a composite object. There is a property represented by a scripting tile, Object's drop enabled, which controls whether the object accepts dropped objects and incorporates them into itself, or whether objects dropped on this object remain independent, simply lying in front.
Adobe Document Structuring Conventions used in PostScript conversion
A paint tool for dragging in a sketch to turn selected areas to the background color.
A graphical art and programming environment built on Smalltalk and Squeak.
What you see when you play back an Event Tape made in an Event Theatre.
An auxiliary tool showing the full "score" of an Event Tape made in an Event Theatre.
A term interchangeable with "Event Tape."
The results of an event-theatre session; an interaction sequence that can be played back.
An authoring tool providing a workarea and tools for creating and recording a sequence of Etoys events (an Event Tape) and playing them back (an Event Movie).
In an Etoys programming tile, the argument of a command or a value to be assigned. Numeric values can be edited to combine several values and functions.
fill & border (viewer category)
A hidable area for holding a catalog of objects, such as a Button Flap (initially empty, ready for the user to drop buttons or other objects in it), a Connectors Flap with a selection of connectors, or the Help Flap with a set of Etoys Quick Guides. Each flap has a tab that the user can click to hide or show the flap's contents, as shown in the images below.
Distinguish from heading, which is the direction the object moves under the forward by command, and from the orientation of the object's costume. Change the forward direction and heading together without rotating its costume by activating the object's direction arrow using the Halo menu, and then shift-dragging the arrow. Rotating a Morph changes its heading and orientation, but not its forward direction. Editing the heading value in the object's viewer does not change the forward direction, but does rotate the costume, while changing the forward direction results in the same numeric change to the heading with no change to the orientation of the costume.
These three properties can thus be set to arbitrary values.
There appears to be no place in Etoys where the forward direction is used. Why is it there?
Gallery of Projects
One of the clouds in the opening Etoys screen, offering access to a selection of Etoys projects, including tutorials, simulations, games, particle models, and Turtle Art.
Games (Object Catalog category)
On a script editor toolbar, an icon giving access to this menu of scripting tiles. in some documentation, this is called the Gold Chest.
grab object (Viewer menu)
Menu selection to attach the object to the cursor so that it can be placed wherever desired with a click.
geometry (viewer category)
Graphic value type
[What is this? How do you set it, and how do you use it?]
Graphics (Object Catalog category)
Gray tool (Halo)
See Redraw tool.
Green tool (Halo)
See Duplicate tool.
Halo A set of tools provided for each object. Right-clicking the object brings up a halo like this one.
There are variations on the tool set available for different objects. Text objects have tools for font, style, emphasis, and alignment. Graphical objects such as Sketches have a Paint tool.
A tool in the form of a circle with an arrow that changes both the direction of "forward" (hold down the shift key and drag the tip of the arrow to the direction you want the object to move) and the center of rotation (hold down the shift key and drag the circle to the new center).
The direction in which an object will move under the forward command. Distinguish from the object's forward direction [what is that?]. Rotating the object changes only the heading. Using the object handle in the Halo changes both the heading and the forward direction equally. Editing the heading in the object's viewer changes both, while editing the forward direction leaves the heading unchanged.
An icon of a question mark on the Etoys toolbar.
Clicking it opens a help flap containing a menu of Etoys Quick Guides.
Clicking the portion of the flap that says Help reduces it to a corner of the Etoys window.
Clicking on this area opens the flap up again.
An object containing the given Etoys object as a component. Examples are Menus holding Menu Items, or toolbar Alignments holding buttons of various kinds. Objects not otherwise held have the world as their holder. The world does not have a holder. Objects have holder variable tiles in their Miscellaneous viewer category menus. [What can one do with the holder tile?]
A type of button used in toolbars. Distinguish from ThreePhaseButton.
IDE See Integrated Development Environment
ImageResolution value type
A variable type with the possible values original, 256 colors, 256 grays, 4 grays, or black and white. [What is this for?]
For a given method name, any class that implements a method of that name. For example, several numeric classes implement various arithmetic functions in different ways. Some classes do not implement certain methods at all, if they are not appropriate for the object type concerned.
Attached to the mouse cursor with a button down so that the user can drag it to the desired location. It is placed when the mouse button goes up. For connectors, the source end is placed when the button goes up, and the destination end when the button is clicked and released again.
input (viewer category)
A development tool for examining the contents (instance variables) of an active object. You can also use it to send messages to an object.
Integrated Development Environment (IDE)
A set of tools in a common user interface to assist the programmer by organizing information about the program being developed as well as the development environment and programming language.
Etoys and Squeak both do this, but in quite different ways. Squeak provides access to all of Smalltalk using tools to define objects and methods in text, while Etoys usually restricts the user's access to a predefined set of objects and methods, with programming done in a tile-based Script Editor. Using certain keyboard shortcuts, however, the user can go behind Etoys to access the more powerful but more complex Squeak tools.
In Sugar education software, work is saved in a Journal as a searchable, sequential record, rather than as files in a conventional file system. The Sugar version of Etoys implements this with two icons on the toolbar, one to keep a copy of the current project in the Journal,
and one to find a saved project in the Journal.
Just for Fun (Object Catalog category)
A combination of keys that has a defined action, such as bringing up a particular menu or a window of a particular type.
KeyStroke (Script Status)
?? Not on the Script Status menu. Presumably this would run a script to process a keystroke.
Etoys supports several languages in its user interface. Click the globe icon on the main toolbar.
This menu comes up.
For graphic objects there is a programming tile that allows the object to take on the appearance of any other object. This is particularly useful for animations.
Make a tile (Halo)
Brown tool to create a scripting tile for this object.
Abbreviation for Monticello
A black and white icon of a list.
It is used to bring up a menu of Object actions.
In Smalltalk, where everything is an Object, programming is done by writing methods to define the behavior of objects, and then sending messages to Objects to evoke those behaviors. Objects can inherit methods and behavior from their Superclass, or its Superclass, and so on up the inheritance chain.
miscellaneous (viewer category)
A package manager for installing extensions to Etoys software
more geometry (viewer category)
1) A graphical object. Etoys objects are implemented as scriptable Players wearing Morphs as changeable costumes. See the Objects and More Objects chapters, and the Morph Definitions appendix, for lists of such objects in Etoys and Squeak, with information concerning their appearance, behavior, purposes, and implementations.
2) A Class in Squeak with an extensive subclass hierarchy and an extensive method library.
motion (viewer category)
MouseDown (Script Status)
Run this script when the left mouse button goes down on this object.
MouseEnter (Script Status)
Run this script when the mouse pointer moves over this object.
MouseEnterDragging (Script Status)
Run this script when the mouse pointer moves over this object with the left button down.
MouseLeave (Script Status)
Run this script when the mouse pointer moves away from this object, button up.
MouseLeaveDragging (Script Status)
Run this script when the mouse pointer moves away from this object, button down.
MouseStillDown (Script Status)
Run this script while the mouse button remains down.
MouseUp (Script Status)
Run this script when the mouse button is released.
A brown icon for a tool that allows an object to be dragged and dropped.
Distinguish from the Pick Up tool, which attaches an object to the cursor temporarily when the mouse is clicked and released.
Multimedia (Object Catalog category)
Morphic Viewer C?? What are MVC Browsers?
[something about connectors?] NCAA is the anti-aliased version.
normal (Script Status)
Run this script when it is called.
Number value type
A floating point numeric value, which can be a constant or the result of an expression.
Smalltalk is an object-oriented programming (OOP) language, in which everything is an object. Objects are defined as instances of classes, which are defined by their internal values and externally accessible methods for responding to messages. In Etoys, everything is a graphical object with a visual representation and a set of variables and methods accessible in the object's viewer.
A tool for accessing a wide selection of Etoys objects alphabetically by name, with a search function, or by category.
A Squeak tool for viewing the structure of objects, showing how it is composed of other objects.
observation (viewer category)
Open a viewer (Halo)
A tool for opening the viewer for an object, showing the scripting tiles for that object and providing support for creating variables and modifying their datatypes.
Open in hand
Create an object attached to the mouse cursor, to be held while the mouse button is down, ready to be dropped into a world when the button goes up. For connectors opened in hand, the source end is placed when the button goes up, and the destination end when the button is clicked and released again.
Opening (Script Status)
Run this script when the object is opened.
An object overlaps the edge of its container. The world, books, and playfields are containers. The part of the object outside the container is normally not displayed.
Change to rotation center in text.
A tool for drawing, using a circle in one of six sizes.
Running multiple programs at the same time. In Etoys, this can be done by running multiple scripts at the same time, or by using a particle model implemented in Squeak. There are Etoys controls to start and stop all scripts, or just scripts of a certain type. Etoys provides a very gentle introduction to parallel programming, but allows users to explore its full complexity, which is a major topic in Computer Science.
Patch value type
[I know what a Patch is. Why patch-valued variables?]
paused (Script Status)
This script is ready to be run continuously when switched into ticking mode.
pen use (viewer category)
The gray Halo tool has an icon of a pencil.
It brings up the PaintBox so that the user can alter the object's drawing.
Pick up (Halo)
The black Halo tool allows the user to pick up an object with one mouse click, and drop it elsewhere with another click. Distinguish from the Move tool, which supports drag and drop.
A pin is a graphic indication of a connection point that can be dropped on other objects. Pins can be redrawn or have their colors change to blend in with the target object.
Pin (Menu tool)
Some, though by no means all, Etoys and Squeak menus have this pushpin icon on their top bars.
Clicking this icon tells the menu to remain open in the workspace, even if the user makes a selection or clicks elsewhere. The pinned menu does not show this icon, but can be closed in the normal way with the pink Close tool.
Pink tool (Halo)
See Delete tool
Any scriptable object. A player normally wears a Morph as a costume to define its visible appearance and the set of scripting tiles that apply to it. In animations, the player changes costumes in rapid succession to give the illusion of motion.
Active players are those referred to in a script open in the world or in any object's viewer, including of course their own. They are displayed in the Players tool from the Object Catalog in a scrollable list.
For each Player listed, there are tools to show a menu of commands, to reveal the object if it is hidden, and to open an object viewer on it. This is the command menu.
Player value type
Type for a variable that can hold any Object type. To change this value, put the variable tile in a script, drop a tile for the desired object in place of the existing type, and run the script.
An Object type designed as a background to hold and display other objects.
Point value type
Type for a value that holds the coordinates of a point in the form 0@0, with the x coordinate first and the y coordinate following. The x coordinate runs from 0-1200, left to right, and the y coordinate 0-900, bottom to top, in the display area, but values outside that area are permitted. Object locations are point values.
Arrange and display code so as to reveal its structure. This can include line breaking and indenting, choice of symbols, coloring, and highlighting.
print it (Squeak)
Execute the current line or selected text, and display the result in text form.
A grouping of methods for convenience in organizing, searching, and understanding the object whose methods they are. Thus, for example, many objects have an initialization protocol.
Books (in the Etoys sense) in a Help flap accessed with the ? tool on the toolbar.
A tile for mathematics functions, provided in the Gold Box in the toolbar of a Script Editor and in the Object Catalog.
When random is part of an expression in a tile in the Script Editor, clicking it brings up this menu.
What is this, and what does it do? It does not turn up in a Google search for squeak recognizer. All I have on it is the Cmd-r keyboard shortcut, but I do not see any result from that.
Red-brown tool (Halo)
See Move tool
Redraw tool (Halo)
A gray pencil tool in the Halo of a Sketch to bring up the Paint toolbox.
Repeat control structure tile
A tile available from the Gold Box menu to repeat any sequence of tiles a given number of times.
The repeat count can be the result of an expression.
Reveal object (viewer menu)
A command provided in the viewer menu for an object to show it when it is hidden. The object's Halo is also displayed.
Click and drag this blue tool to rotate the object.
Script ARchive file format, a zip file of structured Squeak code. See also SM.
An Etoys program built from tiles, usually in a Script Editor.
The object type of a Script Editor for tile-based programming.
scripting (viewer category)
Scripting (Object Catalog category)
ScriptName value type
A variable datatype that can hold the name of a currently defined script. Any current script name can be entered by cycling with the up and down triangle controls, or by clicking the name to get a menue.
Any of several states of a script indicating when the user intends it to run. The states on the following menu are defined elsewhere in this Glossary.
scripts (viewer category)
A category listing any user-defined scripts for this object.
A tool on the toolbar of a script editor, providing access to a menu of Script Status states (defined above) for controlling execution of the script.
scrolledIntoView (Script Status)
Run this script when the object is scrolled into view in a GeeMail Morph. [What is that?]
scrolledOutOfView (Script Status)
Run this script when the object is scrolled out of view in a GeeMail Morph. [What is that?]
A Smalltalk message.
An Object method that sends a particular message. There is a command to open a window displaying all senders of a specified message.
In Sugar collaboration, open up a software session so that others can join in. Sharers are called buddies. Buddies sharing the same session can see the same display, showing each other's work, and can work together on creating documents, images, programs, and so on.
At Squeakland.org, a repository for contributed projects.
SqueakMap, a software package format for Squeak. See also SAR.
Smalltalk The first fully object-oriented programming language, integrated development environment, and graphical learning environment. Alan Kay's research group at Xerox PARC created Smalltalk as part of the Dynabook project, aiming at creating a computer inexpensive enough to give to every schoolchild, and powerful enough for doing all schoolwork. In other words, the OLPC XO. In Smalltalk, everything is an Object, an instance of a Class, defined in Smalltalk. Even the Smalltalk Virtual Machine is developed in Smalltalk (since bootstrapping the first handcrafted version) and translated to C for compiling for specific platforms. Smalltalk programming is done by defining methods within objects, and then sending messages to objects, which thus can determine for themselves how to respond. In incidental side effect of Smalltalk was the creation of the Apple GUIs for Lisa and Macintosh computers, which inspired Microsoft Windows, the X windowing system for UNIX, and many others. Squeak is implemented in Smalltalk, and Etoys is implemented in Squeak.
sound (viewer category)
Sound value type
A datatype for variables giving access to a menu of preprogrammed sounds.
Source menu (Squeak)
Spawn method (Squeak)
Open a browser on the protocol of the current method.
A graphical IDE for Smalltalk
A web site for Squeak and Etoys
A tool that allows the user to turn any rectangular part of a drawing into a painting tool. Clicking in the work area puts down a copy of the region. Clicking and dragging puts down a copy at each point of the dragging path.
String value type
A datatype for variables holding a text string. Click on the text to edit it.
System Browser (Squeak)
An IDE tool for examining any Squeak object with its variables and methods, as grouped into categories of classes and protocols of methods, and for creating more of each. Within the System Browser are options for examining the parts of categories and classes, searching for classes and methods, and examining the relationships among all of them.
A flap in the Etoys workspace giving access to a variety of Etoys objects, including the Object Catalog. Click the toolchest icon to open it. Users can copy objects to the supplies bin for temporary storage.
Tan tool (Halo)
See Collapse tool
tests (viewer category)
TestYesNo control structure tile
A button with three states, called button down, while pressed, and button up.
A Morph used as a tool in a Script Editor. It changes color with the state set for running the script: green for normal, pink for paused, gray for ticking, and other colors for other states.
Click the TickIndicator to set a paused script ticking, or to pause a ticking script. Click the name of the state to get a menu of possible settings.
ticking (Script Status)
Running this script continuously, repeating whenever it finishes.
A component for scripting, the Etoys version of programming.
An area containing icons for various actions.
Discard the current drawing and close the PaintBox.
A window that shows messages from running programs.
A receptacle for discarded objects. Double-clicking on the Trash opens it to allow objects to be recovered.
Type, see Value typeTrailStyle value type
Styles for pen trails, with a choice of lines, arrows, arrowheads, or s, as in the examples below.
A button to undo the last Paint operation.
One of a set of object types that can be values of variables. When creating a variable, the user can choose to set the type from the variable menu, getting this list to choose from.
Part of the definition of a Class of object in Smalltalk is the definition of variables, which are normally kept internal to the definition and not accessible by other objects. These can be Class variables, in which there is a single value used by all instances of the Class, or Instance variables, where each Instance gets its own private variable and can maintain its own value, independent of other instances.
Each Etoys variable is defined in the viewer for a particular object type, in the following form.
The components of a variable are the menu at the left, the object name, the variable name, an assignment arrow, arrows for modifying the variable's value, and the current value.
See also watcher and value type
variables (viewer category)
Users can define their own object types in Etoys by renaming existing objects and then changing their definitions. In particular, users can create variables for the new type to use, choose the value type for the variable, and either set the value manually, or write scripts to set its value or change it dynamically.
For any Etoys object, there is a viewer that shows the actions it responds to, the values of its variables, and the tests that can be asked
For every object there is a viewer that shows the program tiles for that object. These tiles are divided into categories that the user can select for display purposes, .
A tile that continuously displays the value of a variable. There are two kinds of watcher, the simple watcher that only shows the value,
and the detailed watcher that shows the name of the object and the variable, in addition to the value.
In both cases the user can modify the value of the variable through the watcher, just as in a variable tile.
A window for entering and optionally executing text.
The background object in which other objects are placed in Squeak and Etoys. It has a Halo with fewer tools than other objects (menu, paint, color, viewer, tile). gives access to this world menu.
Yellow tool (Halo)
See Resize tool
Zoom And Scroll Morph