[etoys-dev] Re: [sq-education] repeat-tile
sthomas1 at gosargon.com
Fri Mar 26 12:36:13 EDT 2010
So I have a limited understanding of Etoys design philosphy and the
execution semantics of operating in a timeless fashion and while I can
appreciate the differences between execution models, from a child's
perspective the question is: "can I make it do what I want, without getting
so frustrated I give up?"
>From a child and teacher's perspective the things that the Scratch execution
model allow me to do that have value, in particular:
- Ability to Visually Debug scripts (Edit -> Start Single Stepping) I
have used this on a number of occasions when kids were stuck and got them to
"look at" how there scripts were executing and this was a great tool to help
them to think about how the scripts work and resolve their problems
- Ability to create what i will call "Sequenced Animations and Sounds"
(as mentioned earlier)
- Ability to "pause" the action
No, I am not suggesting changing the execution semantics or a re-design, but
simply asking how we can solve these problems within the Etoys paradigm.
Kids love animation and cartoons and are really motivated by creating them,
providing them with a "lower floor" to do this I believe would encourage
wider use of Etoys.
I tried building my own animation tiles and found it non-trivial and wound
up building upon Yoshiki's example. Even then I needed to use Holders within
Holders. I doubt a kid or most teachers could figure it out (probably my
fault in not thinking hard enough on how to solve the problem).
If someone could provide an example that would provide a much simpler level
of abstraction that kids can use that would be great. I don't know that it
can be done without resorting to Smalltalk.
Sorry for bifurcating the discussion ;)
In regards to removing the "repeat" tile, I find a lot of things in Etoys
that could be considered confusing and non-obvoius. I have found it useful
and I am sure it was included for a reason. Frankly what I initially found
more "confusing" or non-obvoius is using the ticking rate (most likely
because of my non Smalltalk background) but once I learned it came to
appreciate its value.
That said I need to go back and see why I used it and if there is another
way to solve the same problems. Most of the reasons I recall using it were
for iterating through tables of data or objects in a collection (for which I
could probably use "Tell all" another confusing and non-obvious item).
On Fri, Mar 26, 2010 at 11:36 AM, Bert Freudenberg <bert at freudenbergs.de>wrote:
> the issue at hand is that I propose to hide the repeat tile from the
> viewer. More than any other tile it confuses people.
> We just today got another question why it did not behave as expected on the
> German Etoys list. So I suggested she asked the education team what they
> thought of the idea to remove it.
> It's quite natural to expect that a repeat tile works similarly to a
> "ticking" script. However, it is a totally different beast. It is as if you
> inserted the repeating tiles in the script multiple times. All the tiles in
> a script are executed in the same time step. There is no way to wait in the
> middle of a script.
> Scratch has completely different execution semantics. There, a script can
> be stopped in the middle, and other scripts run "in parallel".
> Executing scripts in a timeless fashion was a conscious design decision I
> think - but I was not involved with that so I let others comment.
> Adding the ability to wait inside a script would be a hack at best. I'm not
> sure we should give in to the desire of people to add that. It was possible
> in the Tweak version of Etoys, which had been redesigned from ground up.
> The only thing I can think of that would fit with current Etoys is to add a
> tile that can schedule a future message. E.g. "car do: somescript after: 5
> seconds". Not exactly easy to implement (because it would take 2 arguments)
> but might be nice to have.
> The other solution is to just build your own "animation" tiles - Etoys is
> powerful enough for that. No need to even resort to Smalltalk, ticking
> scripts is all you need.
> In any case, "repeat" is too confusing with too little utility so I'd like
> to get rid of it in the default viewer.
> - Bert -
> On 26.03.2010, at 15:54, Steve Thomas wrote:
> If I put three sounds in a script without any repeat tile, you experience
> the same problem (ie: the three sounds played at the same time), so I do not
> believe the problem is with the Repeat tile.
> The more general problem is how do you play a sound (of arbitrary length,
> for example recording lines in a script) in sequence.
> I have experienced the same problem/frustration in Etoys myself. Scratch
> solves this problem by providing two tiles:
> - "play <sound>" - starts the sound playing and immediately executes
> the next tile (as Etoys "make sound <croak>" currently does
> - "play <sound> until done" - plays the sound until done then executes
> the next tile
> Another nice feature of is the "wait" tile which allows you to pause a
> script for a period of time which is useful in animated cartoons which
> really motivate kids and I believe is one of the reasons kids prefer
> Scratch. Another nice feature I would like to see to help sequence events
> is the implementation of a "wait" tile which pauses the execution of a
> script for a period of time at the wait tile.
> FYI to solve your problem (how to play a sound or sequence of sounds one
> after the other) you can create a script that ticks for some unit of time
> (lets say 1/2 second) and have a counter that increments upon each iteration
> of the script. Then at the appropriate time/count you can play the next
> sound in the sequence. I did something similar in the Cartoon example (The
> Holder Episosde 1v2<http://www.squeakland.org/showcase/project.jsp?id=9497> which
> due to the joys of the squeakland website, I have not been able to make
> Frankly sequencing was cumbersome in that I had to know how long each
> recorded sound was and would have preferred a simpler method.
> I have included the developer list to get their comments as well.
> On Fri, Mar 26, 2010 at 9:17 AM, Rita Freudenberg <
> rita at isg.cs.uni-magdeburg.de> wrote:
>> On Mar 26, 2010, at 2:03 PM, Steve Thomas wrote:
>> Yes I have used the repeat tile in a number of projects. Usually in
>> iterating through objects in a collections.
>> What was the specific problem?
>> Can you provide more details on how it does not fit within the Etoys
>> The problem is, that tiles in a script are timeless. Everything in a
>> script happens at the same time. for instance, when you put a "make sound"
>> tile in a repeat tile and then say "repeat 3 times", you will not hear 3
>> sounds one after the other, but at the same time. This happens with every
>> tile. It is confusing when you put tiles in, that do something you can watch
>> or hear.
>> So what happens is not the same as what you think would happen when
>> looking at the script. But in Etoys you should be able to explain the
>> behaviour from looking at the script, I think.
>> On Fri, Mar 26, 2010 at 8:46 AM, Rita Freudenberg <
>> rita at isg.cs.uni-magdeburg.de> wrote:
>>> Hi all,
>>> did you ever use the repeat tile? This is a new tile which you can get
>>> when you click on the supplies icon in a script.
>>> During my workshop this week we tried to use it and we had problems,
>>> because it worked not the way we expected. It is something special, which
>>> is also not fitting very well with the Etoys philosophy. So how about
>>> removing it, since it is mostly confusing?
>>> It would not be removed completely, so that older projects would still
>>> work and you can find it if you explicitly search for it in the object
>>> catalog. But it would be removed from the supplies menu in the scripts.
>>> What do you think?
> etoys-dev mailing list
> etoys-dev at squeakland.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the etoys-dev