Posted by
Howard Stearns on
Aug 15, 2006; 9:40pm
URL: https://forum.world.st/Re-camera-in-CroquetEvent-tp129390p129391.html
I think it is quite valuable for Croquet to be able to leverage all the
great stuff that has been built for Squeak. (Or at least, as much as
possible.) The fantasy is that WITHIN an island, one should be able to
use any fun thing like Sophie or Seaside or Plopp, or whatever --
without rewriting it's internals. Maybe it's not practical for it to be
that easy, but I'd like to keep that as a goal. Or to be able to tell
people that with an almost straight face.
So I'm nervous about both (a) and (b), below. As you note, (a) says
that other code that uses Transcript would have to be rewritten.[There's
another problem, embedded below.] (b) says that other code that is
brought in may have to have some of its more system-like internals
changed, even if the interface to them remains the same.
Now, we already sort of have a simple case of requiring change: the
underscore for assignment issue. And I'm ok with that.
But I really want to resist making a full break with existing stuff. I
don't know what the right answer is. I'm just expressing...
uncomfortableness.
Andreas Raab wrote:
> Howard Stearns wrote:
>> Thus the Harness makes an on-island camera that gets stored in the
>> ocean (e.g., in pointer, ogl, event, etc.).
>> When we try to sync, the same identical camera is pointed to from the
>> ocean and by the island's far ref map.
>
> Sounds logical.
>
>> So the problem, I think, is that harness rendering should never
>> happen on island. Maybe the fix is to have
>> CroquetParticipant>>drawOn: bail out if
>> self island ~= Island default?
>
> I think there are two problems (at least). Like you say, rendering
> on-island is completely evil, and I think we should raise an error
> (not just suppress it).
>
> This leaves us to deal with Transcript and we got two options here:
> a) Make Transcript a FarRef and allow only future messages to it. This
> would have the advantage that it's clearly The Right Thing To Do but
> it will break a lot of other code.
I'm not clear on how this would work. Would Transcript be a FarRef proxy
to a Transcript object on the Island default? I thought we were not
supposed to use future to send messages from a replicated island to
Island default? I thought instead we were supposed to use #signal:. (I'm
thinking of the discussion we had about chat, "how we did peer-to-peer
chat with tweak" 3/15/06)
>
> b) Ensure that Transcript is only flushed from Island>>default, e.g.,
> something like
> TranscriptStream>>endEntry
> Processor activeIsland == Island default
> ifFalse:[^Island default future flushTranscript].
> "regular flushing goes here"
> The advantage of which is that it will likely work okay in the current
> situation at the cost of some uglyness that will come back to haunt us
> ;-)
>
> In the current situation I'd prefer the latter.
>
> Cheers,
> - Andreas
--
Howard Stearns
University of Wisconsin - Madison
Division of Information Technology
mailto:
[hidden email]
jabber:
[hidden email]
voice:+1-608-262-3724