Hi,
The is croquet.io http://croquet.io/ which allows "multiple users to work or play together within a single shared distributed environment". I wonder whether it is possible to take a squeak image and make it that single shared distributed environment. So multiple users would have some sort of UI (with system browser, workspaces, ..) and be able to work on a single underlining model (the squeak image).
Jiri
Hi
(I am working on a few croquet.io projects.) Trying to run the current way of how Squeak works and making it "croquetified" has some challenges. One is that a Squeak image typically uses 50MB, 100MB, or more memory, and that means that the "snapshots" that Croquet takes and sends over the network now and then can be quite expensive. (At the same time, as we know, most of the contents in an image is read only; we can imagine to have a different image structure where the read only part is separate and only the new stuff is exchanged.)
Another issue is to ensure determinism. There may not be too many issues around it, as the old Squeak based Croquet has shown; but the current Morphic itself probably does not work out of the box in this regard.
An alternative approach is to have a different execution engine, or a translator from Smalltalk to JavaScript. I actually gave a talk recently on that idea (and other things):
https://youtu.be/E3og3l5kKes?t=1353
If you enable English subtitles on YouTube, you can get the gist of what I was talking about. The implementation of it is available here:
https://github.com/yoshikiohshima/smallroom
On Tue, Aug 2, 2022 at 5:30 AM Jiri R. jiriq@icloud.com wrote:
Hi,
The is croquet.io which allows "multiple users to work or play together within a single shared distributed environment". I wonder whether it is possible to take a squeak image and make it *that* single shared distributed environment. So multiple users would have some sort of UI (with system browser, workspaces, ..) and be able to work on a single underlining model (the squeak image).
Jiri
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Yoshiki Ohshima wrote on Tue, 2 Aug 2022 10:53:17 -0700
(I am working on a few croquet.io projects.)
Great!
Trying to run the current way of how Squeak works and making it "croquetified" has some challenges. One is that a Squeak image typically uses 50MB, 100MB, or more memory, and that means that the "snapshots" that Croquet takes and sends over the network now and then can be quite expensive.
The image for Croquet 0.2 (2005) was 16MB and that had a lot of content like textures and pictures in it, but you have a good point.
(At the same time, as we know, most of the contents in an image is read only; we can imagine to have a different image structure where the read only part is separate and only the new stuff is exchanged.)
Yes, just like the idea of separating the sources into two files (.sources and .changes) is to avoid having the same things stored over and over on disk or copied over the network.
Smalltalk/V had such a separation where the bulk of the image was in read-only .dll files while the small v.exe file only had what you created yourself. So it is certainly possible.
Another issue is to ensure determinism. There may not be too many issues around it, as the old Squeak based Croquet has shown; but the current Morphic itself probably does not work out of the box in this regard.
I have not tried Croquet in a recent Squeak image, but I am not aware of any problems.
An alternative approach is to have a different execution engine, or a translator from Smalltalk to JavaScript. I actually gave a talk recently on that idea (and other things): https://youtu.be/E3og3l5kKes?t=1353
If you enable English subtitles on YouTube, you can get the gist of what I was talking about. The implementation of it is available here: https://github.com/yoshikiohshima/smallroom
Thanks for the links! I have been watching the videos for the talks from "Camp Smalltalk Supreme" last month in Canada and the idea of "transpiling" Smalltalk to Javascript seems to be very popular.
That said, given that there is already one Croquet implementation in Squeak it seems that fixing any problems with that would be a lot less work than dealing with Javascript.
On Tue, Aug 2, 2022 at 5:30 AM Jiri R. wrote:
Hi, The is croquet.io which allows "multiple users to work or play together within a single shared distributed environment". I wonder whether it is possible to take a squeak image and make it that single shared distributed environment. So multiple users would have some sort of UI (with system browser, workspaces, ..) and be able to work on a single underlining model (the squeak image).
The current croquet.io is a new implementation in Javascript of the ideas for the old Croquet project in Squeak from 2003, which was forked as the academic OpenCobalt, the commercial Qwaq/Terf and the current commercial 3DICC.
An older project called Nebraska used a different approach to allow people on different computers to work together on Squeak projects. There was another project from Japan similar to Nebraska that was very interesting but I can't remember its name, unfortunately.
http://wiki.squeak.org/squeak/2901
https://wiki.squeak.org/squeak/1356
-- Jecel
On Tue, Aug 2, 2022 at 1:14 PM Jecel Assumpcao Jr jecel@merlintec.com wrote:
Yoshiki Ohshima wrote on Tue, 2 Aug 2022 10:53:17 -0700
(I am working on a few croquet.io projects.)
Great!
Trying to run the current way of how Squeak works and making it "croquetified" has some challenges. One is that a Squeak image typically uses 50MB, 100MB, or more memory, and that means that the "snapshots" that Croquet takes and sends over the network now and then can be quite expensive.
The image for Croquet 0.2 (2005) was 16MB and that had a lot of content like textures and pictures in it, but you have a good point.
Well, but an elaborated avatar alone can be bigger than 16MB; so yes, the landscape has changed a bit.
(At the same time, as we know, most of the contents in an image is read only; we can imagine to have a different image structure where the read only part is separate and only the new stuff is
exchanged.)
Yes, just like the idea of separating the sources into two files (.sources and .changes) is to avoid having the same things stored over and over on disk or copied over the network.
Smalltalk/V had such a separation where the bulk of the image was in read-only .dll files while the small v.exe file only had what you created yourself. So it is certainly possible.
And there are many others who would chime in to say that "Oh, I did that a copy on write Smalltalk thingy"^^;
Another issue is to ensure determinism. There may not be too many issues around it, as the old Squeak based Croquet has shown; but the current Morphic itself probably does not work out of the box in this
regard.
I have not tried Croquet in a recent Squeak image, but I am not aware of any problems.
Another thing, besides transcendental functions, is that a whileTrue: kind of loop needs to break away at the same logical time, and Cmd-. by one person would break out at the same time, etc.
An alternative approach is to have a different execution engine, or a
translator
from Smalltalk to JavaScript. I actually gave a talk recently on that
idea (and
other things): https://youtu.be/E3og3l5kKes?t=1353
If you enable English subtitles on YouTube, you can get the gist of what
I was
talking about. The implementation of it is available here: https://github.com/yoshikiohshima/smallroom
Thanks for the links! I have been watching the videos for the talks from "Camp Smalltalk Supreme" last month in Canada and the idea of "transpiling" Smalltalk to Javascript seems to be very popular.
That said, given that there is already one Croquet implementation in Squeak it seems that fixing any problems with that would be a lot less work than dealing with Javascript.
I am happy to see if somebody tries to do the full Squeak image based environment that can do collaborative development and all that, but looking at the old Croquet architecture without having a real model view separation sounds very hard to me, unfortunately.
On Tue, Aug 2, 2022 at 5:30 AM Jiri R. wrote:
Hi, The is croquet.io which allows "multiple users to work or play together
within
a single shared distributed environment". I wonder whether it is
possible to take
a squeak image and make it that single shared distributed environment. So multiple users would have some sort of UI (with system browser,
workspaces, ..)
and be able to work on a single underlining model (the squeak image).
The current croquet.io is a new implementation in Javascript of the ideas for the old Croquet project in Squeak from 2003, which was forked as the academic OpenCobalt, the commercial Qwaq/Terf and the current commercial 3DICC.
An older project called Nebraska used a different approach to allow people on different computers to work together on Squeak projects. There was another project from Japan similar to Nebraska that was very interesting but I can't remember its name, unfortunately.
http://wiki.squeak.org/squeak/2901
https://wiki.squeak.org/squeak/1356
-- Jecel _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
On 03/08/22 1:43 am, Jecel Assumpcao Jr wrote:
An older project called Nebraska used a different approach to allow people on different computers to work together on Squeak projects. There was another project from Japan similar to Nebraska that was very interesting but I can't remember its name, unfortunately.
NetMorph by Masashi Umezawa ?
https://www.researchgate.net/publication/4029256_NetMorph_-_an_intuitive_mob...
https://map.squeak.org/sm/packagebyname/NetMorph
Regards .. Subbu
I thought of NetMorph also, but it was not clear that one needs distributed objects and screens or one master screen and mirrors of it. For the former NetMorph could be good (if there is a working installation) but for the latter it would not be necessary. (The talk I mentioned was hosted by Umezawa-san; so I have not forgotten about it^^;)
On Tue, Aug 2, 2022 at 8:32 PM K K Subbu kksubbu.ml@gmail.com wrote:
On 03/08/22 1:43 am, Jecel Assumpcao Jr wrote:
An older project called Nebraska used a different approach to allow people on different computers to work together on Squeak projects. There was another project from Japan similar to Nebraska that was very interesting but I can't remember its name, unfortunately.
NetMorph by Masashi Umezawa ?
https://www.researchgate.net/publication/4029256_NetMorph_-_an_intuitive_mob...
https://map.squeak.org/sm/packagebyname/NetMorph
Regards .. Subbu _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
On Tue, Aug 02, 2022 at 10:53:17AM -0700, Yoshiki Ohshima wrote:
An alternative approach is to have a different execution engine, or a translator from Smalltalk to JavaScript. I actually gave a talk recently on that idea (and other things):
https://youtu.be/E3og3l5kKes?t=1353
If you enable English subtitles on YouTube, you can get the gist of what I was talking about. The implementation of it is available here:
This is a really good talk and the subtitles make it easy to follow. Thank you for posting it.
Dave
On Wed, Aug 3, 2022 at 6:04 AM David T. Lewis lewis@mail.msen.com wrote:
On Tue, Aug 02, 2022 at 10:53:17AM -0700, Yoshiki Ohshima wrote:
An alternative approach is to have a different execution engine, or a translator from Smalltalk to JavaScript. I actually gave a talk recently
on
that idea (and other things):
https://youtu.be/E3og3l5kKes?t=1353
If you enable English subtitles on YouTube, you can get the gist of what
I
was talking about. The implementation of it is available here:
This is a really good talk and the subtitles make it easy to follow. Thank you for posting it.
Thank you, David! Being at the right place at the right time, and I got some stuff to talk about.
https://www.youtube.com/watch?v=1dqxRqubgW4 is a talk that has a similar theme but more details in the "early" part.
Hi
On 2. Aug 2022, at 19:53, Yoshiki Ohshima yoshiki.ohshima@acm.org wrote:
Hi
(I am working on a few croquet.io projects.) Trying to run the current way of how Squeak works and making it "croquetified" has some challenges. One is that a Squeak image typically uses 50MB, 100MB, or more memory, and that means that the "snapshots" that Croquet takes and sends over the network now and then can be quite expensive. (At the same time, as we know, most of the contents in an image is read only; we can imagine to have a different image structure where the read only part is separate and only the new stuff is exchanged.)
Another issue is to ensure determinism. There may not be too many issues around it, as the old Squeak based Croquet has shown; but the current Morphic itself probably does not work out of the box in this regard.
An alternative approach is to have a different execution engine, or a translator from Smalltalk to JavaScript. I actually gave a talk recently on that idea (and other things):
https://youtu.be/E3og3l5kKes?t=1353
If you enable English subtitles on YouTube, you can get the gist of what I was talking about. The implementation of it is available here:
This reminds me of the Orca idea from a few years back: https://www.hpi.uni-potsdam.de/hirschfeld/projects/orca/index.html
Best regards -Tobias
On Tue, Aug 2, 2022 at 5:30 AM Jiri R. jiriq@icloud.com wrote: Hi,
The is croquet.io which allows "multiple users to work or play together within a single shared distributed environment". I wonder whether it is possible to take a squeak image and make it that single shared distributed environment. So multiple users would have some sort of UI (with system browser, workspaces, ..) and be able to work on a single underlining model (the squeak image).
Jiri
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
On Wed, Aug 3, 2022 at 10:20 AM Tobias Pape Das.Linux@gmx.de wrote:
Hi
On 2. Aug 2022, at 19:53, Yoshiki Ohshima yoshiki.ohshima@acm.org
wrote:
Hi
(I am working on a few croquet.io projects.) Trying to run the current
way of how Squeak works and making it "croquetified" has some challenges. One is that a Squeak image typically uses 50MB, 100MB, or more memory, and that means that the "snapshots" that Croquet takes and sends over the network now and then can be quite expensive. (At the same time, as we know, most of the contents in an image is read only; we can imagine to have a different image structure where the read only part is separate and only the new stuff is exchanged.)
Another issue is to ensure determinism. There may not be too many issues
around it, as the old Squeak based Croquet has shown; but the current Morphic itself probably does not work out of the box in this regard.
An alternative approach is to have a different execution engine, or a
translator from Smalltalk to JavaScript. I actually gave a talk recently on that idea (and other things):
https://youtu.be/E3og3l5kKes?t=1353
If you enable English subtitles on YouTube, you can get the gist of what
I was talking about. The implementation of it is available here:
This reminds me of the Orca idea from a few years back: https://www.hpi.uni-potsdam.de/hirschfeld/projects/orca/index.html
Nice! Even better, It is a C5 paper with familiar names.
This is probably beyond the scope of the "Newbies" mailing list, but how did Orca handle non-local returns?
On Wed, Aug 3, 2022 at 10:29 AM Yoshiki Ohshima Yoshiki.Ohshima@acm.org wrote:
On Wed, Aug 3, 2022 at 10:20 AM Tobias Pape Das.Linux@gmx.de wrote:
Hi
On 2. Aug 2022, at 19:53, Yoshiki Ohshima yoshiki.ohshima@acm.org
wrote:
Hi
(I am working on a few croquet.io projects.) Trying to run the current
way of how Squeak works and making it "croquetified" has some challenges. One is that a Squeak image typically uses 50MB, 100MB, or more memory, and that means that the "snapshots" that Croquet takes and sends over the network now and then can be quite expensive. (At the same time, as we know, most of the contents in an image is read only; we can imagine to have a different image structure where the read only part is separate and only the new stuff is exchanged.)
Another issue is to ensure determinism. There may not be too many
issues around it, as the old Squeak based Croquet has shown; but the current Morphic itself probably does not work out of the box in this regard.
An alternative approach is to have a different execution engine, or a
translator from Smalltalk to JavaScript. I actually gave a talk recently on that idea (and other things):
https://youtu.be/E3og3l5kKes?t=1353
If you enable English subtitles on YouTube, you can get the gist of
what I was talking about. The implementation of it is available here:
This reminds me of the Orca idea from a few years back:
https://www.hpi.uni-potsdam.de/hirschfeld/projects/orca/index.html
Nice! Even better, It is a C5 paper with familiar names.
-- Yoshiki
Hi
On 5. Aug 2022, at 01:35, Yoshiki Ohshima yoshiki.ohshima@acm.org wrote:
This is probably beyond the scope of the "Newbies" mailing list, but how did Orca handle non-local returns?
I wasn't part of the project but the source code for NLRs is here: https://github.com/orcaproject/orca/blob/master/js/classes.js#L73 and seems to use JS exceptions and maintains its own call stack
Best regards -Tobias
On Wed, Aug 3, 2022 at 10:29 AM Yoshiki Ohshima Yoshiki.Ohshima@acm.org wrote:
On Wed, Aug 3, 2022 at 10:20 AM Tobias Pape Das.Linux@gmx.de wrote: Hi
On 2. Aug 2022, at 19:53, Yoshiki Ohshima yoshiki.ohshima@acm.org wrote:
Hi
(I am working on a few croquet.io projects.) Trying to run the current way of how Squeak works and making it "croquetified" has some challenges. One is that a Squeak image typically uses 50MB, 100MB, or more memory, and that means that the "snapshots" that Croquet takes and sends over the network now and then can be quite expensive. (At the same time, as we know, most of the contents in an image is read only; we can imagine to have a different image structure where the read only part is separate and only the new stuff is exchanged.)
Another issue is to ensure determinism. There may not be too many issues around it, as the old Squeak based Croquet has shown; but the current Morphic itself probably does not work out of the box in this regard.
An alternative approach is to have a different execution engine, or a translator from Smalltalk to JavaScript. I actually gave a talk recently on that idea (and other things):
https://youtu.be/E3og3l5kKes?t=1353
If you enable English subtitles on YouTube, you can get the gist of what I was talking about. The implementation of it is available here:
This reminds me of the Orca idea from a few years back: https://www.hpi.uni-potsdam.de/hirschfeld/projects/orca/index.html
Nice! Even better, It is a C5 paper with familiar names.
-- Yoshiki
beginners@lists.squeakfoundation.org