squeaky tales and waveplace vision

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

squeaky tales and waveplace vision

Timothy Falconer
Hi all,

Today I posted my twentieth Etoys tutorial in the Squeaky Tales  
series, bringing the total to five hours of ten planned.

http://waveplace.com/movies/

Each fifteen-minute screencast forms the basis for an hour of hands-
on instruction with a child, with the mentor first presenting the  
concepts in their own fashion, then leading the class for the  
remainder of the time. The videos themselves are aimed at the mentor,  
not the students, though I suspect older students could watch the  
videos on their own.

Now half done, I've been spending time on techniques to manage  
complexity. Just like a real software project, the beginning is fresh  
with clean white designs, but midway through it's a mangled mess of  
coalescing code.

I also posted a 25 minute video of me talking into a camera,  
explaining the Waveplace vision.

http://waveplace.com/vision/

I've had the same conversation about two hundred times in the last  
six months, so I figured it'd be good to get the rap down on tape.  
The video breaks down into ten minutes on education, five minutes on  
the XO, and ten minutes on Waveplace. Let me know if you find it  
helpful.

Timothy



_______________________________________________
Squeakland mailing list
[hidden email]
http://squeakland.org/mailman/listinfo/squeakland
Reply | Threaded
Open this post in threaded view
|

Re: [Etoys] [Olpc-open] squeaky tales and waveplace vision

Timothy Falconer
Yoshiki,

Thanks for your suggestions and kind comments.

At the end of #19, I actually say something like, "I've run into a  
roadblock, something I don't know, which is very common in  
programming.  The thing to do at this point is send an email asking  
for help on the squeakland mailing list."

Instead of doing this, though, I go on to show a short-term  
workaround .... the "right now" answer versus the "right" answer.  
Part of my point throughout is to show the real experience of  
programming, which definitely involves roadblocks and workarounds.  
I'm trying to convey a sense for what it's really like being a  
programmer using Etoys.


>   I might be missing what you're explaining around 7 minutes, but  
> you *can* put the variable "tot11's turnHolder into the place of  
> any player-type variable (such as the left hand side of "cursor  
> increase by 1".

What I couldn't figure out in #19 was "tot11's totHolder's cursor  
increase by 1"    I knew how, but "cursor" simply didn't appear on  
the list, I'm guessing because only Player stuff shows there.

>   Around 4:30 minutes into the movie, you say something like:
> "... unless there some good reasons..., you should always use the
> commands for the same object."  Is that because you are using siblings
> and have been bitten by the issue?  (I think so.)

Hmm... I think my point there was to train people to default to using  
the "self" receiver for each message .... if it's tot11's script, use  
tot11 as the receiver of everything unless you have a good reason not  
to, such as tot11 telling some other object what to do.  There are  
several commands that really don't require the exact right receiver,  
such as sibling sends and  "clear pen trails", etc.  I'm just making  
the point that people should train themselves to stay consistent.

>   I have no idea what causes the magnification issue.  So strange.  
> You have siblings and copies, right?  If so, yes, that could be  
> hard.  The last issue you have seems to be related to it.

Yes, the visual stuff in the holder were copies and the active  
players are siblings.  If the magnification is a by-product of  
siblings/dupes co-existing, it's a good thing to know.

>   Perhaps, I'd add a variable to these guys that holds a number,  
> and each of them compares the number with page5's timeTicks to  
> figure out what to do.  In this way, the script may be shorter.

Yeah, the stuff in the timeline script in the page could be farmed  
out to the objects on the page.  I choose the massive if-statement  
approach to make the sequencing clearer to newcomers.

I might move to a scratch-like event sending approach in the  
future .... marmie sends "settleDownClass" message to the tots and  
the tots respond to the message, rather than have it all be time  
driven.  Any hints on how I'd do asynchronous multi-recipient event  
passing like this?   (on "settledDownClass" do ...)

One other request  ... a "wait" tile ... with seconds.  Could go in  
"basic".



_______________________________________________
Squeakland mailing list
[hidden email]
http://squeakland.org/mailman/listinfo/squeakland
Reply | Threaded
Open this post in threaded view
|

Re: [Etoys] [Olpc-open] squeaky tales and waveplace vision

Luke Gorrie-3
On 15/11/2007, Timothy Falconer <[hidden email]> wrote:
> One other request  ... a "wait" tile ... with seconds.  Could go in
> "basic".

The screenshot shows how I'm doing that. First drag out a script, then
'show code textually', then write Smalltalk and hit Cmd-s.

World doOneCycle forces Morphic to update and then it won't happen
again during the delay period. I don't know how to do this differently
- fortunately this is just what I've needed. :-)

_______________________________________________
Squeakland mailing list
[hidden email]
http://squeakland.org/mailman/listinfo/squeakland

waitSeconds.png (31K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Etoys] [Olpc-open] squeaky tales and waveplace vision

Luke Gorrie-3
In reply to this post by Timothy Falconer
On 16/11/2007, Yoshiki Ohshima <[hidden email]> wrote:
>   Luke posted a solution but that looks, err, brute-force^^;

It's the natural way that any Erlang programmer would write it. :-)

_______________________________________________
Squeakland mailing list
[hidden email]
http://squeakland.org/mailman/listinfo/squeakland
Reply | Threaded
Open this post in threaded view
|

Re: [Etoys] [Olpc-open] squeaky tales and waveplace vision

Scott Wallace
In reply to this post by Luke Gorrie-3
The problem with this kind of "wait", and indeed the reason why such a  
"wait" tile is not offered in the Viewer already, is that it paralyzes  
the rest of Squeak, including the running of all other scripts, for  
the duration of the "wait".  Thus, it's usually not acceptable within  
a multi-player simulation.


On Nov 15, 2007, at 8:17 AM, Luke Gorrie wrote:

> On 15/11/2007, Timothy Falconer <[hidden email]> wrote:
>> One other request  ... a "wait" tile ... with seconds.  Could go in
>> "basic".
>
> The screenshot shows how I'm doing that. First drag out a script, then
> 'show code textually', then write Smalltalk and hit Cmd-s.
>
> World doOneCycle forces Morphic to update and then it won't happen
> again during the delay period. I don't know how to do this differently
> - fortunately this is just what I've needed. :-)

_______________________________________________
Squeakland mailing list
[hidden email]
http://squeakland.org/mailman/listinfo/squeakland

waitSeconds.png (31K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: squeaky tales and waveplace vision

Bert Freudenberg
In reply to this post by Luke Gorrie-3

On Nov 16, 2007, at 5:28 , Luke Gorrie wrote:

> On 16/11/2007, Yoshiki Ohshima <[hidden email]> wrote:
>>   Luke posted a solution but that looks, err, brute-force^^;
>
> It's the natural way that any Erlang programmer would write it. :-)

Indeed, Etoys-II (the Tweak-based version) supports waiting exactly  
like that. I fact, it has a "wait" tile. But the architecture needed  
to change quite a lot for that.

We could retrofit something similar to the current Etoys (in fact,  
Yoshiki made an experimental scheduler that allows this) but it is  
too great a risk IMHO.

- Bert -



_______________________________________________
Squeakland mailing list
[hidden email]
http://squeakland.org/mailman/listinfo/squeakland