Collaboration with Squeak 2.8

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

Collaboration with Squeak 2.8

Clinton Blackmore
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
Reply | Threaded
Open this post in threaded view
|

Re: Collaboration with Squeak 2.8

Andreas.Raab
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
Reply | Threaded
Open this post in threaded view
|

Re: Collaboration with Squeak 2.8

Ralph Johnson
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
Reply | Threaded
Open this post in threaded view
|

Re: Collaboration with Squeak 2.8

SergeStinckwich
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
Reply | Threaded
Open this post in threaded view
|

Re: Collaboration with Squeak 2.8

Clinton Blackmore


On Tue, Aug 10, 2010 at 12:34 AM, Serge Stinckwich <[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?


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
Reply | Threaded
Open this post in threaded view
|

Ralph Johnson, Joe Armstrong on the State of OOP

Squeak List
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
Reply | Threaded
Open this post in threaded view
|

Re: Collaboration with Squeak 2.8

SergeStinckwich
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
Reply | Threaded
Open this post in threaded view
|

Re: Collaboration with Squeak 2.8

Clinton Blackmore

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".
 


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 ?


I've finished enough code to have something to show.  Please take a look at:

 

Regards,

--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/


Cheers,
Clinton 

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Collaboration with Squeak 2.8

SergeStinckwich
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
Reply | Threaded
Open this post in threaded view
|

Re: Collaboration with Squeak 2.8

Clinton Blackmore
Thank you.

Clinton

On Fri, Aug 20, 2010 at 12:41 AM, Serge Stinckwich <[hidden email]> wrote:
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


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners