Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
The Welcome Workspace
Last updated at 10:36 pm UTC on 13 May 2007
This is an attempt to make the welcome workspace be more useful.
It should actuallyexplain what is going on. We start by explaining quickly what Squeak is and then start on how to get around; scrolling first so as to be able to get to the next bits.

Squeak 3.7beta 5923

What is this?
Squeak is an open source implementation of Smalltalk with an expansive and rapidly developing world of objects included. Squeak includes a fully integrated development environment, networking, sound synthesis and sampling, speech synthesis, 2 & 3D graphics, arithmetic and data structure
libraries. Even the tools to produce the its own Virtual Machine are available so that you can build your own - and most of the VM is written in Smalltalk. Not only is all the Smalltalk source code included and changeable at will, it is also completely open and free. The Squeak system image runs bit-identically across all platforms, and VMs are available for just about every computer and operating system available.

How to use it
On the right of this window is the scrollbar. It looks and works just like those in most GUIs. The funny little square at the top is a button that gives access to a menu applicable to the contents of this window, just in case you are using a Mac or other device with only one button. As you might guess from the relative size of the scroll sausage within the scrollbar, there is quite a lot in this window to read. (scroll down now...)


Ah, there you are.
Getting a Menu
If you have a multi-button mouse you will find that you can open a menu with a mouse button. Although these things are extremely configurable, in general you will find that:-
a) a single button mouse uses the button to select text or buttons or drag the scroller etc. Use the mouse button on the scrollbar square or with the meta-key to get a menu. Use the button with meta-key2 to get a halo - which will be explained later.
a) a two button mouse uses the left button to select text etc and the right button to open menus. Use the right button along with the meta-key to get a halo - which will be explained later.
b) a three button mouse will normally use the left button for selecting, the middle button for menus and the right button for halos.
Squeak does not use the menu bar typical of Windows or Mac OS - menus belong to each window or pane within the window. If you open the menu for this window you will notice that it has many entries that are obviously related to text editing.

Using a menu
Menus in Squeak operate like those in many other systems - you press the menu button, hold it down, move the pointer and release the button when the option you want is highlighted. If you click the menu button the menu will pop up and you can move the pointer to the option desired and click the button again.
Menu options with an ellipsis will normally open a submenu.
{ explain keyboard control of menus?}

Text
[Blue items in this window are active text. If an item contains a URL, it will require internet access and may take a while to load].
{explain text editing cut/copy/paste/paste.../find/again, fonts/styles}

Key commands
There are a number of keypress activated commands available in most text panes.
{either list or link to Command Key Action}

Moving and resizing windows and panes

Halos
{Anyone care to explain halos?}

Flaps
{ditto?}



System Features

SqueakMap
An exciting feature which has recently been made available is SqueakMap, a package catalog system for Squeak. As of this release, over 100 packages/applications have been added to SqueakMap by members of the Squeak community. You can easily browse and install these packages directly in Squeak by using the SqueakMap Package Loader, which is available from the "open..."/"Package Loader" menu (or, by clicking here).

For more information on SqueakMap, see SqueakMap.

Morphic
This release of Squeak uses the Morphic graphics architecture. Squeak also includes an MVC architecture available inside MVC projects (see the world menu 'open...' options). Most of the standard system windows can be opened in either framework, but media support is much more highly developed in Morphic. In addition, the Morphic framework includes Genie, a character and gesture recognition system that allows you to control everything in Squeak by just using a pen. Click on: AGenieIntroduction.

Projects
Projects are separate worlds within Squeak, similar to pages on the Internet. In fact active projects can be shared over the internet just like web pages. We have included a number of demonstration projects in the 'Worlds of Squeak' window. Other projects may be found by selecting the 'FIND' button under the Navigator flap at the bottom of the screen.

To 'Go Back' from a project you have entered, choose 'previous project' from the world menu, or ' PREV' from the navigator flap.

Color graphics
Squeak's BitBlt has been retrofitted with support for variable-depth color and many performance enhancements. It has several added functions including a paint mode that supports transparency, and an alpha-blend mode for 32-bit color. It also has a "warp-drive" variant that will scale, rotate, and otherwise deform bitmaps in a single pass. Interested users will want to try
Display restoreAfter: [WarpBlt test1]
and
Display restoreAfter: [WarpBlt test3].

Sound
Squeak includes base classes and some simple primitives that support real-time background generation of sound and music. Interested users may want to try
AbstractSound stereoBachFugue play.
as well as the examples in the Worlds of Squeak.

Balloon
Squeak now includes a completely new outline-based graphics subsystem named Balloon. Balloon graphics are independent of scale and rotation, and may be rendered simply or with 2 degrees of anti-aliasing. For a quick demonstration, click on...
(FlashMorphReader on: (HTTPSocket
httpGet: 'http://www.squeak.org/Squeak3.4/areallycoolflash.swf'
accept:'application/x-shockwave-flash'))
processFile startPlaying openInWorld.
This example (courtesy of Herves Flores (email - herve.flores@free.fr; web site - http://herve.flores.online.fr) also demonstrates that Squeak includes a fairly complete implementation of the Flash3 graphics file format, with conversion to Balloon graphical objects. Since it's all in Squeak, you can stop the player and take apart the morphic balloon objects. (NOTE: The Balloon Flash player will only play Flash3 files – not Flash4 or Flash5.)

Networking
Squeak supports network access. If you are on a web-connected network, you might want to try...
HTTPSocket httpShowGif:
'http://squeak.org/Squeak2.0/midi/Squeakers.GIF'.
There are more examples in the Socket class. Also included with this release is a complete WikiWiki server. See the accompanying information on WikiWiki.

Squeak's FileList also supports network access. Available servers are shown at the [] root, and new servers can be added with the 'add server...' menu command.

Finally, as mentioned above, Squeak can download active projects over the net...
Project fromUrl:
'http://209.143.91.36/super/SuperSwikiProj/FinalFrontier'.


Development support
Squeak includes a mature program development system. Most of the components of this system can be found in the world menu 'open...' options. Most of the available functions can be surveyed in various menu choices, and also in the world menu 'help...' / 'command-key help' option.

Shrinking Squeak
If you wish to unload the "Worlds of Squeak" examples from this image, make a backup copy, execute the following five lines, close the window, and then save the resulting image...
ProjectViewMorph allInstancesDo:
[:m | (m hasProperty: #deleteWorldsOfSqueak) ifTrue:
[Project deletingProject: m project. m delete]].
Project rebuildAllProjects.
ScriptingSystem spaceReclaimed

It is possible to shrink Squeak much more than this. Earlier releases of Squeak came with a specially-prepared fileIn, with a name such as "MajorShrinkFor3.0.cs", which, when applied as described in accompanying instructions, could create an image that is under 1MB in size. Squeak 3.5 does not come with such a majorShrink file-in, but you could use an earlier version of majorShrink as a point of departure, or, better still, search for up-to-date information about shrinking on the Squeak swiki. Here is a good point of departure:
Smalltalk majorShrink

Further Documentation
The Squeak Swiki at Georgia Tech is currently the primary source of online documentation and community information regarding Squeak. It contains a FAQ, tutorials, and much more. Visit it at:
Squeak Swiki

History
The history of the Squeak project can be read at
ftp://st.cs.uiuc.edu/Smalltalk/Squeak/docs/OOPSLA.Squeak.html
The Squeak license and most other relevant information can be found on the Squeak Home Page,
http://www.Squeak.org

The Squeak License
Squeak is distributed for use and modification subject to a liberal open source license. http://squeak.org/license.html. Unless stated to the contrary, works submitted for incorporation into or for distribution with Squeak shall be presumed subject to the same license.

Portions of Squeak are:

Copyright (c) 1996 Apple Computer, Inc.
Copyright (c) 1997-2001 Walt Disney Company, and/or
Copyrighted works of other contributors.
All rights reserved.

Shared Recipes