Greetings again.
I'm hacking on Scratch, which is based on MIT Squeak, which is based on Squeak 2.8. I want to collaborate with others on a project. Monticello appears to require Squeak 3.1 or later. Is there a way for me to upgrade an image?
If not, is there a sensible way to use a revision control system? It appears to me that: 1) collaborators could each create change sets, and e-mail them to each other, for every one to file in (which sounds like it would be confusing; surely I am not understanding something)
or 2) every class in the code could be filed out into a directory, standard version control systems could be used, and then every class could be filed back in (which likewise seems daunting).
What sort of workflows would you recommend? Cheers, Clinton Blackmore
_______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
On 6/21/2010 7:59 PM, Clinton Blackmore wrote:
> I'm hacking on Scratch, which is based on MIT Squeak, which is based on > Squeak 2.8. I want to collaborate with others on a project. > > Monticello appears to require Squeak 3.1 or later. Is there a way for > me to upgrade an image? I don't think that's a sensible route considering that the 2.8 image that Scratch is based on is likely not the Squeak 2.8 release but a custom variant. > If not, is there a sensible way to use a revision control system? Well, you *could* consider porting Monticello to 2.8. Since it has a pretty decent test suite you'd basically have to port PackageInfo, SystemNotification (or replace it with something else) and Monticello. Certainly work, but not unbounded if you know what you're doing (but if you're not an experienced Smalltalker don't even think about it). > It appears to me that: > > 1) collaborators could each create change sets, and e-mail them to each > other, for every one to file in (which sounds like it would be > confusing; surely I am not understanding something) > > or > > 2) every class in the code could be filed out into a directory, standard > version control systems could be used, and then every class could be > filed back in (which likewise seems daunting). > > > What sort of workflows would you recommend? The currently accepted workflows all center around Monticello. Basically people create shared repositories at (for example) http://www.squeaksource.com and use that to commit, update, and merge. Alternatives have been proposed (such as using SVN; see [1]) but they're generally pretty heavy-weight and require even more overhead to maintain. [1]http://news.squeak.org/2008/09/16/subversion-integration-for-squeak Cheers, - Andreas _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
In reply to this post by Clinton Blackmore
On Mon, Jun 21, 2010 at 9:59 PM, Clinton Blackmore
<[hidden email]> wrote: > Greetings again. > I'm hacking on Scratch, which is based on MIT Squeak, which is based on > Squeak 2.8. I want to collaborate with others on a project. > Monticello appears to require Squeak 3.1 or later. Is there a way for me to > upgrade an image? > If not, is there a sensible way to use a revision control system? > It appears to me that: > 1) collaborators could each create change sets, and e-mail them to each > other, for every one to file in (which sounds like it would be confusing; > surely I am not understanding something) This was how all Smalltalkers worked in the 80s. OTI created Envy to improve the situation, and Cincom eventually replaced Envy with Store, and of course Squeak got Monticello. There is a good reason why people built these systems; change sets can be a pain in the neck. But it is possible to manage version control with change sets, it just takes some discipline. E-mail is NOT advised as the main way of sharing. You need to have a shared file system. You must keep a list of all the change sets and the order they are to be filed in. When you want to "commit a change", you not only put your change set in the repository, you add it to the list of change sets to be filed in. On my first big Smalltalk project, our list of files was embedded in a Smalltalk script that acted like a makefile. We'd execute this script and it would file in all the change files and so build an image for us. Another thing is that we named our change sets something like "Modulename-author-date.st" to ensure that two people didn't make files with the same name, and to give a hint at the order they would be filed in, though there were a few cases where we did not file them in by date order. Remembering the "good old days", Ralph Johnson _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
In reply to this post by Clinton Blackmore
On 22/06/10 09:59, Clinton Blackmore wrote:
> Greetings again. > > I'm hacking on Scratch, which is based on MIT Squeak, which is based on > Squeak 2.8. I want to collaborate with others on a project. > > Monticello appears to require Squeak 3.1 or later. Is there a way for > me to upgrade an image? > > If not, is there a sensible way to use a revision control system? > > It appears to me that: > > 1) collaborators could each create change sets, and e-mail them to each > other, for every one to file in (which sounds like it would be > confusing; surely I am not understanding something) > > or > > 2) every class in the code could be filed out into a directory, standard > version control systems could be used, and then every class could be > filed back in (which likewise seems daunting). > > > What sort of workflows would you recommend? Another idea (not the easiest) is to port Scratch to a Squeak 4.1 or Pharo 1.1. I have already put all the code in a metacello repository. Regards, -- Serge Stinckwich UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam Every DSL ends up being Smalltalk http://doesnotunderstand.org/ _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
On Tue, Aug 10, 2010 at 12:34 AM, Serge Stinckwich <[hidden email]> wrote:
I had contemplated porting the code, but was not up to the task. In these last couple of months of slowly working on my project, I've gone from saying, "What the heck is this thing (referring to Squeak)?" to saying "How did I ever live without live debugging and an environment like this? This is awesome!" And that's with a Squeak that is ten years old. This is the first I've heard of Metacello, and it wouldn't hurt me to re-read the Monticello section in Squeak By Example. I've installed Metacello and started on the tutorial. How do I access your repository for Scratch? Does it run at all for you?
Going back to the original question, this is the partial solution I came up with; I would've mentioned it here earlier but for one significant shortcoming. 1 - I added code to go through almost all classes in the image, and check the timestamp on each selector. If it was newer than January 1, 2010 [the Scratch source was released in fall 2009], it files out the class, using cr/lf line-endings, with a number in front marking the depth in the class hierarchy. The modified classes are all filed out to the same directory, which can be managed with version control tools that have no idea what an image is.
2 - I wrote another routine to look at all the files in the Classes folder, and import them based on the order of the number in front -- ensuring that superclasses are imported before subclasses. The big shortcoming is that I have not got a good way to deal with deleting selectors or classes. If you create a class, export it, and commit it to an external version control system, and then delete it, I have no obvious way to tell the external system that a class or method has been removed. I'm coming to the point now where that would be useful. Conceivably I could make some sort of manual, error-prone list of timestamps for when things are deleted, and, on importing code, look at the timestamps, and, if they proceed the deletion time, delete the method or class.
I have written up how to use this system for my small team here:
Incidentally, Serge, seeing as you are interesting in robotics, I thought it'd be worth mentioning that an important aim of my project is to allow children to program their LEGO Mindstorms Robots in a Scratch-like environment. I am close now to being able to take a stack of Scratch blocks and export them as real Java code, which could, in turn, be compiled with LeJOS and uploaded to a Mindstorms NXT robot running custom firmware. Cheers, Clinton Blackmore _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
missed if this info/video was mentioned before, but i found it interesting: http://www.infoq.com/interviews/johnson-armstrong-oop k _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
In reply to this post by Clinton Blackmore
On 11/08/10 10:05, Clinton Blackmore wrote:
> > > On Tue, Aug 10, 2010 at 12:34 AM, Serge Stinckwich > <[hidden email] <mailto:[hidden email]>> wrote: > > On 22/06/10 09:59, Clinton Blackmore wrote: > > Greetings again. > > I'm hacking on Scratch, which is based on MIT Squeak, which is > based on > Squeak 2.8. I want to collaborate with others on a project. > > Monticello appears to require Squeak 3.1 or later. Is there a > way for > me to upgrade an image? > > If not, is there a sensible way to use a revision control system? > > It appears to me that: > > 1) collaborators could each create change sets, and e-mail them > to each > other, for every one to file in (which sounds like it would be > confusing; surely I am not understanding something) > > or > > 2) every class in the code could be filed out into a directory, > standard > version control systems could be used, and then every class could be > filed back in (which likewise seems daunting). > > > What sort of workflows would you recommend? > > > > Another idea (not the easiest) is to port Scratch to a Squeak 4.1 or > Pharo 1.1. I have already put all the code in a metacello repository. > > Regards, > > -- > Serge Stinckwich > UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam > Every DSL ends up being Smalltalk > http://doesnotunderstand.org/ > > > I had contemplated porting the code, but was not up to the task. In > these last couple of months of slowly working on my project, I've gone > from saying, "What the heck is this thing (referring to Squeak)?" to > saying "How did I ever live without live debugging and an environment > like this? This is awesome!" And that's with a Squeak that is ten > years old. > > This is the first I've heard of Metacello, and it wouldn't hurt me to > re-read the Monticello section in Squeak By Example. I've installed > Metacello and started on the tutorial. How do I access your repository > for Scratch? Does it run at all for you? > At the moment, i just put the classes in a MC repository here: http://www.squeaksource.com/Noise.html If you have a SqueakSource account, i could add you as a developer. Maybe there is some code missing, i didn't check everything. You should be able to load this package in a fresh Squeak 4.1 image (just reload it twice because there is some initialization problem that need to be fixed ...) Beware, nothing is working ;-) and there is no tests at all ... > > Incidentally, Serge, seeing as you are interesting in robotics, I > thought it'd be worth mentioning that an important aim of my project is > to allow children to program their LEGO Mindstorms Robots in a > Scratch-like environment. I am close now to being able to take a stack > of Scratch blocks and export them as real Java code, which could, in > turn, be compiled with LeJOS and uploaded to a Mindstorms NXT robot > running custom firmware. Looks interesting, do you have more information about that ? Regards, -- Serge Stinckwich UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam Every DSL ends up being Smalltalk http://doesnotunderstand.org/ _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
At the moment, i just put the classes in a MC repository here [for a nascent port of Scratch to current Smalltalks]: My SqueakSource account is "Clinton Blackmore" / "CWB".
I've finished enough code to have something to show. Please take a look at:
Cheers, Clinton _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
On 15/08/10 12:53, Clinton Blackmore wrote:
> > At the moment, i just put the classes in a MC repository here [for a > nascent port of Scratch to current Smalltalks]: > http://www.squeaksource.com/Noise.html > > If you have a SqueakSource account, i could add you as a developer. > Maybe there is some code missing, i didn't check everything. > You should be able to load this package in a fresh Squeak 4.1 image > (just reload it twice because there is some initialization problem > that need to be fixed ...) > > Beware, nothing is working ;-) and there is no tests at all ... > > > My SqueakSource account is "Clinton Blackmore" / "CWB". Ok, i add you. Regards, -- Serge Stinckwich UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam Every DSL ends up being Smalltalk http://doesnotunderstand.org/ _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
Thank you.
Clinton
On Fri, Aug 20, 2010 at 12:41 AM, Serge Stinckwich <[hidden email]> wrote:
_______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
Free forum by Nabble | Edit this page |