Welcome to the Squeak  pages of Maarten Maartensz. See:  Map + Tour + Tips + Notes + News + Home



Squeak-subjects

 

Squeak

 

 

User Manual part 1 version 1


I decided it was high time to do something about Squeak's documentation, and the urgent need to have a User Manual for Squeak inside Squeak.

Here is version 1 of part 1 of it - where you have to realize for the text that follows it is presumed you are in fact reading it in Squeak. There will soon be a version of the User Manual available for Squeak.

And since I've had comments about the standard font I use on my site, namely Arial 12 p bold: I'm sorry if it's too large for you, but you can easily change it on your browser, while I have problems with my eyes and 1500 files of text on my site.

Also, I use the keyboard references for Windows, since I use Windows, and the Alt-key on Windows is used for much, whereas its alias in Smalltalk ("Cmd") is unknown in Windows. There will be a list with common names for diferent keyboard keys in the User Manual. (So if you are on a Mac or on a Linux system: There things are named a bit differently sometimes! And my excuses if I fail to be all things to all men and women. It is a human-all-too-human failure, I believe.)

Finally, the present version of my text presumes a very recent Squeak-version: 3.2 (alpha) #4542. (Some things are somewhat differently organized in earlier versions.)


Hello. 

Welcome to the Introduction to Everything in the User Manual.

  • This User Manual seeks to introduce you to Squeak. 
  • It does so by describing what you see and can do.
  • You are advised and sometimes invited to try out what you can do.
  • As you read through this tutorial, later parts presume you have read and done most of the foregoing.
  • Keywords will be red in this text, and stress that these words are important.

To read this tutorial with profit you do not need to know Squeak, but you do need to be familiar with the basics of using a computer - you need to know how to use a mouse and a keyboard; what windows are; what "drop and drag" means and similar other minimal computer knowledge and skills.

To the purpose!

What you're seeing now - when you read this text as announced above inside a Workspace in Squeak! - is a window with this text inside a larger window. 

The window this text is in has a title - Introduction to Everything in the User Manual - and it can be moved around with the mouse by means of the topbar, resized by dragging the sides of the window, (un)collapsed by pressing the circle on the right in the topbar, and be made (not) full screen by clicking on the two squares. It has a scrollbar to the left and a menu that can be gotten by clicking on the left square. And the whole window can be removed by clicking the x (which you are not yet invited to try).

The text in this window is editable (which you are also not yet invited to try), and the window is called a Workspace, while the containing window is called a Project window.

Now that you know where you're in - Squeak, in a Project called User Manual, reading a text called Introduction to Everything in the User Manual - three more basic thing before starting to answer the question "What is Squeak?". 

The first basic thing is: How to save and quit Squeak. You do this by moving your cursor to the Project window, left-clicking and take one of the last 4 options. Doing just "save" just saves - ALL of the current system, which will be restarted precisely as you left it when having done "save and quit". Generally it is wise to save every half hour or so, and immediately after whatever you made you really don't want to lose. Whatever got properly saved almost certainly will be easily recovered the next time you start Squeak, indeed exactly as and where you left it.

The second basic thing is what to do if you run into a so-called Walkback. This arises as follows: Squeak is all the time in the background responding to your input - which is why you can make things happen in the environment. Your input consists of mouse-clicks, mouse-movements, or keyboard-presses, and are best conceived of as messages to Squeak and to the computer. Now it  may happen you give Squeak some message it cannot handle. Squeak's response to what it cannot handle is with a window that tells you it doesn't understand a message, and Squeak offers you three options; Proceed, Abandon and Debug. At this point it is wise that when you run into this, to click Abandon. This will return you and Squeak to where you were before you sent the message that you somehow composed and send to Squeak that Squeak had no other programmed response to - which is the reason it sent you the responds it doesn't understand your message.

The third basic thing to know is what to do if Squeak appears not to respond anymore. You can stop whatever Squeak is doing at the moment by keying in (on Windows) Alt-. i.e. the Alt Key "Alt" with the dot key "."



What is Squeak?

Squeak is a programming environment and a programming language bundled together.

It is different from anything you know - even if you think you know it. You can program with it. You can draw with it. You can write with it You can make music with it. You can do mathematics with it. You can make presentations with it. You can play games with it. You can browse the internet with it, write e-mails with it, chat with it, and generally communicate with it through your computer. You can do anything with and in it a computer can do, display, express, or help to present or understand, including your own new ideas.

In short: It is a universal environment for doing art, science, programming and having fun using computers creatively.

Squeak is free. Squeak is written in itself. You get the full source code for everything you can do with Squeak included with Squeak, written in Squeak, and for you to play with, use, learn, and change as you see fit - which itself is pretty unique: Nothing is hidden or kept secret for you in Squeak, and everything is free and open: 

In Squeak, everything you do with it and everything it displays comes with its own free open source-code, that enables you to understand and change everything about it. In simple intuitive terms, "free" means "without payment"; "code" is the textual form of programs that may be run on a computer; and "open source" means that you get the code for the programs you run with the programs you run (so that you can see and come to understand why the programs do run as they do, for this depends on their coding).

We will have to say considerably more about programming languages, programming environments, programming, open source code, and the great and amazing virtue of a programming environment being written in it's own programming language that's free, but at this point we hold fast to one thing only:

The name "Squeak" refers to two things

    The Squeak Environment, briefly SE.
    The Squeak Language, briefly SL.

These are complementary but different things, and the former is easier to learn than the latter. In general intuitive terms, the programming nvironment is what you see and work with when you're running Squeak, and the programming language is what makes the environment work (when programs in it are run in the environment).



What is a programming environment?

A programming environment is a program to write programs in. Programs are messages to the computer, by which a human user tells a computing machine what to do, for computers respond to programs they can handle by systematic behavior prescribed in the program.

These messages to the computer come by the keyboard or the mouse (and in what follows I will assume you are neither blind nor colorblind: if you are, someone needs to write another sort of tutorial for you).

By means of the mouse you can move a cursor around the screen and click or double click or Alt-click one of three buttons, for it is assumed in Squeak you use a 3-button or at least a 2-button mouse. ("Alt-click " is clicking the mouse while pressing the Alt-key. This is an important message in Squeak, that in most contexts pops up a menu of options.)

So a mouse with its buttons is one basic means to program a computer, and a keyboard another. In both cases something is sent to the computer - in fact a record of: a movement of the mouse, a key touch, a mousebutton click - and in both case the computer (if it works properly, as we also will assume) responds with some behavior. Simple responses are: The cursor is moved, a letter appears on the screen, or something else happens, like resizing a window. 

These things you are supposed to know at this point, but it is well to realize that at this point you are communicating with the computer in the sense that you send it messages and it responds in definite ways to definite messages - and that this already is programming as described: Programs are messages to the computer, by which the human user tells a computing machine what to do.

There are more basic means to send messages to a computer - joysticks, microphones, switches - but for the moment we will restrict ourselves to keyboard and mouse commands to the computer, as the most basic examples of programs.

And indeed in fact every more complicated program will also be made up from keyboard inputs or mouse movements and clicks (disregarding other means of input for the moment).



What's so special about the Squeak environment?

Let's state it in a number of slogans, which we shall explain briefly. Squeak is all of the following things:

        Very Flexible
        Very Versatile
        Very Powerful
        Very Easy
        Great Fun
        Quite complex

Very Flexible: Everything you see can be altered in many respects - size, color, mode of presentation and can be set in many ways. One such set of ways is in the menu Preferences (which you can get from the World Menu or the Squeak flap: see below).

Very Versatile: You can write, draw, compose, calculate, program, make presentations, edit pictures, edit sound, go on the internet, with Squeak - and all with complete source code, fully explaining these many capacities, and fully yours to adapt, improve and extend.

Very Powerful: The user environment you are in and see itself is written in Squeak, which is a universal programming language of great elegance. Anything that a computer may compute, may be written in the Squeak Language, while the Squeak Environment gives you full command and access to it, and to everything Squeak is and can do.

Very Easy: Much of Squeak's powers, and especially those of its environment, is very easy to access and use, though again it takes some getting used to because the environent is so different from what you are used to and is so powerful, complex and many-faceted.

Great Fun: Because of Squeak's ease of use and great power, it is great fun once one has gotten used to the environment. Also, it can be very helpful very fast, especially in education and in art.

Quite complex: It cannot be denied that all in all Squeak is complex, many-layered, and difficult to learn in all its many aspects. Also, learning to program a universal programming language like Squeak is never easy. (However: You cannot have great power and use that great power with great understanding without considerable preparatory labor.)

This User Manual attempts to teach you Squeak in a clear no nonsense way, in clear English. It wil also not attempt to make complex things seem simple or simple things seem complex. This User Manual will also not present as "easy" such things as are quite feasible and enjoyable with Squeak, like writing your own quite complex programs  doing completely new, original and worthwile things in Squeak. This you can learn, and this is fun to do and fun to learn -  but it is not learned in a few hours or a few days. 

The Good News concerning learning to program in Squeak is that Squeak is easier, clearer and more elegant than all or most other programming languages. The Less Good News is that a powerful programming language is not easily grasped, not in one go, and not in one day or week. But then the same holds for any piece of worthwile mathematics. (And indeed in the end that is what Squeak is: Applied mathematics as environment, plus a formal mathematical language to program computers in, bundled together with many applications that have already been programmed and do not need any complicated programming on the part of the user, beyond clicking, typing and some rational thinking. Those who have learned to hate mathematics when in school, these days can see with a computer what mathematics is really about: Fun, beauty, elegance - and all in a rational way.)

But to return from the eventual complexities of learning to program in the Squeak Language, let's consider the Squeak Environment we're in.



Why is the Squeak environment so different?

It is different, and it will take some getting used to, and it's unlike anything you've seen before, while it is also superficially much like what you know in many of its more directly visible presentations - for it does have windows, and buttons, and responds to mouse-clicks etc.

The reason the Squeak environment is different from any other environment is it's very great versatility and power, commented on  above: Very much and very many different things are possible in it and combinable in Squeak, and very many things may be happening in it, and all of this makes Squeak quite different from other progranms. (Indeed, your clicking on many of the many options in the many pop-up menus in the project window or other windows may cause unexpected responses: see "Walkback" above for what may happen and how to react to it.)

It looks different in part because of what it is - an interpreted programming environment of great versatility and power - and in part because of how it came to be. For Squeak is in fact the result of a continuous development of the Smalltalk language and environment, that date back 25 years, and in which were the first to do windowing and mousing. The interface Squeak offers is inherited from this Smalltalk.

That Squeak is interpreted is another feature that makes it different from most other programming environments, that usually are compiled. In simple terms, compiled means faster but far less versatile and easy to use and change.

A concluding important reason why Squeak is different is that it involves a loaded image.The word "image" has a special meaning in this context: The image is a large precompiled set of programming code, ready to run, and designed for very many different ends, some few of which are showing you the screen you see. An image is loaded whenever you run the Squeak.exe, and it is the image that contains the source for what the Squeak environment shows to you. All of this code is ready to run Squeak Language program code and can be seen and edited in the Squeak environment, namely in the System Browser and other Browsers and Coding Tools, but these we will turn in  later sections of this User Manual.

First, we return again to working with and in the environment.



What you can do with the environment?

The brief answer is: Absolutely everything a computer can do - in a comparatively easy and pleasant way. But indeed  "everything a computer can do" is a lot, and will take a lot of learning - although it deserves stressing that "learning" with a computer is for a considerable part playing with it, in a somewhat systematic mood.

So here I will be concerned only with the most basic and universal elements in the Squeak Environment:

        The project
        The mouse
        The pop-up menus
        The flaps
        The key-board

The project: In Squeak, in fact you are always inside some project, which basically is a full window in which you can put whatever you please, and save, store and access as one packet full of things - text, drawings, sounds, whatever - about some topic the project is about.

Projects are started with project buttons, which are windows that display a thumbtail image of their full-screen display. Projects are left by mousing up a menu that contains a "Previous Project" option, and clicking that.

The mouse: The Squeak Environment is built around using the mouse. You can select many things on the screen, and click, double-click, Alt-click, resize, move, close, and collapse them (where "collapse" means: keep on screen in a reduced form, as this textwindow when you click the righthand circle in the top bar). 

In part, this concerns textwindows, browsers, and other stuff we shall learn more about, and is connected to windows you see on the screen.

More complicated options for the mouse follow:

The pop-up menus: Most windows when clicked in have a pop-up menu with options and explanations. These are specific to those windows. The project windows when left clicked come with a World Menu (or Project Menu). This gives access to many other pop-ups. These we shall meet later in this User Manual. Here I only note you can get rid of a pop-up by clicking outside it, while you can keep it on the screen by clicking its first option "Keep this menu up". Most pop-ups have this, and so you can put a lot of pop-ups on your screen to survey the very many options you have and get some help. Also most pop-ups show a help-balloon for most or all options if you put the cursor on the option. (This may need setting in the "Preferences" pop-up, that's briefly discussed in the following subject.)

The flaps: In a Project a.k.a. World window you will see a number of flaps at the bottom of the screen. If not, open the World Menu, click "flaps..." and click on the squares beside the options. This displays the flaps (or takes them off the display). 

There are seven standard flaps on the "flaps..." menu:

  • Navigator        
  • Squeak
  • Supplies
  • Widgets
  • Stack Tools
  • Tools
  • Paint 

and besides there is in any case, whether or not you show flaps, on the bottom of the screen a horizontal popup list for projects. This contains "PREV" for "Go to previous project" and a version of the "Make a painting" flap. This last one we shall return to in the next lesson in this User Manual. Also, this option contains "Escape browser" which in fact means Squeak takes over the full screen.

Here we turn first to the six flaps, and discuss them briefly.

How to work with the flaps 

First, you can open any flap by clicking it's handle, and close it by clicking the handle again, and resize it by dragging the handle. 

What are these flaps? All of the flaps open windows that are partially see through and that serve as containers for options and stuff - text, pictures, buttons, program code, you name it - you might want to use and keep in a store. You can drag things on screen to a flap, and drop it into the flap, and close the flap as if you had put the thing you dragged there in a cupboard. Reversely, by dragging and dropping any item in a flap onto the screen, you put a complete working copy of it on screen. And some flaps hold more specific options. Here is a basic survey:

Navigator

This pops up if you mouse over it, and contains the following, all with their help-balloons

Share 

a project

NEW

project

NEXT

project

PUBLISH IT

project

Newer?

project

Tell!

a project

Find

a project

Escape Browser

Make Squeak take over the full screen

Hide Tabs

Hide flaps

Paint flap

Start a new painting

Undo

Undo last command

NEW

project

Only a few deserve any comment here and now: "Escape Browser" does as the explanation says (no more Windows stuff visible!) and can of course be undone; "Hide Tabs" still follows an alternative naming convention for flaps; "Paint flap" starts a simple program to paint with, that for all its simplicity is very handy and elegant; "Undo" can be shown by picking up a morph (see below under "Supplies") with the mouse, putting it elsewhere on the screen and clicking "Undo", and "NEW" very simply and neatly starts a new project.

Squeak:  

This flap contains a number of options that I list here for brief comments:

< Go.. >:  

An easy way to shift to another project.

Snapshot:  

An easy way to save the whole state of the Squeak system.

File out changes:  

Puts your latest work in a file on disk.

Clock:  

An active clock showing the current system time.

Preferences:

 Pops up a window in which you can set very many preferences.

Load code updates:

Get the lastest code-additions to Squeak from the internet.

About this system:  

Shows you how many code-additions you have loaded from the net.

Trash bin:

Contains what you have deleted, ready for restore or definite removal.


There is more to say on each option. All I say here is that the Go switch is convenient, and saving your image OFTEN helps not loosing your work. 

Supplies: 

This flap contains more morphs about which more will be said later. 

However, here is one very important point about morphs.

Open the Supplies flap, select the star with the mouse and drag and drop it somewhere on your screen. (If you check Supplies you will see you have indeed a copy, not the original.)

If you click this star it shows a shadow, and you can grab and drag and drop it with the mouse. This is what you can do with any morph, and the star indeed is a morph. 

Furethermore: With any morph indeed a lot of possible behaviors and appearance-changes are possible, and Squeak has a very neat way to deal with this: Move your cursor to the star and do Alt+LeftClick on it: It will suddenly show what's called a halo of buttons around it. 

This halo of buttons suddenly opens very many possibilities for this simple star, one of which is by way of the lower right hand button, by which you can resize it, or the lower left hand button by which you can rotate it , or by the button above the resize button, with which you can change its color.

Try these, for while both are very simple examples of what you can do with Squeak that show things other environment just cannot do with what they display.

Any morph has a halo, and every halo belongs to a morph. About halos and morphs there is much more to say, which will happen later. For morphs are one of the great new things of Squeak, and the halos are a new way of communicating with morphs. 

Here just three more basic things about halos and morphs are mentioned, all important and all making life with Squeak a lot easier:

Halos are activated by Alt+LeftClick on a part of the screen. (This part may be itself be a morph that is part of a morph, so in fact you can successively click to series of halos in case you are in a so-called sub-morph i.e. a morph inside another morph.) And halos are de-activated by clicking anywhere outside the morph.

Halos contain a collapse button: The upper left circle. Clicking collapses the morph to a bar on the screen.
Halos contain a remove button: The upper left cross. Clicking it removes the morph to the trash bin.
Halos contain a drag button: The middle button in the upper row. Clicking it allows dragging the morph over the screen.

So at this point you have already learned that the screen the Squeak Environment offers you many more capacities than ordinary environments, where parts of the screen are usually far less versatile, programmable, alterable, or open to thought and change by the user.

Widgets: 

This flap is a collection of useful morphs. As before, a copy of any of them can be dragged onto the screen and played with. The most comprehensive of these is the Morph Catalog, which is a sorted list of morphs available to you in the current Squeak. Some of these will be discussed later on.

Now for some morphic fun and beauty! 

Open the Widget tab, and get a Morph Catalog on your screen. This is in fact list of lists of morphs you can easily search through by clicking.

Use the Morph Catalog to find the 3-D morphs for a moving 3D-cube and the several magnifiers (round and rectangular) you can use to magnify arbitrary parts of the screen. 

Since these are morphs grabbing them with the mouse is sufficient to put a working copy on your screen. If you do so, you will liven up your view with things other environment cannot do at all or not as well - and I have just explained how to collapse or remove these if you're tired of them. (The magnifiers are stunning with pictures on your screen to magnify. Moving your mouse while having a magnifier indeed turns it into the likeness of a real-life mirror or TV-screen.)

Stack Tools:  

This flap contains morphs for a HyperCard system. Hypercards or a hyperstack are textwindows with hyperlinks to all manner of relevant material, and Stack Tools gathers the basic bits and pieces. I will say more of it later, and show and use these, for in fact hypertext is a very useful new way to deal with text and illustration in a computer. Incidentally: Html is another form of hypertext. Hypertext is text on a computer that contains links (urls in html) to other files, with supplementary information.

Incidentally, "morphs" are parts of the Squeak Environment that you can send messages to and attach program code to. The word is derived from the Greek, in which it means "form". You can pick up and drag and drop any morph with the mouse, and in generally do many things to and with them you cannot do with parts of the screen in other environments. Morphs are one kind of thing that makes Squeak so very special and powerful - for in fact almost anything you see in a Squeak Environment either is a Morph or can be made into a Morph: What you can name or select in Squeak you can alter and program systematically.

This is a very fundamental feature of Squeak, and one that is missing in almost all other computer languages. (The exception is the programming language Self, which is a precursor of Squeak.)

Tools 

If you click the Tools flap, you see a list of tables that include Workspaces, Transcripts, Browsers, Filelists, and Preferences. All of these will be discussed in what follows, and mostly belong to the art of coding with the Squeak Language. (Meanwhile, you can look at any of these, for these too are morphs, and you can get rid of them by their x-remove buttons. Nothing will be lost if you do so.)

Painting:  

Squeak contains a basic Paint program that for all its simplicity is quite versatile. The Paint flap or the Navigator tarts it , and the next part of the User Manual will describe it in a little detail. (It also can be started from the Projects flap on the bottom of the screen.)

What went into the design of the present project?

Compared to what other environments show you, in fact in this first lesson to Squeak, you will have seen a lot of rich detail and niceties missing in other environments. Yet what I have done is all very easy and can at this point be easily done by you. Here are the steps and a brief explanation:

        Making a project
        Getting a workspace
        Writing the text
        Making Drawimg
        Setting Background 

Making a project: A project is a full-screen window in which there is whatever Squeak enables you to put into the project - text, drawings, music - it's up to your ingenuity and time. A new empty one is very easily started from the World Menu - projects - create new morphic project. This will make a new project-button for you, which in fact is a thumb-nail of the project-window.

Getting a workspace: This is as easy as opening the Tables flap and dragging a Workspace on the screen. (It's explained above how you resize, recolor and rename it. Precisely the same goes for the Project windows.)

Writing the text: For this all you need is something to say, a facility to say it well, and the handiness to type. These are all up to you, and typing you will have to learn and will learn by doing it (with or without the help of some program). There is one problem with Squeak-as-is: The key-board does need some getting used to, and is a bit different and in part less slick than is a Windows text-editor. Also, on the moment Squeak has fewer fonts available than one would wish. The available fonts and the keyboard handling will be soon improved, and there is a convenient workaround for those writing long texts: You can do it in any editor you please; save it as text or html; and then load that into Squeak. This you can do by a filelist or by Scamper - and a filelist is indeed a list of files from which you can choose, much like MicroSoft's Explorer, while Scamper is Squeak's internet browser and displays html

When writing long texts I found this more convenient - but all of the present text has been typed inside a Workspace inside Squeak in the first version. After having done that I have copied the result to my html-processor, and re-edited it some and added the last section of summary points, saved the result to disk and loaded it back into Squeak - which illustrates that while all things a computer can do can be done inside Squeak, Squeak also makes it perfectly easy to work interactively with other programs at the same time.

Finally, the coloring of the text in the Workspace is done by way of the menu popped up when pressing Alt-6 i.e. "Alt" plus "6", while the size is set by way of Alt-a (select all text) and Alt-k (font-size).

Making a drawing: Here I used the Paint program of Squeak, which will be more fully explained in the next lesson. All I did was in fact to use a tool to paint stars, resize the drawing, and drag it about to a convenient place. 

Setting Background: One of the many things Squeak is is a Graphical Programming Environment. It is very easy to work with pictures, drawings, bitmaps and the like in Squeak. To set a background all you need is to open a filelist on a gif-file, right-click on it for a pop-up window and use the option "open image as background".

This concludes this first lesson of the User Manual.


What you may have learned in this lesson:

Here is a summary of points with links to the appropriate place in the text (to follow later)

  • This the first lesson of an extended series of lessons that together form the User Manual. It aims to be written in a clear no-nonsense English. Uncommon or new words will get a clear definition or description in common known terms.
  • It teaches about Squeak by describing what you see and telling you what you can do with and to it.

  • A Workspace is a window in which you can edit text (and do many more things). It can be picked up and moved about and resized with the mouse.
  • Many windows in Squeak including Workspaces have a topbar with title, remove, collapse, shrink/expand and menu button.
  • That you can write text in Workspaces, save this to disk, and open many Workspaces and copy and paste between them.

  • How to save, quit, and save and quit Squeak.
  • How to recognize a walkback and react to it (click Abandon).
  • How to escape from a loop in Squeak (press Alt-. = "Alt" combined with a dot ".")
  • How to collapse, expand, shrink windows, and scroll in them.

  • All things you can select in Squeak can be copied, dragged, resized, expanded and can be attached program code to, that makes it do things you wish it to do.

·        Squeak presumes a 3- or 2-button mouse. (It can be tweaked for a 1-button mouse but this is inconvenient.)


  • What Projects are: Full screens with all manner of Morphs
  • What Morphs are: Parts of the screen you can select and manipulate in many ways, some standard for every morph, and arbitrarily many up to you.

  • What Squeak is: a programming environment and a programming language bundled together. Convenient abbreviations for these two aspects are SL and SE.
  • That for much you can do with the Squeak environment you need little or no programming (other than moving the mouse and hitting the keyboard)

  • What you can do with Squeak: Anything a computer is capable of - write, draw, compose and edit music, do mathematics (in new and old ways), make presentations, play games, write and send e-mails, chat, browse the internet and more. It is a universal environment for doing art, science, programming and having fun using computers creatively.
  • Why Squeak is so different and in which ways: 

·         programming environment

·         programming language

·         free

·         open source

·         written in itself

·         full source

·         fully comprehensible

·         fully alterable

·         fully programmable

·

·        Squeak is an environment you can use, and a language in which you can program anything in the environment - in the sense that you can tell it what it can do when and how.

·        Much of the environment is easy and fun to use, and requires no programming


·        A programming environment is a program to write programs in. 

·        Programs are messages to a computer, by which the human user tells the computing machine what to do.

·        The simplest kind of programming any one using a computer in fact does and knows how to do: Moving and clicking the mouse and hitting the keyboard.

·        All programming is is a human being sending messages to a computer, that responds to these messages after which the human being can respond to these by sending new messages.

·        Real programming is the writing of code that gives the computer new systematic responses to certain messages (i.e. behavior by the human user).


·        Squeak is very flexible: Everything you see can be altered in many respects - size, color, mode of presentation and can be set in many ways.

·        Squeak is very versatile: You can write, draw, compose, calculate, program, make presentations, edit pictures edit sound, go on the internet, and many other things

·        Squeak is very powerful: The user environment you are in and see itself is written in Squeak, which is a universal programming language of great elegance. Anything that a computer may compute, may be written in the Squeak Language, while the Squeak Environment gives you full command and access to it, and to everything Squeak is and can do.

·        Squeak is very easy: Much of Squeak powers is very easy to access and use, though again it takes some getting used to because Squeak is so different and so powerful, complex and many-facetted.

·        Squeak is fun: it is great fun once one has gotten used to the environment. Also, it can be very helpful very fast, especially in education and in art.

·        Squeak is quite complex: Squeak, and especially using its programming language, also is complex, many-layered, and dificult to learn in all its many aspects. And learning to program a universal programming language such as Squeak is, is never easy.


·        The Squeak environment is different from any other environment because of is it's very great versatility and power

·        The Squeak environment looks different in part because of what it is - an interpreted programming environment of great versatility and power - and in part because of how it came to be. For Squeak is in fact the result of a continuous development of the Smalltalk language and environment, that date back 25 years.


·        Squeak is interpreted unlike most other programming environments, that usually ar compiled. In simple practical terms, compiled means faster but far less versatile and easy to use and change.

·        Squeak works with a loaded image a comparatively very large precompiled set of programming code, ready to run, and designed for very many different ends.


·        With and inside Squeak absolutely everything a computer can do it can be made to do, but "everything a computer can do" is a lot, and will take a lot of learning

·        Learning with a computer is for a considerable part playing with it, in a somewhat systematic mood.

·        Some ins and outs about

    The project
    The mouse
    The pop-up menus
    The flaps
    The key-board

For these you are referred to the text, but I'll summarize some:


·        In Squeak, you are always inside some project

·        A project is a full window in which you can put whatever you please, and save, store and access as one packet full of things - text, drawings, sounds, whatever - about some topic the project is about.

·        Projects are started with project buttons, which are windows that display a thumbtail image of their full-screen display. 

·        Projects are left by mousing up a menu that contains a "Previous Project" option, and clicking that.


·        The Squeak Environment is built around using the mouse. (You cannot fully use it without a working mouse.) 


·        The pop-up menus: Most windows when clicked in have a pop-up menu with options and explanations. These are specific to those windows. 

·        The World Menu (or Project Menu) comes via Alt-LeftClick in a project and gives access to many other pop-ups.

·        Most pop-ups have a first option "Keep this menu up". 

·        Many pop-ups show a help-balloon for most or all options if you put the cursor on the option. (This may need setting in the "Preferences" pop-up.)


·        The flaps: In a Project a.k.a. World window you will see a number of flaps at the sides of the screen. If not, open the World Menu, click "flaps..." and click on the squares beside the options. This displays the flaps (or takes them off the screen). 

·        There are seven standard flaps on the "flaps..." menu:

  •  
    • Navigator         
    • Squeak
    • Supplies
    • Widgets
    • Stack Tools
    • Tools
    • Paint 

For more see the text.

·        You can open any flap by clicking it's handle, and close it by clicking the handle again, and resize it by dragging the handle. 

·        All of the flaps open windows that are partially see through and that serve as containers for options and stuff - text, pictures, buttons, program code, you name it - you might want to use and keep in a store. 

·        By dragging any item in a flap onto the screen, you put a complete working copy of it on screen.


·        Morphs are parts of the Squeak Environment that you can send messages to and attach program code to. 

·        You can pick up and drag any morph with the mouse, and in generally do many things to and with them you can NOT do with parts of the screen in other environments. 

·        Morphs are one thing that makes Squeak so special and powerful: Almost anything you see in a Squeak Environment either is a Morph or can be made into a Morph. 

·        What you can name or select in Squeak you can alter and program systematically.

·        There is a Morph Catalog in the Widgets flap that lists many morphs and lets you put copies of them on the screen.


·        Halos and morphs: With any morph indeed a lot of possible behavior and appearance-changes is possible, and Squeak has a very neat way to deal with this: Move your cursor to the star and do Alt+Click on it: It will suddenly show what's called a halo of buttons around it each of which when clicked triggers some behavior of the morph or changes some aspect of it.

·        Any morph has a halo, and every halo belongs to a morph.

·        Halos are activated by Alt+LeftClick on a part of the screen. 

·        You can successively click to series of halos in case you are in a so-called sub-morph i.e. a morph inside another morph.

·        Halos are de-activated by clicking anywhere outside the morph.

·        Halos contain a collapse button: The upper left circle. Clicking collapses the morph to a bar on the screen.

·        Halos contain a remove button: The upper left cross. Clicking it removes the morph to the trash bin.

·        Halos contain a drag button: The middle button in the upper row. Clicking it allows dragging the morph over the screen.


·        Tables: If you click the Tables flap, you see a list of tables that include Workspaces, Transcripts, Browsers, Filelists, and Preferences. All of these will be discussed in what follows, and mostly belong to the art of coding with the Squeak Language.


·        Painting: Squeak contains a basic Paint program that for all its simplicity is quite versatile. The Paint flap starts it, and the next part of the User Manual will describe it in a little detail. (It also can be started from the Projects flap).

This concludes the first part of my User Manual for Squeak. Note the information below, especially the version of Squeak used (for things are somewhat differently arranged in earlier versions of Squeak, while a Mac keyboard is somewhat different from a Windows keyboard).

 


Version-date: mm 12/25/2001
Author: Maarten Maartensz
Author address:
maartens@xs4all.nl
Squeak-version: 3.2 (alpha) #4599
Written while using Windows98


User Manual -  Provisional index of sections


Introduction (this file)

Using Workspaces and Transcripts
Using Paint 
Using Tables
Using Morphs

Tricks and Traps

How to begin Scripting
On the difficulties of Programming

How to program Squeak 

   1. How (not) to talk about programming
   2. The Squeak Language Stated And Explained
   3. etc.

Principles of Programming
Quotations

Glossary

Index
Tour
Map
Help
Notes
News

Version
Info



And so much for the first version of part 1 of my User Manual for Squeak. I believe this text will clarify quite a few things for new users of Squeak in a short time, and shows that Squeak is eminently fit to run its own documentation written in itself.

Comments, critical and otherwise, are appreciated. My e-mail address is in my signature. Of course, the text of the present note presumes it is read inside Squeak.

This text (or a later version) will be made available soon as a public Project in Squeak, and it will be rapidly extended.

Suggestions for later parts of the User Manual - what should be in it, and how presented - are also very welcome, even though I cannot promise before seeing them that I will abide by them.

Maarten Maartensz
Dec  25, 2001
Amsterdam

 


Welcome to the Squeak  pages of Maarten Maartensz. See:  Map + Tour + Tips + Notes + News + Home