LOGO-L> out of space 
Author Message
 LOGO-L> out of space

My students have created MicroWorlds (DOS version) projects that have four
or more pages, and often the error message Out of Space comes up. What can
we do to retrieve the project? I have tried merging the pages one by one
with a newly created project, but if original shapes were designed by the
student, they do not merge and we're left with small black dots. Is there a
command to merge shapes?
Another common error message that has presaged doom is  " does not like []
as input" . I never know what my student has done to cause this error, and
worse still, we have not been able to retrieve the project again.  Please
help.

Tania Lamble
Wenona School
North Sydney

---------------------------------------------------------------





Tue, 30 May 2000 03:00:00 GMT  
 LOGO-L> out of space

Quote:
> My students have created MicroWorlds (DOS version) projects that have four
> or more pages, and often the error message Out of Space comes up. What can
> we do to retrieve the project? I have tried merging the pages one by one
> with a newly created project, but if original shapes were designed by the
> student, they do not merge and we're left with small black dots. Is there a
> command to merge shapes?

Tania
In MW1dos, use LOADSHAPES. You must use the full DOS pathname, eg;
LOADSHAPES "c:\directoryname\projectname
To deal with 'Out of Space', try STOPALL and RECYCLE to stop redundant
processes and clean up memory. SNAPped Textboxes and Sounds can also chew
up a lot of memory, you could try REMOVEing them, or even REMOVEing a page.
The best solution tho', is to upgrade to MW version 2.
cheers

Jeff Richardson
Monash University
---------------------------------------------------------------





Tue, 30 May 2000 03:00:00 GMT  
 LOGO-L> out of space

Dear Tania,
I will be going on leave in the middle of this week, and will be away from
e-mail for most of January. However, later, please feel free to contact me
if you hit difficulties with MicroWorlds.

It is usually best to identify the exact error message, and to be able to
explain the procedure that was running when things went wrong, or to
describe the setup of a project so we can see the context for the specific
error.

Quote:
>My students have created MicroWorlds (DOS version) projects that have four
>or more pages, and often the error message Out of Space comes up. What can
>we do to retrieve the project?

I'm not sure what you mean by "retrieve". Surely the project continues to
exist, albeit in an incompletely functioning way. Perhaps what you mean is
how can you fix the project so that you don't get this error message which
stops things running? Well, that depends on what is running when the error
message is triggered.

Sometimes what is going wrong is some kind of uncontrolled recursion. This
may give a more specific error message, such as OUT OF RECURSION SPACE.

One sneaky way of finding out what is going wrong is to set out to make the
same error occur, as simply as possible, in a dummy-project or controlled
situation. When you see what causes the error, in a controlled situation,
you can look back at the project where the error initially arose, and
baffled you, and try to see how something there is doing the same kind of
things which you now see can cause this error message.

You can get OUT OF RECURSION SPACE easily if you are making an animation
which calls itself inappropriately. Here is an example,

to step
setsh "dog1 wait 1 fd 3
setsh "dog2 wait 1 fd 3
step
bk 6
end

to dog.walk
seth 270 pu
repeat 100 [step]
end

The faulty thinking here is that in the effort to make the two dog-shapes
successively appear and move, again and again, the user has included the
procedure name STEP inside the procedure STEP, so once you start doing STEP
it runs itself endlessly.
(Do you know the old joke:
Q: How do you keep a drongo occupied for hours?
A: Give him a sheet of paper with Please Turn Over written on both sides.
That's what this calling-itself recursion is doing.)

This faulty setp-procedure looks like the kind of do-forever command we
sometimes give turtles when they are processing in parallel.

But there's a catch. Each time you leave the current version of step, in
order to start running a new version of step, the computer notices that
there is a still a command that hasn't been done, namely, bk 6, and it
makes a "mental note" of this, so that when it ever finishes doing some
subsequent version of step or any other subsequent procedure it is later
called on to run, it will come back and run this so-far un-run command. But
after several thousand newly run versions of step, the computer has used up
all its recursion memory, can't remember any more un-run commands, and you
get the error message.

OUT OF SPACE is a computer equivalent to the human message, "Things are
getting too much for me and I'm having a little nervous breakdown, so don't
expect me to keep doing these things that are driving me crazy".

The solution is to find the faulty recursion, and make sure it doesn't
occur. In this case, eliminate the commands
step
bk 6
from the last lines of the procedure called step.

Other solutions for other kinds of faulty recursion will depend on just
where and what fault you have in a recursive procedure.

AHA!!

I have just checked the Reference Manual for MW (IBM) version 1, and see
that Out of Space indicates that the amount of memory (RAM) available is
not enough. It also suggests that graphics and sound can use large amounts
of memory, simply remembering all the pixels (colors and locations), and
the sound-patterns.

You can check this need for huge amounts of memory for sound and graphics
if you create a project with only one page which is uncolored, and compare
its memory-size with a project which has a one-page picture which is drawn
and colored in great detail.

You can try the same thing, creating sample projects which are comparable
except for the fact that one has a large textbox full of text manually
typed in, and another has the text all stored as a procedure that can be
run,  which results in the text being placed in the textbox, but later the
box is emptied of all text before you leave the page.

You can do the same thing with sound resources. Look at the size of a
project which has nothing else in it except, say, a two-second sound
recorded in it. Compare this with the size of a project which has a melody
created using the melody gadget, which consists of a scale, played up and
then down. Compare this with the size of a page which has no recorded
sound, and no melody-gadget melody, but which has a procedure that plays a
scale up and down.

to do.Cscale
setinstrument "clarinet
note 60 2
note 62 2
note 64 2
note 65 2
note 67 2
note 69 2
note 71 2
note 72 4
note 71 1 note 69 1 note 67 1 note 65 1 note 64 1 note 62 1 note 60 4
end

I think you'll be surprised to find how much memory is involved in saving
hand-drawn or scanned-in or downloaded graphics, compared with procedures
which do the drawing. Similarly for sound resources, whether recorded, or
using the melody gadget, compared with programming using NOTE commands.

One lsoution, then, is to rely far more on programming on the Procedures
Page, to achieve the same end-results as direct manual use of textboxes,
graphics and melody palettes.

Quote:
>I have tried merging the pages one by one
>with a newly created project, but if original shapes were designed by the
>student, they do not merge and we're left with small black dots. Is there a
>command to merge shapes?

I don't know about this. Nor what you mean by "merge". You might be able to
resolve the difficulty by removing the background artwork, or by
eliminating a sound resource, or by copying the contents of a textbox to a
procedure on the flipside which will display the text, and will be emptied
when you leave the page.

to display.Text1
tto "text1
ct
print [blah blah blah blah ....]
end

to go.next.page
tto "text1
ct
end

Quote:
>Another common error message that has presaged doom is  " does not like []
>as input" . I never know what my student has done to cause this error, and
>worse still, we have not been able to retrieve the project again.  Please
>help.

Without knowing what procedure you are running this is probably impossible
to solve. Are you saying that the error message explicitly includes two
square brackets, as you have typed here? This means an empty list.

In my experience, usually when a procedure or primitive does not like being
given an empty list or word, the error message is
PROCEDURENAME DOES NOT LIKE  AS INPUT
and all you can see that it doesn't like is a space, an emptiness, which
conceals the fact that it is a "nothing" that is being handed over to the
procedureName or primitiveTerm.

For example, if you want to evaluate whether or not a use has typed an
answer, you might look at the first word the user has typed, and see
whether this is the same as some expected correct answer. Here's a simple
example.

to check.Input
question [Type the capital of Australia]
ifelse first parse answer = "Canberra
        [announce [Yup] ]
        [announce [Nup, it's Canberra!] ]
end

But this will fail if the user types nothing, when the question-dialogue
box appears, and instead just clicks OK or hits the Return key.

What will go wrong is that because the user didn't type anything ANSWER is
empty, so the command FIRST hasn't got anything to work with.

The error message will be
FIRST DOES NOT LIKE   AS INPUT.

If that is the kind of error message you had in mind, maybe this is the
sort of error being made.

It is always a good idea to "road test" a collection of user-interactive
procedures by deliberately doing the WRONG THING in response to the
instructions you have built into your commands. For example, if you have
made some number-manipulating procedure which wants the user to type the
answer to a number-fact question, try just hitting the Return key or
clicking the button which will activate the answer-checking procedure,
without actually typing anything. Or try typing the word four instead of
the number 4. Unless you go out of your way to mis-respond to your
interactive programming you will not know that unsuspected faults are not
lurking, waiting to arise when a real idiot tries to use your project. To
prevent your project falling in a heap when the first really stupid
interactor comes along (or a genuine mistake), you need to set "traps" that
will catch the silly user's errors, and handle them effectively.

For example

if not number? :yourInput [note 40 10 show [Type only numbers] stop]

or if empty? answer [note 50 10 show [Type something and hit Return] stop]

Hope some of this helps. All the best,


Lecturer in Education
http://128.184.132.3:80/sci_dev/Staff/jgough.htm
Deakin University SDS, 221 Burwood Hwy, Burwood, Victoria 3125, Australia
phone:   Australia, Melbourne area code 03 9244 6390
fax:     Australia, Melbourne area code 03 9244 6734

---------------------------------------------------------------





Fri, 02 Jun 2000 03:00:00 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. LOGO-L> space fractals

2. LOGO-L> out of list space error

3. LOGO-L> Re: Problems in 3D Space

4. LOGO-L> out of space continued

5. LOGO-L> re:out of space

6. LOGO-L> Apple logo/MSW Logo

7. LOGO-L> Reseach Machines Logo (RM LOGO)

8. logo-l> Re: LOGO-L> VB: Out of Stack Space

9. LOGO-L> Re: LOGO-L> spaces around operators

10. LOGO-L> spaces around operators (was: LOGO-L> Computers in School)

11. WTD: 'ls -lR '->HTML code

12. LOGO-L> Welcome to logo-l

 

 
Powered by phpBB® Forum Software