[Pharo-project] [ANN] Phratch: Scratch on Pharo2.0
Hi Pharoers, I am porting Scratch and BYOB on Pharo 2.0. The name of the project is Phratch. To begin, I took Scat (a port of Scratch on Pharo1.3) and modify it to make it work on Pharo 2.0. For that I integrated FileSystem. Then, I took BYOB and port it in the project. I have some bugs, but the main features are working. The main issue is that it is slow. I will investigate that too. The goal for me is to use it for teaching software engineering and robotics. I hope to use Phratch and Pharo 2.0 to create new features. The project is on SmalltalkHub, and a google code page is available, mainly for reporting issues: https://code.google.com/p/phratch/ To download Phratch, just run this code: Gofer it url: 'http://smalltalkhub.com/mc/JLaval/Phratch/main'; package: 'ConfigurationOfPhratch'; load. (Smalltalk at: #ConfigurationOfPhratch) loadBleedingEdge. Cheers, Jannik
Hi Jannik, nice work ! When we start Scat, we have the same idea of using it for robotics and integrate alternate version of Scratch. But why fork the Scat effort with another Google project ? Regards, On Sun, Mar 24, 2013 at 8:56 PM, jannik.laval <jannik.laval@gmail.com> wrote:
Hi Pharoers,
I am porting Scratch and BYOB on Pharo 2.0. The name of the project is Phratch. To begin, I took Scat (a port of Scratch on Pharo1.3) and modify it to make it work on Pharo 2.0. For that I integrated FileSystem. Then, I took BYOB and port it in the project.
I have some bugs, but the main features are working. The main issue is that it is slow. I will investigate that too.
The goal for me is to use it for teaching software engineering and robotics. I hope to use Phratch and Pharo 2.0 to create new features.
The project is on SmalltalkHub, and a google code page is available, mainly for reporting issues: https://code.google.com/p/phratch/
To download Phratch, just run this code:
Gofer it url: 'http://smalltalkhub.com/mc/JLaval/Phratch/main'; package: 'ConfigurationOfPhratch'; load. (Smalltalk at: #ConfigurationOfPhratch) loadBleedingEdge.
Cheers, Jannik
-- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://doesnotunderstand.org/
BTW, Scat SmalltalkHub repository is here: http://smalltalkhub.com/#!/~bromagosa/Scat Regards, On Sun, Mar 24, 2013 at 9:06 PM, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
Hi Jannik,
nice work ! When we start Scat, we have the same idea of using it for robotics and integrate alternate version of Scratch.
But why fork the Scat effort with another Google project ?
Regards,
On Sun, Mar 24, 2013 at 8:56 PM, jannik.laval <jannik.laval@gmail.com> wrote:
Hi Pharoers,
I am porting Scratch and BYOB on Pharo 2.0. The name of the project is Phratch. To begin, I took Scat (a port of Scratch on Pharo1.3) and modify it to make it work on Pharo 2.0. For that I integrated FileSystem. Then, I took BYOB and port it in the project.
I have some bugs, but the main features are working. The main issue is that it is slow. I will investigate that too.
The goal for me is to use it for teaching software engineering and robotics. I hope to use Phratch and Pharo 2.0 to create new features.
The project is on SmalltalkHub, and a google code page is available, mainly for reporting issues: https://code.google.com/p/phratch/
To download Phratch, just run this code:
Gofer it url: 'http://smalltalkhub.com/mc/JLaval/Phratch/main'; package: 'ConfigurationOfPhratch'; load. (Smalltalk at: #ConfigurationOfPhratch) loadBleedingEdge.
Cheers, Jannik
-- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://doesnotunderstand.org/
-- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://doesnotunderstand.org/
Interesting ! I will see that. Who is active on this project ? Should it work on Pharo2.0 ? I am interesting if we can merge efforts. Cheers, Jannik On Mar 24, 2013, at 9:09 PM, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
BTW, Scat SmalltalkHub repository is here:
http://smalltalkhub.com/#!/~bromagosa/Scat
Regards,
On Sun, Mar 24, 2013 at 9:06 PM, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
Hi Jannik,
nice work ! When we start Scat, we have the same idea of using it for robotics and integrate alternate version of Scratch.
But why fork the Scat effort with another Google project ?
Regards,
On Sun, Mar 24, 2013 at 8:56 PM, jannik.laval <jannik.laval@gmail.com> wrote:
Hi Pharoers,
I am porting Scratch and BYOB on Pharo 2.0. The name of the project is Phratch. To begin, I took Scat (a port of Scratch on Pharo1.3) and modify it to make it work on Pharo 2.0. For that I integrated FileSystem. Then, I took BYOB and port it in the project.
I have some bugs, but the main features are working. The main issue is that it is slow. I will investigate that too.
The goal for me is to use it for teaching software engineering and robotics. I hope to use Phratch and Pharo 2.0 to create new features.
The project is on SmalltalkHub, and a google code page is available, mainly for reporting issues: https://code.google.com/p/phratch/
To download Phratch, just run this code:
Gofer it url: 'http://smalltalkhub.com/mc/JLaval/Phratch/main'; package: 'ConfigurationOfPhratch'; load. (Smalltalk at: #ConfigurationOfPhratch) loadBleedingEdge.
Cheers, Jannik
-- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://doesnotunderstand.org/
-- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://doesnotunderstand.org/
On Sun, Mar 24, 2013 at 9:15 PM, jannik.laval <jannik.laval@gmail.com> wrote:
Interesting ! I will see that.
Who is active on this project ? Should it work on Pharo2.0 ?
No I don't think so. Recently someone start to work on a port to Pharo 1.4, but you are the first to start to work on Pharo 2.0.
I am interesting if we can merge efforts.
I guess your work will give a new boost ;-) Regards, -- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://doesnotunderstand.org/
Hi Jannik and Bernat I was wondering if it is necessary to keep the CCodeGenerator and Primitives-Plugins inside the system. In addition may be this code is really outdated so may be packaging it in a separate package for archival would make sense. I'm surprised that so many classes do not have class comments :). BTW pay attention that - PhratchPreferences has the same disease that the old Preferences class (RIP). - SensorBoardMorph open in the class comment -> DNU - (PaintCanvas new brushCursorSize: 21 color: Color yellow) display -> DNU In fact this code is quite scaryâ¦. :) Jannik what is the different between byob and Scratch. Stef
On Mar 24, 2013, at 9:34 PM, stephane ducasse <stephane.ducasse@free.fr> wrote:
Hi Jannik and Bernat
I was wondering if it is necessary to keep the CCodeGenerator and Primitives-Plugins inside the system. In addition may be this code is really outdated so may be packaging it in a separate package for archival would make sense.
I'm surprised that so many classes do not have class comments :). BTW pay attention that - PhratchPreferences has the same disease that the old Preferences class (RIP).
Yes, I just did it expecting remove it soon.
- SensorBoardMorph open in the class comment -> DNU
- (PaintCanvas new brushCursorSize: 21 color: Color yellow) display -> DNU In fact this code is quite scaryâ¦. :)
Thanks for the report
Jannik what is the different between byob and Scratch.
byob allows one to build its own block (http://byob.berkeley.edu/#download) Go to Variable categorie: there is a "new block" button. It does not work for now: It works only on my machine, I have to commit the code. Jannik
Stef
Hi Serge, On Mar 24, 2013, at 9:06 PM, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
Hi Jannik,
nice work ! When we start Scat, we have the same idea of using it for robotics and integrate alternate version of Scratch.
Thank you
But why fork the Scat effort with another Google project ?
We could merge them. Just I saw that there is no update on the Scat Google code since 2011, so I create one. Then, about the files to download, there are some changes inside the skin folder to integrate BYOB. Cheers, Jannik
Regards,
On Sun, Mar 24, 2013 at 8:56 PM, jannik.laval <jannik.laval@gmail.com> wrote:
Hi Pharoers,
I am porting Scratch and BYOB on Pharo 2.0. The name of the project is Phratch. To begin, I took Scat (a port of Scratch on Pharo1.3) and modify it to make it work on Pharo 2.0. For that I integrated FileSystem. Then, I took BYOB and port it in the project.
I have some bugs, but the main features are working. The main issue is that it is slow. I will investigate that too.
The goal for me is to use it for teaching software engineering and robotics. I hope to use Phratch and Pharo 2.0 to create new features.
The project is on SmalltalkHub, and a google code page is available, mainly for reporting issues: https://code.google.com/p/phratch/
To download Phratch, just run this code:
Gofer it url: 'http://smalltalkhub.com/mc/JLaval/Phratch/main'; package: 'ConfigurationOfPhratch'; load. (Smalltalk at: #ConfigurationOfPhratch) loadBleedingEdge.
Cheers, Jannik
-- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://doesnotunderstand.org/
On Sun, Mar 24, 2013 at 9:10 PM, jannik.laval <jannik.laval@gmail.com> wrote:
Hi Serge,
On Mar 24, 2013, at 9:06 PM, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
Hi Jannik,
nice work ! When we start Scat, we have the same idea of using it for robotics and integrate alternate version of Scratch.
Thank you
But why fork the Scat effort with another Google project ?
We could merge them.
Yes I think so.
Just I saw that there is no update on the Scat Google code since 2011, so I create one. Then, about the files to download, there are some changes inside the skin folder to integrate BYOB.
Yes we were not really active recently. Bernat Romagosa was the most productive guy until now. Maybe you can join the scat mailing list in order to talk about how to join our efforts: https://groups.google.com/forum/?fromgroups#!forum/scat-project There is some japanese people on the mailing-list, that might be interested by your work on BYOB. I was also interested by using Scat/Phrash with arduino. Regards, -- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://doesnotunderstand.org/
On Mar 24, 2013, at 8:56 PM, jannik.laval <jannik.laval@gmail.com> wrote:
Hi Pharoers,
I am porting Scratch and BYOB on Pharo 2.0. The name of the project is Phratch. To begin, I took Scat (a port of Scratch on Pharo1.3) and modify it to make it work on Pharo 2.0. For that I integrated FileSystem. Then, I took BYOB and port it in the project.
Excellent!
I have some bugs, but the main features are working. The main issue is that it is slow. I will investigate that too.
The goal for me is to use it for teaching software engineering and robotics. I hope to use Phratch and Pharo 2.0 to create new features.
The project is on SmalltalkHub, and a google code page is available, mainly for reporting issues: https://code.google.com/p/phratch/
To download Phratch, just run this code:
Gofer it url: 'http://smalltalkhub.com/mc/JLaval/Phratch/main'; package: 'ConfigurationOfPhratch'; load. (Smalltalk at: #ConfigurationOfPhratch) loadBleedingEdge.
I loaded it using the pharo20 one click. But it does not work. Apparently got blocked in WeakSet something. Loading NScratchâ¦. I reloaded. And it seems ok. How do we open Scratch? Stef Esteban it got blocked in this method. initialize: aString "We fill RPackageSet with a collection of matching RPackage. Since this is accessed a lot of times, we optimized the code for speed on resolution, and now we have what you see. This code should be something like this: packageName := aString. packages := RPackageOrganizer default packages select: [ :each | each name = packageName or: [ each name beginsWith: packageName, '-' ] ] sadly, that's incredible slow, so, we changed. BEWARE: Don't change this code without paying attention to speed. " | size separatorIndex first | self initialize. packageName := aString asSymbol. size := packageName size. first := packageName at: 1. separatorIndex := size + 1. packages := RPackage organizer packages select: [ :each | | eachSize | eachSize := each name size. (size == eachSize and: [ packageName == each name ]) or: [ eachSize > size and: [ (((each name at: separatorIndex) == $-) and: [ (each name at: 1) == first ]) and: [ (each name beginsWith: packageName) ] ] ] ]
Hi Stef, On Mar 24, 2013, at 9:14 PM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
On Mar 24, 2013, at 8:56 PM, jannik.laval <jannik.laval@gmail.com> wrote:
Hi Pharoers,
I am porting Scratch and BYOB on Pharo 2.0. The name of the project is Phratch. To begin, I took Scat (a port of Scratch on Pharo1.3) and modify it to make it work on Pharo 2.0. For that I integrated FileSystem. Then, I took BYOB and port it in the project.
Excellent!
I have some bugs, but the main features are working. The main issue is that it is slow. I will investigate that too.
The goal for me is to use it for teaching software engineering and robotics. I hope to use Phratch and Pharo 2.0 to create new features.
The project is on SmalltalkHub, and a google code page is available, mainly for reporting issues: https://code.google.com/p/phratch/
To download Phratch, just run this code:
Gofer it url: 'http://smalltalkhub.com/mc/JLaval/Phratch/main'; package: 'ConfigurationOfPhratch'; load. (Smalltalk at: #ConfigurationOfPhratch) loadBleedingEdge.
I loaded it using the pharo20 one click. But it does not work. Apparently got blocked in WeakSet something. Loading NScratchâ¦.
Strange, it works for me...
I reloaded. And it seems ok.
How do we open Scratch?
When the load is finished, a workspace is opened with this line: ScratchFrameMorph open Cheers, Jannik
Stef
Esteban it got blocked in this method.
initialize: aString "We fill RPackageSet with a collection of matching RPackage. Since this is accessed a lot of times, we optimized the code for speed on resolution, and now we have what you see. This code should be something like this:
packageName := aString. packages := RPackageOrganizer default packages select: [ :each | each name = packageName or: [ each name beginsWith: packageName, '-' ] ]
sadly, that's incredible slow, so, we changed. BEWARE: Don't change this code without paying attention to speed. " | size separatorIndex first |
self initialize.
packageName := aString asSymbol. size := packageName size. first := packageName at: 1. separatorIndex := size + 1. packages := RPackage organizer packages select: [ :each | | eachSize | eachSize := each name size. (size == eachSize and: [ packageName == each name ]) or: [ eachSize > size and: [ (((each name at: separatorIndex) == $-) and: [ (each name at: 1) == first ]) and: [ (each name beginsWith: packageName) ] ] ] ]
Strange, the repository should be downloaded at the installation. Jannik On Mar 24, 2013, at 9:35 PM, stephane ducasse <stephane.ducasse@free.fr> wrote:
ScratchFrameMorph open
It does not work
Path / 'Users' / 'ducasse' / 'Workspace' / 'FirstCircle' / 'ActiveResearch' / 'Pharo' / 'PharoHarvestingFixes' / '20' / 'Released' / 'ScratchSkin'
not found.
Stef
Jannik, you should write to the Scat list. Joan and I kind of gave up about two years ago but there has been some new people (Irfan khan, Dave Mason, ...) contributing a bit to the project. These were our last news right before giving up: https://code.google.com/p/scat/wiki/PublicRelease By the way, the source code was also moved to stHub: http://smalltalkhub.com/#!/~bromagosa/Scat, I've just added you as a contributor. Cheers, Bernat. 2013/3/24 jannik.laval <jannik.laval@gmail.com>
Strange, the repository should be downloaded at the installation.
Jannik
On Mar 24, 2013, at 9:35 PM, stephane ducasse <stephane.ducasse@free.fr> wrote:
ScratchFrameMorph open
It does not work
Path / 'Users' / 'ducasse' / 'Workspace' / 'FirstCircle' / 'ActiveResearch' / 'Pharo' / 'PharoHarvestingFixes' / '20' / 'Released' / 'ScratchSkin'
not found.
Stef
-- Bernat Romagosa.
Hi, I just merge your last changes with Phratch source-code. I think you shoud try Phratch and see the bug tracker of Phratch, because I added some. What I did in Phratch, is that it does not break the Pharo image. There is no other modifications than in the package of Phratch. I saw that Scat modify Morphic and Graphics to add some instance variables, that I don't have in Phratch. I saw also your bug-tracker and I resolved some issues: PNG transparency, Camera images, and a part of GIF import. What is the Scat mailing list ? Like that I can communicate directly with the team. Cheers, Jannik 2013/3/25 Bernat Romagosa <tibabenfortlapalanca@gmail.com>
Jannik, you should write to the Scat list. Joan and I kind of gave up about two years ago but there has been some new people (Irfan khan, Dave Mason, ...) contributing a bit to the project. These were our last news right before giving up: https://code.google.com/p/scat/wiki/PublicRelease
By the way, the source code was also moved to stHub: http://smalltalkhub.com/#!/~bromagosa/Scat, I've just added you as a contributor.
Cheers,
Bernat.
2013/3/24 jannik.laval <jannik.laval@gmail.com>
Strange, the repository should be downloaded at the installation.
Jannik
On Mar 24, 2013, at 9:35 PM, stephane ducasse <stephane.ducasse@free.fr> wrote:
ScratchFrameMorph open
It does not work
Path / 'Users' / 'ducasse' / 'Workspace' / 'FirstCircle' / 'ActiveResearch' / 'Pharo' / 'PharoHarvestingFixes' / '20' / 'Released' / 'ScratchSkin'
not found.
Stef
-- Bernat Romagosa.
-- ~~Dr. Jannik Laval~~ Ãcole des Mines de Douai Enseignant-chercheur http://www.jannik-laval.eu
Hi Jannik, Great! Thanks for taking this project further on, maybe someday we'll finally have a working Scratch on Pharo... :) The mail list is scat-project@googlegroups.com. Cheers! Bernat. 2013/3/25 jannik laval <jannik.laval@gmail.com>
Hi,
I just merge your last changes with Phratch source-code. I think you shoud try Phratch and see the bug tracker of Phratch, because I added some.
What I did in Phratch, is that it does not break the Pharo image. There is no other modifications than in the package of Phratch. I saw that Scat modify Morphic and Graphics to add some instance variables, that I don't have in Phratch.
I saw also your bug-tracker and I resolved some issues: PNG transparency, Camera images, and a part of GIF import.
What is the Scat mailing list ? Like that I can communicate directly with the team.
Cheers, Jannik
2013/3/25 Bernat Romagosa <tibabenfortlapalanca@gmail.com>
Jannik, you should write to the Scat list. Joan and I kind of gave up about two years ago but there has been some new people (Irfan khan, Dave Mason, ...) contributing a bit to the project. These were our last news right before giving up: https://code.google.com/p/scat/wiki/PublicRelease
By the way, the source code was also moved to stHub: http://smalltalkhub.com/#!/~bromagosa/Scat, I've just added you as a contributor.
Cheers,
Bernat.
2013/3/24 jannik.laval <jannik.laval@gmail.com>
Strange, the repository should be downloaded at the installation.
Jannik
On Mar 24, 2013, at 9:35 PM, stephane ducasse <stephane.ducasse@free.fr> wrote:
ScratchFrameMorph open
It does not work
Path / 'Users' / 'ducasse' / 'Workspace' / 'FirstCircle' / 'ActiveResearch' / 'Pharo' / 'PharoHarvestingFixes' / '20' / 'Released' / 'ScratchSkin'
not found.
Stef
-- Bernat Romagosa.
--
~~Dr. Jannik Laval~~ Ãcole des Mines de Douai Enseignant-chercheur http://www.jannik-laval.eu
-- Bernat Romagosa.
On 24 March 2013 19:56, jannik.laval <jannik.laval@gmail.com> wrote:
Hi Pharoers,
I am porting Scratch and BYOB on Pharo 2.0. The name of the project is Phratch. To begin, I took Scat (a port of Scratch on Pharo1.3) and modify it to make it work on Pharo 2.0. For that I integrated FileSystem. Then, I took BYOB and port it in the project.
I have some bugs, but the main features are working. The main issue is that it is slow. I will investigate that too.
The goal for me is to use it for teaching software engineering and robotics. I hope to use Phratch and Pharo 2.0 to create new features.
The project is on SmalltalkHub, and a google code page is available, mainly for reporting issues: https://code.google.com/p/phratch/
To download Phratch, just run this code:
Gofer it url: 'http://smalltalkhub.com/mc/JLaval/Phratch/main'; package: 'ConfigurationOfPhratch'; load. (Smalltalk at: #ConfigurationOfPhratch) loadBleedingEdge.
Cheers, Jannik
Cool! Tim Rowledge is hackin on Scratch directly, with the aim of improving its code, particularly performance wise. You might want to drop him an email and see if you can make use of his efforts. frank
participants (7)
-
Bernat Romagosa -
Frank Shearar -
jannik laval -
jannik.laval -
Serge Stinckwich -
stephane ducasse -
Stéphane Ducasse