I think I found the cause of the problem: I'm updating the position of each
morph inside a WorldState>>#addDeferredUIMessage:. In Pharo, this seems to
be really slow. You can test it by executing this:

| rnd |
rnd := Random new.
100 timesRepeat: [
WorldState addDeferredUIMessage: [
Morph new openInWorld; center: rnd next @ rnd next * Display extent.
 ]
].

You'll notice it takes a couple of seconds to finish opening all the morphs,
but if you remove the #addDeferredUIMessage: send, it is instantaneous. In
Squeak and Etoys both versions are equally fast.

I looked at it a little, and I think Pharo has a bug in
WorldState>>#runStepsMethodsIn:. It seems it only executes one deferred ui
message per step. With the implementation below the problem is fixed.

WorldState>>#runStepMethodsIn: aWorld
"Perform periodic activity inbetween event cycles"
| queue nextInQueue|

"If available dispatch some deferred UI Message"
queue := self class deferredUIMessages.
 [(nextInQueue := queue nextOrNil) isNil]
whileFalse: [ nextInQueue value].

self runLocalStepMethodsIn: aWorld.

Best regards,
Richo

On Wed, Jan 19, 2011 at 6:40 PM, Ricardo Moran <[email protected]>wrote:

> The latest stable 1.1.1. I will look at it tomorrow and try to find out
> more.
>
> On Wed, Jan 19, 2011 at 6:38 PM, Stéphane Ducasse <
> [email protected]> wrote:
>
>> hi ricardo,
>>
>> which version are you using?
>>
>> Stef
>>
>> On Jan 19, 2011, at 10:32 PM, Ricardo Moran wrote:
>>
>> > I forgot to say it works in Squeak and Pharo (although in Pharo it's
>> *painfully* slow, I don't know why yet...)
>> >
>> > Cheers
>> > Richo
>> >
>> > On Wed, Jan 19, 2011 at 6:04 PM, Ricardo Moran <[email protected]>
>> wrote:
>> > Hi guys!
>> > I want to tell you some exciting news. Thanks to the ESUG Innovation
>> Technology Awards we've been able to buy ourselves a Microsoft Kinect. We
>> don't have a Xbox 360 yet, but that doesn't mean we can't have a little fun
>> with it. Who needs and Xbox if you can use Kinect with Etoys? :)
>> >
>> > After seeing Stephen Howell's great work using Kinect with Scratch, we
>> followed his steps and made it available for Etoys as well.
>> > See it for yourselves: http://www.youtube.com/watch?v=YnqqaHvbeqg
>> >
>> > You can find installation steps in our blog:
>> http://tecnodacta.com.ar/gira
>> >
>> > Cheers!
>> > Richo
>> >
>> >
>>
>>
>

Reply via email to