chromium

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

chromium

Paul Sheldon-2
dmoc :
Chromium read was interesting. I've downloaded freemind .

The idea of network traffic taking openGL up the pipeline for distributed visualization of supercomputer information. Supercomputers and multiprocessing and distributed processing produce a lot of data and I've read this makes such architectures push development in graphics and I should easily imagine distributed graphics.

But, the chromium read wasn't conducive to my saying or doing anything, it seemed like an ad or management brief . I might invest in its stock, but I don't believe these folks would mumble with me as I like to do. I suppose they have their government contracts, discuss on a need to know basis, and are not so much "librarians" or better "watched librarians" as the croquet list . They probably are a high profile high turnover profession, not a place to find lasting friends in a peculiar nitch . That is what I am looking for as I've tried high turnover and now want to try something else. I hope not to merely aggravate evangelism with evangelism . I don't think trying a life tactic has to be construed as pushing it on another . I hope, by introducing my choices, I am merely inviting folks to see how I turn out and if what I try "works".

I hope I have been kind above .

Croquet isn't just about graphics sharing, its doing with images makes symbols for whole open operating systems on a virtual machine that doesn't care where it is (following the definition of object oriented programming (oop) according to an encyclopedia of computing in my library) funded initially by the guy who invented oop idea and the idea of the laptop in his thesis.

I believe folks should go along their journeys on separate ways and try to bring back , but I am afraid of behaviors amongst my friends that, when I go off and try something, I get waysaying saying that maybe I should instead try what they recommend.

Oh in 1982 Tim Gallway taught music and no one questioned him as not a music major . He just asked them to be self-aware, a bit different than a neophyte evangelizing, so no one ever thought to be offended or question his professional nature .
Reply | Threaded
Open this post in threaded view
|

Re: chromium

Derek O'Connell
Sorry, I think I may have replied to the wrong post and because I favour brevity over verbosity
(personal preference, no offence intended or inferred(?)) it may appear as if I expect others to
be mind readers, lol. My response was to Florent/Josh's post re casting/embedding external apps in
a Croquet "window" and specifically opengl apps. I also failed to address possibly problems of
sync'ing these apps. So here is my second stab...

To avoid misunderstanding I define "external" to imply app's that were never designed to be
embedded in another app, although to be dogmatic they typically *are* embedded, even if it is only
within the OS/GUI, conveniently ignoring those few which want the whole machine, typically games.
What is wanted is to intercept the app's output, route it to Croquet and then route inputs from
Croquet back to the app (in an ordered manner, more on this later). VNC-ish but with an emphasis
on performance when coupled with Croquet. I mentioned Chromium in specific response to doing this
for OpenGL app's. Chromium can intercept OpenGL commands and forward them to a remote machine.
This machine would in practice be a nominated Croquet client acting as a bridge, routing the
commands to other Croquet clients as typical on-island messages or off-island "future" messages,
leaving Croquet to handle sync'ing as it is designed to do. I should perhaps say "in theory"
because while possible I can only truly say "it's possible" if not entirely practical at the
current time.

My specific point is that routing ogl commands should not be discounted because while the
resulting frame rate will be lower than running a local app, it may still be faster than shunting
bitmaps around from a VNC-like app, even with compression. OGL offers greater scope for efficiency
since much could be cached on the client... in fact as I write this it occurs to me that an
embedded X-Server would meet all the requirements! OK I may be slow at arriving at this
conclusion, lol, in my defence I have been up all night :-))) I will be surprised if this idea
hasn't already occurred to the Croquet developers. And having arrived at this conclusion it's time
for bed after a few final comments...

Regarding the possibility of sync'ing problems, specifically for the example used where the
external app is a web browser: AFAIK (I'm still learning this stuff) it won't happen in Croquet
because whoever is pointing at a window effectively has ownership. I'm sure there are a few
creases to iron-out and some special cases will arise but I would expect the current avatars
actions and results to be replicated before relinquishing control to another, precluding the
situation stated in the example.

Related but different from the above, I see at least two scenarios where Croquet constraints
should/could be relaxed. One is what I refer to as "Ambient Aspects". These are aspects that are
not critical to the Croquet "simulation" (to use Croquet terminology) and a prime example in the
supplied demos would be the sky-map, ie, does it really matter if your view of the sky is
different to mine if the focus of the simulation has nothing to do with the sky? Another example
would be water effects or the Alan Kay portal, here it's the *essence* of the simulation that
counts and the question of all clients being in-sync is (almost?) irrelevant. The other scenario
is "Private Aspects", ie, objects/features in shared islands but not-replicated and thus invisible
to others. In-island monitoring/control/usage-stats type "widgets"... which I'll leave there as
I'm pretty sure this is already catered for in Croquet... but then I've only read the dev docs
three times, which leads to my final comment and the one least related to the OP (so sorry for the
high jacking!)...

Although I am very pro traditional documentation, it seems somewhat ironic to me that I'm trawling
documents about a system that is ideal for visualizing it's own concepts! How about a
fun-competition to create Croquet demos that demo Croquet itself? Of course I expect the prize to
be some sort of virtual trophy modelled and presented in Croquet. What say thee?

And with that I'm off to my own sleepy island (no public router)... did I say something about
preferring brevity? See ya :-)



--- Paul Sheldon <[hidden email]> wrote:

> dmoc :
> Chromium read was interesting. I've downloaded freemind .
>
> The idea of network traffic taking openGL up the pipeline for
> distributed visualization of supercomputer information. Supercomputers
> and multiprocessing and distributed processing produce a lot of data and
> I've read this makes such architectures push development in graphics and
> I should easily imagine distributed graphics.
>
> But, the chromium read wasn't conducive to my saying or doing anything,
> it seemed like an ad or management brief . I might invest in its stock,
> but I don't believe these folks would mumble with me as I like to do. I
> suppose they have their government contracts, discuss on a need to know
> basis, and are not so much "librarians" or better "watched librarians"
> as the croquet list . They probably are a high profile high turnover
> profession, not a place to find lasting friends in a peculiar nitch .
> That is what I am looking for as I've tried high turnover and now want
> to try something else. I hope not to merely aggravate evangelism with
> evangelism . I don't think trying a life tactic has to be construed as
> pushing it on another . I hope, by introducing my choices, I am merely
> inviting folks to see how I turn out and if what I try "works".
>
> I hope I have been kind above .
>
> Croquet isn't just about graphics sharing, its doing with images makes
> symbols for whole open operating systems on a virtual machine that
> doesn't care where it is (following the definition of object oriented
> programming (oop) according to an encyclopedia of computing in my
> library) funded initially by the guy who invented oop idea and the idea
> of the laptop in his thesis.
>
> I believe folks should go along their journeys on separate ways and try
> to bring back , but I am afraid of behaviors amongst my friends that,
> when I go off and try something, I get waysaying saying that maybe I
> should instead try what they recommend.
>
> Oh in 1982 Tim Gallway taught music and no one questioned him as not a
> music major . He just asked them to be self-aware, a bit different than
> a neophyte evangelizing, so no one ever thought to be offended or
> question his professional nature .
>



      ___________________________________________________________
Yahoo! Answers - Got a question? Someone out there knows the answer. Try it
now.
http://uk.answers.yahoo.com/ 
Reply | Threaded
Open this post in threaded view
|

Re: chromium

Joshua Gargus-2

On Apr 24, 2007, at 2:23 AM, dmoc wrote:

> Sorry, I think I may have replied to the wrong post and because I  
> favour brevity over verbosity
> (personal preference, no offence intended or inferred(?)) it may  
> appear as if I expect others to
> be mind readers, lol. My response was to Florent/Josh's post re  
> casting/embedding external apps in
> a Croquet "window" and specifically opengl apps. I also failed to  
> address possibly problems of
> sync'ing these apps. So here is my second stab...
>
> My specific point is that routing ogl commands should not be  
> discounted because while the
> resulting frame rate will be lower than running a local app, it may  
> still be faster than shunting
> bitmaps around from a VNC-like app, even with compression.

This is a good point.  It is an open question whether this approach  
is feasible from a performance standpoint; the answer almost  
certainly depends on the characteristics of the OpenGL app that is to  
be embedded.  This requires more research... any volunteers?  :-)

>
> Regarding the possibility of sync'ing problems, specifically for  
> the example used where the
> external app is a web browser: AFAIK (I'm still learning this  
> stuff) it won't happen in Croquet
> because whoever is pointing at a window effectively has ownership.  
> I'm sure there are a few
> creases to iron-out and some special cases will arise but I would  
> expect the current avatars
> actions and results to be replicated before relinquishing control  
> to another, precluding the
> situation stated in the example.

That actually doesn't save you.  If you're replicating the UI events,  
then one user can grab the window focus, click on a link, and then  
immediately click on another link as soon as the page has loaded.  
Another user can still receive the second click event before their  
local browser has finished loading the page, and therefore end up in  
a different state.

>
> Related but different from the above, I see at least two scenarios  
> where Croquet constraints
> should/could be relaxed. One is what I refer to as "Ambient  
> Aspects". These are aspects that are
> not critical to the Croquet "simulation" (to use Croquet  
> terminology) and a prime example in the
> supplied demos would be the sky-map, ie, does it really matter if  
> your view of the sky is
> different to mine if the focus of the simulation has nothing to do  
> with the sky? Another example
> would be water effects or the Alan Kay portal, here it's the  
> *essence* of the simulation that
> counts and the question of all clients being in-sync is (almost?)  
> irrelevant. The other scenario
> is "Private Aspects", ie, objects/features in shared islands but  
> not-replicated and thus invisible
> to others. In-island monitoring/control/usage-stats type  
> "widgets"... which I'll leave there as
> I'm pretty sure this is already catered for in Croquet... but then  
> I've only read the dev docs
> three times, which leads to my final comment and the one least  
> related to the OP (so sorry for the
> high jacking!)...

Agreed about both Private and Ambient Aspects.

Josh



>
> Although I am very pro traditional documentation, it seems somewhat  
> ironic to me that I'm trawling
> documents about a system that is ideal for visualizing it's own  
> concepts! How about a
> fun-competition to create Croquet demos that demo Croquet itself?  
> Of course I expect the prize to
> be some sort of virtual trophy modelled and presented in Croquet.  
> What say thee?
>
> And with that I'm off to my own sleepy island (no public router)...  
> did I say something about
> preferring brevity? See ya :-)
>

Reply | Threaded
Open this post in threaded view
|

Re: chromium

Derek O'Connell

--- Joshua Gargus <[hidden email]> wrote:

>
> On Apr 24, 2007, at 2:23 AM, dmoc wrote:
>
> > Sorry, I think I may have replied to the wrong post and because I  
> > favour brevity over verbosity
> > (personal preference, no offence intended or inferred(?)) it may  
> > appear as if I expect others to
> > be mind readers, lol. My response was to Florent/Josh's post re  
> > casting/embedding external apps in
> > a Croquet "window" and specifically opengl apps. I also failed to  
> > address possibly problems of
> > sync'ing these apps. So here is my second stab...
> >
> > My specific point is that routing ogl commands should not be  
> > discounted because while the
> > resulting frame rate will be lower than running a local app, it may  
> > still be faster than shunting
> > bitmaps around from a VNC-like app, even with compression.
>
> This is a good point.  It is an open question whether this approach  
> is feasible from a performance standpoint; the answer almost  
> certainly depends on the characteristics of the OpenGL app that is to  
> be embedded.  This requires more research... any volunteers?  :-)

I may "tinker" at some point although I cannot commit to any time scale. I will pencil it in for
the next month of Sundays :-)

> > Regarding the possibility of sync'ing problems, specifically for  
> > the example used where the
> > external app is a web browser: AFAIK (I'm still learning this  
> > stuff) it won't happen in Croquet
> > because whoever is pointing at a window effectively has ownership.  
> > I'm sure there are a few
> > creases to iron-out and some special cases will arise but I would  
> > expect the current avatars
> > actions and results to be replicated before relinquishing control  
> > to another, precluding the
> > situation stated in the example.
>
> That actually doesn't save you.  If you're replicating the UI events,  
> then one user can grab the window focus, click on a link, and then  
> immediately click on another link as soon as the page has loaded.  
> Another user can still receive the second click event before their  
> local browser has finished loading the page, and therefore end up in  
> a different state.

Hmmm, the first page load is transient, the request for the second page *has* gone to the
remote/app'n server/session. Other users, at worse, will see a "glitch" and at best won't even
notice, iow a transient action results in a transient state, possibly not even registering with
other users perception (smacks of "If a tree falls and no one sees it..."). This is assuming the
absence of a mechanism to stall further input to the app (mouse click in this instance) until it's
on-island display has at least updated one full frame. To be explicit, the problem in your
scenario is other users seeing a page which may not even have had a link on the original page. I'm
not sure of the generality of the problem or the gravity of any effects resulting from it. Do you
have more examples of how/where this scenario will have a concrete impact?

A very similar situation: just as in normal usage, if I'm quick (or my connection is slow) I can
click another link in the *same* page before it has chance to load the first requested page.

> > Related but different from the above, I see at least two scenarios  
> > where Croquet constraints
> > should/could be relaxed. One is what I refer to as "Ambient  
> > Aspects". These are aspects that are
> > not critical to the Croquet "simulation" (to use Croquet  
> > terminology) and a prime example in the
> > supplied demos would be the sky-map, ie, does it really matter if  
> > your view of the sky is
> > different to mine if the focus of the simulation has nothing to do  
> > with the sky? Another example
> > would be water effects or the Alan Kay portal, here it's the  
> > *essence* of the simulation that
> > counts and the question of all clients being in-sync is (almost?)  
> > irrelevant. The other scenario
> > is "Private Aspects", ie, objects/features in shared islands but  
> > not-replicated and thus invisible
> > to others. In-island monitoring/control/usage-stats type  
> > "widgets"... which I'll leave there as
> > I'm pretty sure this is already catered for in Croquet... but then  
> > I've only read the dev docs
> > three times, which leads to my final comment and the one least  
> > related to the OP (so sorry for the
> > high jacking!)...
>
> Agreed about both Private and Ambient Aspects.
>
> Josh

I meant of course "hijacking" but it's good to see I have an ally... first step to world
domination :-))))




      ___________________________________________________________
Yahoo! Answers - Got a question? Someone out there knows the answer. Try it
now.
http://uk.answers.yahoo.com/ 
Reply | Threaded
Open this post in threaded view
|

Re: chromium

Joshua Gargus-2

On Apr 24, 2007, at 9:27 AM, dmoc wrote:

>
>>> Regarding the possibility of sync'ing problems, specifically for
>>> the example used where the
>>> external app is a web browser: AFAIK (I'm still learning this
>>> stuff) it won't happen in Croquet
>>> because whoever is pointing at a window effectively has ownership.
>>> I'm sure there are a few
>>> creases to iron-out and some special cases will arise but I would
>>> expect the current avatars
>>> actions and results to be replicated before relinquishing control
>>> to another, precluding the
>>> situation stated in the example.
>>
>> That actually doesn't save you.  If you're replicating the UI events,
>> then one user can grab the window focus, click on a link, and then
>> immediately click on another link as soon as the page has loaded.
>> Another user can still receive the second click event before their
>> local browser has finished loading the page, and therefore end up in
>> a different state.
>
> Hmmm, the first page load is transient, the request for the second  
> page *has* gone to the
> remote/app'n server/session. Other users, at worse, will see a  
> "glitch" and at best won't even
> notice, iow a transient action results in a transient state,  
> possibly not even registering with
> other users perception (smacks of "If a tree falls and no one sees  
> it..."). This is assuming the
> absence of a mechanism to stall further input to the app (mouse  
> click in this instance) until it's
> on-island display has at least updated one full frame. To be  
> explicit, the problem in your
> scenario is other users seeing a page which may not even have had a  
> link on the original page. I'm
> not sure of the generality of the problem or the gravity of any  
> effects resulting from it. Do you
> have more examples of how/where this scenario will have a concrete  
> impact?
>
> A very similar situation: just as in normal usage, if I'm quick (or  
> my connection is slow) I can
> click another link in the *same* page before it has chance to load  
> the first requested page.

I'm a bit confused.  To be clear, I thought that we were talking  
about a non-VNC solution where each client is running their own web-
browser (with the benefit of more immediate interaction, and with the  
downside that I am about to describe again).  For simplicity, let's  
assume that these browsers are identical.  I'm also assuming that the  
only events that are being replicated are UI events (mouse clicks and  
keystrokes), not higher-level events like "URL changed to".

Given this setup, let's say that I'm on a really fast connection and  
you're on a 56K modem.  I enter 'slashdot.org' into the URL bar, and  
the page quickly appears; I then click on the link for the top  
story.  You receive that click while your slow modem is still  
downloading animated advertisements for Intel Xeons; the click is  
ignored because the link hasn't yet been rendered on your page.  The  
end state is that you remain on /. while I am on the page with the  
top story.

Other things can go wrong, too.  If you have different fonts on your  
computer than I have, or your web-browser uses a different theme,  
then the link might be rendered at a different position on your page  
than on mine; again, the replicated click might not be on the link in  
your browser.

A VNC-like solution avoids these problems, at the expense of a more  
sluggish UI.  If you have the slow connection, you might simply not  
see the first page, but would eventually end up seeing the same thing  
as me.

I think that you probably understood all of this, and that we simply  
had a miscommunication somewhere.

Cheers,
Josh



Reply | Threaded
Open this post in threaded view
|

Re: chromium

Florent THIERY-2
About sluggishness....

If i'm not mistaken, any event/computation is replicated among all
users in the island, right? Which means that, even if somebody does
not see the action, he has to download the replication nonetheless,
right?

I forgot how it's called, but the graphics industry uses such a
technique to spare computation: no need to draw some 3D you don't see
(behind a wall for instance).

Isn't it possible to trigger computation replication based on visibility?

Another "sparing" could be done for textures, 3D models, (if you don't
come close, you only see the low-res version from far away),
animation, voice... But these are nowadays not an issue considering
croquet's relatively small islands size. Yet, if a gloal 3D space ever
links all the croquet spaces together, this type of optimization may
come in handy...

Florent
Reply | Threaded
Open this post in threaded view
|

Re: chromium

Joshua Gargus-2

On Apr 25, 2007, at 1:21 AM, Florent THIERY wrote:

> About sluggishness....
>
> If i'm not mistaken, any event/computation is replicated among all
> users in the island, right?

Every computation that is replicated among all users in the island is  
replicated among all users in the island, yes ;-)

But not all computations are necessarily replicated in the island...

(see below)

> Which means that, even if somebody does
> not see the action, he has to download the replication nonetheless,
> right?

Fortunately, not always (see below)

>
> I forgot how it's called, but the graphics industry uses such a
> technique to spare computation: no need to draw some 3D you don't see
> (behind a wall for instance).

"occlusion culling"

>
> Isn't it possible to trigger computation replication based on  
> visibility?

Yes, you are exactly right.  In fact, this already happens during  
rendering; objects are contained in hierarchical bounding spheres,  
and if a bounding sphere does not intersect the viewing frustum, it  
is not rendered.

One might also think about things like not streaming video to  
participants for whom the (virtual) video screen is not visible.  Or  
even doing the same thing for VNC.

Getting back to the original point, none of this does anything to  
alleviate the sluggishness of interacting with a VNC-application  
(although it may make things better for those who are in the space,  
but aren't interacting with the VNC app, since they wouldn't receive  
the data).

Cheers,
Josh

>
> Another "sparing" could be done for textures, 3D models, (if you don't
> come close, you only see the low-res version from far away),
> animation, voice... But these are nowadays not an issue considering
> croquet's relatively small islands size. Yet, if a gloal 3D space ever
> links all the croquet spaces together, this type of optimization may
> come in handy...
>
> Florent

Reply | Threaded
Open this post in threaded view
|

Re: chromium

Howard Stearns
In reply to this post by Joshua Gargus-2
I'm not really following how a Chromium app would work. It might work as a sort
of "better VNC". It could be that the Chromium app is running on a single
bottleneck server, but that instead of sending damaged rectangles back across
the wire, it sends drawing instructions.

I'll define my terms:

REMOTE APPS: At one extreme of an external app, we have a bunch of replicated
VNC clients communicating with a shared session on a VNC server. It works. On
the one hand, doing this on panels within Croquet provides a lot of context and
gives external apps some (but not all) of the benefits of Croquet. On the other
hand, there's some extra memory copying and so it might be slightly slower in
principle than a stand-alone 2D VNC client. I don't know if that matters in the
grand scheme of things. (The current KAT implementation is certainly slower.)
The current architecture is also going to be one round trip slower than
stand-alone VNC, but it doesn't have to be. In any case, VNC within Croquet is
not going to be faster than a stand-alone 2D VNC client. I find that I cannot
play video games over stand-alone 2D VNC.

LOCAL APPS: At the other extreme is individual copies of local applications,
each displayed in a replicated window in a replicated Croquet world. As Josh
described, this will only work when two requirements are met:

  1. The applications must produce the same deterministic results when given the
same inputs in the same order. The inputs cannot depend on real time, network
activity, machine state (e.g., for entropy generators or for additional files
that may or may not be there), or numeric computation.

  2. When someone joins late, the app has to have some way to get to the same
state. Maybe there's little enough interaction that this can be done by
replaying saved Croquet inputs. But if that takes too long, there has to be a
way to serialize the current state and get that to the newly joined participant.

Fortunately, there are a lot of legacy applications that this will work for. For
these cases, the results should be just as snappy as Croquet in general. Again,
there may be the same extra memory copy. Modulo that, with a little
re-engineering, there are SOME kinds of applications where we could make it as
snappy as running the application locally, outside of Croquet.

Although this can give better performance than remote bottlenecked apps, local
apps are not as general. We don't have a general plug-and-play local app
mechanism in the SDK right now.

------------------
Separately: it is true that pointing at a window gives ownership. But that's a
property of the current default UI, not a fundamental consequence of the Croquet
model.

Joshua Gargus wrote:

>
> On Apr 24, 2007, at 9:27 AM, dmoc wrote:
>>
>>>> Regarding the possibility of sync'ing problems, specifically for
>>>> the example used where the
>>>> external app is a web browser: AFAIK (I'm still learning this
>>>> stuff) it won't happen in Croquet
>>>> because whoever is pointing at a window effectively has ownership.
>>>> I'm sure there are a few
>>>> creases to iron-out and some special cases will arise but I would
>>>> expect the current avatars
>>>> actions and results to be replicated before relinquishing control
>>>> to another, precluding the
>>>> situation stated in the example.
>>>
>>> That actually doesn't save you.  If you're replicating the UI events,
>>> then one user can grab the window focus, click on a link, and then
>>> immediately click on another link as soon as the page has loaded.
>>> Another user can still receive the second click event before their
>>> local browser has finished loading the page, and therefore end up in
>>> a different state.
>>
>> Hmmm, the first page load is transient, the request for the second
>> page *has* gone to the
>> remote/app'n server/session. Other users, at worse, will see a
>> "glitch" and at best won't even
>> notice, iow a transient action results in a transient state, possibly
>> not even registering with
>> other users perception (smacks of "If a tree falls and no one sees
>> it..."). This is assuming the
>> absence of a mechanism to stall further input to the app (mouse click
>> in this instance) until it's
>> on-island display has at least updated one full frame. To be explicit,
>> the problem in your
>> scenario is other users seeing a page which may not even have had a
>> link on the original page. I'm
>> not sure of the generality of the problem or the gravity of any
>> effects resulting from it. Do you
>> have more examples of how/where this scenario will have a concrete
>> impact?
>>
>> A very similar situation: just as in normal usage, if I'm quick (or my
>> connection is slow) I can
>> click another link in the *same* page before it has chance to load the
>> first requested page.
>
> I'm a bit confused.  To be clear, I thought that we were talking about a
> non-VNC solution where each client is running their own web-browser
> (with the benefit of more immediate interaction, and with the downside
> that I am about to describe again).  For simplicity, let's assume that
> these browsers are identical.  I'm also assuming that the only events
> that are being replicated are UI events (mouse clicks and keystrokes),
> not higher-level events like "URL changed to".
>
> Given this setup, let's say that I'm on a really fast connection and
> you're on a 56K modem.  I enter 'slashdot.org' into the URL bar, and the
> page quickly appears; I then click on the link for the top story.  You
> receive that click while your slow modem is still downloading animated
> advertisements for Intel Xeons; the click is ignored because the link
> hasn't yet been rendered on your page.  The end state is that you remain
> on /. while I am on the page with the top story.
>
> Other things can go wrong, too.  If you have different fonts on your
> computer than I have, or your web-browser uses a different theme, then
> the link might be rendered at a different position on your page than on
> mine; again, the replicated click might not be on the link in your browser.
>
> A VNC-like solution avoids these problems, at the expense of a more
> sluggish UI.  If you have the slow connection, you might simply not see
> the first page, but would eventually end up seeing the same thing as me.
>
> I think that you probably understood all of this, and that we simply had
> a miscommunication somewhere.
>
> Cheers,
> Josh
>
>
>

--
Howard Stearns
University of Wisconsin - Madison
Division of Information Technology
mailto:[hidden email]
jabber:[hidden email]
office:+1-608-262-3724
mobile:+1-608-658-2419
Reply | Threaded
Open this post in threaded view
|

chromium ala Howard Stearns

Paul Sheldon-2
Howard Stearns wrote well --- I fear deathly silence as a response so
chime in hopefully not abnoxiously,
I also fear being accused of not being technical after I unload a bit of
philosophy I've been working on,
so I try to affirm that I understand some of the technical --- I also
like reading things the good professor writes
that I can't currently understand or what's a heaven for? :

> I'm not really following how a Chromium app would work. It might work
> as a sort of "better VNC". It could be that the Chromium app is
> running on a single bottleneck server, but that instead of sending
> damaged rectangles back across the wire, it sends drawing instructions.

I wondered at the term bottleneck server .

I googled in quotes for :
http://www.cs.utah.edu/classes/cs7460/lectures/lecture2.txt

"Topic: Scalability and good design practices

    Discussion topic: What can lead to POOR scalability?


    Centralization is often a culprit:
        - centralized services --> bottleneck server(s), fault intolerance
    - centralized data --> high latency, bottleneck server(s), faults
    - centralized algoritms --> load imbalance, hotspots

    Some characteristics of good distributed algorithms:"

But, remembering Vivarium, I might like little tiny (poor?) children of
Palo Alto to play with supercomputers because the commercial markets
might not have so much imagination or might (I read a free book sent me
by Smarr and Kaufman on commercial uses of supercomputers). Distributed
processing, however, is supercomputing . Collectively, with distributed
processing, poor people could own a supercomputer .

>
> I'll define my terms:
>
> REMOTE APPS: At one extreme of an external app, we have a bunch of
> replicated VNC clients communicating with a shared session on a VNC
> server. It works. On the one hand, doing this on panels within Croquet
> provides a lot of context and gives external apps some (but not all)
> of the benefits of Croquet.

Does that mean that my poor construction worker family will have to get
four computers to not fight over who uses croquet? I think you are
pushing for distributed processing rather than having the children share
a cpu .  We might imagine distributed graphics processing would be cheap
with the cheap graphics cards mentioned this list .

> On the other hand, there's some extra memory copying and so it might
> be slightly slower in principle than a stand-alone 2D VNC client.

I think we're fumbling around studying candidate network architectures
for candidate management of creative people. I am trying to write a
piece about "the angst of Penny at Stanford against the Stanford-Binet
IQ test". She wanted to study learning and teaching candidate strategies
rather than have children be the candidate study.

> I don't know if that matters in the grand scheme of things. (The
> current KAT implementation is certainly slower.) The current
> architecture is also going to be one round trip slower than
> stand-alone VNC, but it doesn't have to be. In any case, VNC within
> Croquet is not going to be faster than a stand-alone 2D VNC client. I
> find that I cannot play video games over stand-alone 2D VNC.

I hope the implication is that croquet, rather than merely control each
others computers, will allow creative people to play with each other
better .

>
> LOCAL APPS: At the other extreme is individual copies of local
> applications, each displayed in a replicated window in a replicated
> Croquet world.

One can study a situation by studying extremes, extremes that might be
ludicrous, but, nonetheless, illuminating .

I wonder that visiting another person's world means you share their
total experience . My brother wishes that people would go into phone
booths with their cell phones so he wouldn't have to hear about their
business . He is jealous that they aren't really accessible . Creative
collaboration isn't folks in lock sync replicating the totality of each
others lives . Its something else .

> As Josh described, this will only work when two requirements are met:
>
>  1. The applications must produce the same deterministic results when
> given the same inputs in the same order. The inputs cannot depend on
> real time, network activity, machine state (e.g., for entropy
> generators or for additional files that may or may not be there), or
> numeric computation.

The use of the words "machine state" suggest this croquet model may be
related to automata theory and state machines. I remember my profound
shame at failing a course in artificial intelligence and my tears of joy
at working my heart out on automata theory one summer. I felt I had
recovered my honor and soon after started beta testing LiveMath computer
algebra wondering if I could understand it as a state machine like my
early Hewlett Packard 32 instructions summarized a whole book of
instructions in a flow diagram state machine.

I hated when the "old boys" at Rockwell tried to impose flow graph
expositions of code, but, privately, later, in CS I became reinvigorated
with that HP experience .

Entropy has references in network theory and Shannon information theory
. Programming has as fundamental the way you store work or record . In
my time asymmetry studies, you only record (files) by generating entropy
. If you didn't, you couldn't.

I think what is being spoken of is an application must be like science
having reproducible results so consumers can count on their behavior .

>
>  2. When someone joins late, the app has to have some way to get to
> the same state. Maybe there's little enough interaction that this can
> be done by replaying saved Croquet inputs. But if that takes too long,
> there has to be a way to serialize the current state and get that to
> the newly joined participant.

There are candidates being thought of for getting this "scientific
reproducibility" and accountability .

>
> Fortunately, there are a lot of legacy applications that this will
> work for.

what the croquet model would be good for ...

> For these cases, the results should be just as snappy as Croquet in
> general. Again, there may be the same extra memory copy. Modulo that,
> with a little re-engineering, there are SOME kinds of applications
> where we could make it as snappy as running the application locally,
> outside of Croquet.

be just as good for

>
> Although this can give better performance than remote bottlenecked
> apps, local apps are not as general. We don't have a general
> plug-and-play local app mechanism in the SDK right now.

I think you are saying the croquet model can give better performance
than remote bottlenecked apps, however its local apps are not as general
because they need the two restrictions above .

>
> ------------------
> Separately: it is true that pointing at a window gives ownership. But
> that's a property of the current default UI, not a fundamental
> consequence of the Croquet model.

I think this being not a fundamental consequence of the Croquet model is
"good" and has something to do with not programming modally .

Reply | Threaded
Open this post in threaded view
|

Re: chromium ala Howard Stearns

Howard Stearns
Comments below, but first some general stuff:

I think it's perfectly fine to like Croquet because it exists, or because it's
open source, or written in Smalltalk, or whatever reason one wants. But to me,
the interesting part is how the model differs from other distributed systems,
and what the potential consequences are of that model (e.g., scalability,
safety, etc.).

As I see it, that core model is -- just as Paul says -- about reproducing
results. Other distributed systems are about synchronizing results. The key
insight of Croquet is that the same inputs at the same "time" will produce the
same results for the same initial conditions. The entire computation is
(re-)executed the same way on each participating machine. Given the careful work
by smiTh, reEd, and raAb to make this happen, collaborative applications can be
simpler, safer, more scalable, and more integrated with each other and their
context. It does NOT have the effect of offloading different parts of the
computation to different machines. We think this is ok because processors are or
will be plenty cheap enough. I'd rather be more sparing in the use of people
than of silicon.

Now, you could use Croquet's cool graphics and neato development environment to
do distributed processing rather than replicated processing, but I don't think
that's really playing to Croquet's deep core strengths.

The part of this discussion thread that I tuned in to was about providing access
to legacy content that was not implemented in Croquet. It is interesting to me
to consider not just how legacy content can be included at all, but how to do so
while preserving Croquet's benefits for Croquet content, and maybe even
extending some of those benefits to the legacy content. The exposition was
between systems like VNC that centralize the legacy application to one processor
and distribute the results, vs. having a copy of the legacy application on each
machine. The problem with doing the latter is that many legacy applications
simply don't have a good way to maintain the Croquet (TEA-time) invariant:
results might be different for different copies on the network, even when the
inputs are funneled through Croquet.

c.f. http://opencroquet.org/index.php/The_Core_Model

Paul Sheldon wrote:
> Howard Stearns wrote well --- I fear deathly silence as a response so
> chime in hopefully not abnoxiously,
> I also fear being accused of not being technical after I unload a bit of
> philosophy I've been working on,
> so I try to affirm that I understand some of the technical --- I also
> like reading things the good professor writes
> that I can't currently understand or what's a heaven for? :


Hah! I'm on staff in the IT department of the University of Wisconsin -- not a
professor. I don't have any Computer Science degree at all. Google me if you're
bored.

>
>> I'm not really following how a Chromium app would work. It might work
>> as a sort of "better VNC". It could be that the Chromium app is
>> running on a single bottleneck server, but that instead of sending
>> damaged rectangles back across the wire, it sends drawing instructions.
>
> I wondered at the term bottleneck server .

I just mean "bottleneck server" as a disparaging term for a single centralized
server, and emphasizing that that this puts limitations on performance.

I think I may have first heard David Smith say something like "bottleneck
provider" in referring to an Internet Service Provider. It could have been
someone else.

Mind you, the current version of Croquet turns limitations like these into a
feature by making all messages go through a router for the purpose of
timestamping and authentication.

>
> I googled in quotes for :
> http://www.cs.utah.edu/classes/cs7460/lectures/lecture2.txt
>
> "Topic: Scalability and good design practices
>
>    Discussion topic: What can lead to POOR scalability?
>
>
>    Centralization is often a culprit:
>        - centralized services --> bottleneck server(s), fault intolerance
>    - centralized data --> high latency, bottleneck server(s), faults
>    - centralized algoritms --> load imbalance, hotspots
>
>    Some characteristics of good distributed algorithms:"
>
> But, remembering Vivarium, I might like little tiny (poor?) children of
> Palo Alto to play with supercomputers because the commercial markets
> might not have so much imagination or might (I read a free book sent me
> by Smarr and Kaufman on commercial uses of supercomputers). Distributed
> processing, however, is supercomputing . Collectively, with distributed
> processing, poor people could own a supercomputer .
>
>>
>> I'll define my terms:
>>
>> REMOTE APPS: At one extreme of an external app, we have a bunch of
>> replicated VNC clients communicating with a shared session on a VNC
>> server. It works. On the one hand, doing this on panels within Croquet
>> provides a lot of context and gives external apps some (but not all)
>> of the benefits of Croquet.
>
> Does that mean that my poor construction worker family will have to get
> four computers to not fight over who uses croquet? I think you are
> pushing for distributed processing rather than having the children share
> a cpu .  We might imagine distributed graphics processing would be cheap
> with the cheap graphics cards mentioned this list .

See intro, above.

>
>> On the other hand, there's some extra memory copying and so it might
>> be slightly slower in principle than a stand-alone 2D VNC client.
>
> I think we're fumbling around studying candidate network architectures
> for candidate management of creative people. I am trying to write a
> piece about "the angst of Penny at Stanford against the Stanford-Binet
> IQ test". She wanted to study learning and teaching candidate strategies
> rather than have children be the candidate study.
>
>> I don't know if that matters in the grand scheme of things. (The
>> current KAT implementation is certainly slower.) The current
>> architecture is also going to be one round trip slower than
>> stand-alone VNC, but it doesn't have to be. In any case, VNC within
>> Croquet is not going to be faster than a stand-alone 2D VNC client. I
>> find that I cannot play video games over stand-alone 2D VNC.
>
> I hope the implication is that croquet, rather than merely control each
> others computers, will allow creative people to play with each other
> better .

Right. The hope is that all approaches to legacy apps from within Croquet -- not
just only remote or only local -- would allow people to work together IN
CONTEXT. VNC by itself (outside of Croquet) doesn't really do that.

>
>>
>> LOCAL APPS: At the other extreme is individual copies of local
>> applications, each displayed in a replicated window in a replicated
>> Croquet world.
>
> One can study a situation by studying extremes, extremes that might be
> ludicrous, but, nonetheless, illuminating .
>
> I wonder that visiting another person's world means you share their
> total experience . My brother wishes that people would go into phone
> booths with their cell phones so he wouldn't have to hear about their
> business . He is jealous that they aren't really accessible . Creative
> collaboration isn't folks in lock sync replicating the totality of each
> others lives . Its something else .

Technically, TEA-time is about being in lock sync, replicating the totality of
the simulation. One philosophically interesting thing is that rendering is NOT
part of the simulation and is not replicated -- every participant has their own
point of view.  So, the boring mechanical part of the COMPUTER system is about
being in lock step. But the value and raison detre of the WHOLE COMPUTER-HUMAN
system comes from the individual (non-replicated) points of view of the
participants.

>
>> As Josh described, this will only work when two requirements are met:
>>
>>  1. The applications must produce the same deterministic results when
>> given the same inputs in the same order. The inputs cannot depend on
>> real time, network activity, machine state (e.g., for entropy
>> generators or for additional files that may or may not be there), or
>> numeric computation.
>
> The use of the words "machine state" suggest this croquet model may be

I think it is best to NOT think about machine state for real Croquet
applications. Just think about replicated messages and behavior.

Alas, legacy applications are not Croquet. They do tend to be oriented around
"state" and "data."

> related to automata theory and state machines. I remember my profound
> shame at failing a course in artificial intelligence and my tears of joy
> at working my heart out on automata theory one summer. I felt I had
> recovered my honor and soon after started beta testing LiveMath computer
> algebra wondering if I could understand it as a state machine like my
> early Hewlett Packard 32 instructions summarized a whole book of
> instructions in a flow diagram state machine.
>
> I hated when the "old boys" at Rockwell tried to impose flow graph
> expositions of code, but, privately, later, in CS I became reinvigorated
> with that HP experience .
>
> Entropy has references in network theory and Shannon information theory
> . Programming has as fundamental the way you store work or record . In
> my time asymmetry studies, you only record (files) by generating entropy
> . If you didn't, you couldn't.
>
> I think what is being spoken of is an application must be like science
> having reproducible results so consumers can count on their behavior .
>
>>
>>  2. When someone joins late, the app has to have some way to get to
>> the same state. Maybe there's little enough interaction that this can
>> be done by replaying saved Croquet inputs. But if that takes too long,
>> there has to be a way to serialize the current state and get that to
>> the newly joined participant.
>
> There are candidates being thought of for getting this "scientific
> reproducibility" and accountability .
>
>>
>> Fortunately, there are a lot of legacy applications that this will
>> work for.
>
> what the croquet model would be good for ...
>
>> For these cases, the results should be just as snappy as Croquet in
>> general. Again, there may be the same extra memory copy. Modulo that,
>> with a little re-engineering, there are SOME kinds of applications
>> where we could make it as snappy as running the application locally,
>> outside of Croquet.
>
> be just as good for
>
>>
>> Although this can give better performance than remote bottlenecked
>> apps, local apps are not as general. We don't have a general
>> plug-and-play local app mechanism in the SDK right now.
>
> I think you are saying the croquet model can give better performance
> than remote bottlenecked apps, however its local apps are not as general
> because they need the two restrictions above .

Yes.

>
>>
>> ------------------
>> Separately: it is true that pointing at a window gives ownership. But
>> that's a property of the current default UI, not a fundamental
>> consequence of the Croquet model.
>
> I think this being not a fundamental consequence of the Croquet model is
> "good" and has something to do with not programming modally .
>

Agreed.

--
Howard Stearns
University of Wisconsin - Madison
Division of Information Technology
mailto:[hidden email]
office:+1-608-262-3724
Reply | Threaded
Open this post in threaded view
|

Re: chromium ala Howard Stearns

Kyle Hamilton
In reply to this post by Paul Sheldon-2
On 4/29/07, Paul Sheldon <[hidden email]> wrote:

> > I'm not really following how a Chromium app would work. It might work
> > as a sort of "better VNC". It could be that the Chromium app is
> > running on a single bottleneck server, but that instead of sending
> > damaged rectangles back across the wire, it sends drawing instructions.
>
> I wondered at the term bottleneck server .
>
> But, remembering Vivarium, I might like little tiny (poor?) children of
> Palo Alto to play with supercomputers because the commercial markets
> might not have so much imagination or might (I read a free book sent me
> by Smarr and Kaufman on commercial uses of supercomputers). Distributed
> processing, however, is supercomputing . Collectively, with distributed
> processing, poor people could own a supercomputer .

Supercomputing means a lot of things to a lot of people.  My personal
take on it is that it is any situation where several computers are all
programmed to perform portions of a much larger calculation.

Croquet is not 'supercomputing' under this view.  Croquet is
'distributed processing' -- rather than have a single server that
performs all the calculations and then distributes the results of
those calculations, Croquet distributes the data to perform the
calculations and the calculations to be performed.  This allows each
participant in the world to calculate the simulation state
independently.

> > I'll define my terms:
> >
> > REMOTE APPS: At one extreme of an external app, we have a bunch of
> > replicated VNC clients communicating with a shared session on a VNC
> > server. It works. On the one hand, doing this on panels within Croquet
> > provides a lot of context and gives external apps some (but not all)
> > of the benefits of Croquet.
>
> Does that mean that my poor construction worker family will have to get
> four computers to not fight over who uses croquet? I think you are
> pushing for distributed processing rather than having the children share
> a cpu .  We might imagine distributed graphics processing would be cheap
> with the cheap graphics cards mentioned this list .

You're rather missing the point here.

VNC is a means of transporting the framebuffer output of a session --
be that session an X server, a Windows desktop, a MacOS desktop, or
anything else.  It has the ability to transport this framebuffer to
multiple locations, and all of them can share it.  However, the
processing that creates this framebuffer must put its output in a
single place -- the 'host' of the framebuffer.  (Multiple X clients
from multiple machines can output to a single Xvnc session, but that's
only because of the X protocol.)  VNC doesn't lend itself to taking
the applications that output to it and letting them run across the
multiple VNC client machines ('application sharing').

> > On the other hand, there's some extra memory copying and so it might
> > be slightly slower in principle than a stand-alone 2D VNC client.
>
> I think we're fumbling around studying candidate network architectures
> for candidate management of creative people. I am trying to write a
> piece about "the angst of Penny at Stanford against the Stanford-Binet
> IQ test". She wanted to study learning and teaching candidate strategies
> rather than have children be the candidate study.

Actually, we're looking at the History -- those that do not learn from
history are doomed to repeat it.  We're looking at the characteristics
of what's happened before, and trying to figure out what
characteristics are good versus what characteristics should be left by
the wayside.

> > I don't know if that matters in the grand scheme of things. (The
> > current KAT implementation is certainly slower.) The current
> > architecture is also going to be one round trip slower than
> > stand-alone VNC, but it doesn't have to be. In any case, VNC within
> > Croquet is not going to be faster than a stand-alone 2D VNC client. I
> > find that I cannot play video games over stand-alone 2D VNC.
>
> I hope the implication is that croquet, rather than merely control each
> others computers, will allow creative people to play with each other
> better .

I believe that this is what it's always tried to do.

Croquet creates a simulation, and the simulation is distributed such
that any subset of the individual simulation clients can continue the
simulation even in the absence of the original location where the
simulation was obtained.

> > LOCAL APPS: At the other extreme is individual copies of local
> > applications, each displayed in a replicated window in a replicated
> > Croquet world.
>
> One can study a situation by studying extremes, extremes that might be
> ludicrous, but, nonetheless, illuminating .

Again, without examining the history and characteristics of that
history, there is relatively little room and capability to advance the
art and the science.  Sometimes situations themselves must be studied
and examined, to determine how best to modify them.

> I wonder that visiting another person's world means you share their
> total experience . My brother wishes that people would go into phone
> booths with their cell phones so he wouldn't have to hear about their
> business . He is jealous that they aren't really accessible . Creative
> collaboration isn't folks in lock sync replicating the totality of each
> others lives . Its something else .

Creative collaboration isn't the situation of being in lock-step in
the totality of life.  However, there is a very important aspect of
collaboration which you appear not to recognize:  In order to
collaborate, two or more must communicate.  In order to effectively
communicate, there must be at least some aspect of experience which is
shared (sensed independently).

Croquet is a means of sharing experience.  In order to effectively
share experience, Croquet replicates the state of the simulation in
such a way that it can be sensed in more than one location, in
multiple ways (however it makes sense to sense it).

Croquet is NOT a means of forcing people to think the same way.  It is
a means of sharing information such that the computers (clients) that
people use can do their own processing on that information.

> > As Josh described, this will only work when two requirements are met:
> >
> >  1. The applications must produce the same deterministic results when
> > given the same inputs in the same order. The inputs cannot depend on
> > real time, network activity, machine state (e.g., for entropy
> > generators or for additional files that may or may not be there), or
> > numeric computation.
>
> The use of the words "machine state" suggest this croquet model may be
> related to automata theory and state machines. I remember my profound
> shame at failing a course in artificial intelligence and my tears of joy
> at working my heart out on automata theory one summer. I felt I had
> recovered my honor and soon after started beta testing LiveMath computer
> algebra wondering if I could understand it as a state machine like my
> early Hewlett Packard 32 instructions summarized a whole book of
> instructions in a flow diagram state machine.

Short answer, yes.

Croquet can be viewed as:
a) the data that makes up the simulation
b) the behavior which allows the simulation to proceed.

Perhaps not-so-oddly, an "object" (in object oriented programming) can
also be viewed that way -- the data, and the operations which can be
applied to the data.

> I hated when the "old boys" at Rockwell tried to impose flow graph
> expositions of code, but, privately, later, in CS I became reinvigorated
> with that HP experience .
>
> Entropy has references in network theory and Shannon information theory
> . Programming has as fundamental the way you store work or record . In
> my time asymmetry studies, you only record (files) by generating entropy
> . If you didn't, you couldn't.
>
> I think what is being spoken of is an application must be like science
> having reproducible results so consumers can count on their behavior .

Because one of the requirements of the Croquet simulation is that each
one must be able to continue independently, the machine must be
deterministic.  This means that it is a state machine -- because with
each input, it can be determined from the knowledge of the entire
simulation how the simulation will change.

If any of the clients become out-of-sync, then input which is
meaningless will be given to other instance simulations, which may
cause them to behave erratically at best or meaninglessly at worst.

> >  2. When someone joins late, the app has to have some way to get to
> > the same state. Maybe there's little enough interaction that this can
> > be done by replaying saved Croquet inputs. But if that takes too long,
> > there has to be a way to serialize the current state and get that to
> > the newly joined participant.
>
> There are candidates being thought of for getting this "scientific
> reproducibility" and accountability .

Let's look at it this way: as soon as there is a way of writing out
the state of the simulation to disk, there is a way of writing out the
state of the simulation to a new client.

(To see the truth of this statement, look at the concept that "writing
out the state of the simulation to disk" is "getting the state of the
simulation ready for a new client".  Then, if the current simulator is
killed, creating a new simulator and then "loading the state of the
simulation from disk" is the same as "synchronizing the simulator to a
different simulation state" -- no matter that it may have been
time-shifted.)

> > Although this can give better performance than remote bottlenecked
> > apps, local apps are not as general. We don't have a general
> > plug-and-play local app mechanism in the SDK right now.
>
> I think you are saying the croquet model can give better performance
> than remote bottlenecked apps, however its local apps are not as general
> because they need the two restrictions above .

The concept of a 'remote bottlenecked app' is something where there is
only /one/ place to obtain the information necessary to update the
simulation state.  it is also something where only /one/ place must
become unreachable for the application to become unusable.

Unfortunately, this matters.

> > ------------------
> > Separately: it is true that pointing at a window gives ownership. But
> > that's a property of the current default UI, not a fundamental
> > consequence of the Croquet model.
>
> I think this being not a fundamental consequence of the Croquet model is
> "good" and has something to do with not programming modally .

I rather wish that I could find