Hello, everyone.
[This post is aimed at those making custom versions of Scratch, who find themselves writing code in Squeak. I originally posted this on the Panther Development thread, but Lightnin asked me to post it as a separate topic so it wouldn't get lost.]
I am very impressed that so many folks are creating their own versions of Scratch and exploring the underlying Squeak language.
Squeak was built by a bunch of people working together (I was one of them). When you are working as a team, it's better to not worry about who did what. Most good ideas are really collaborations; even if it seems like a brand new idea, the seeds for it probably came from earlier ideas by others. So my advice for working together is to focus on collecting the best ideas and making the greatest possible overall system, and don't waste time arguing about who contributed which bits. (Scratch itself is collaboration among dozens of people, and even those involved don't remember who contributed which ideas.)
But on to practical matters...
As some of you know, Squeak automatically records all the changes you make to methods and classes and has tools for managing and sharing such "change sets". Here are some notes about this from the Squeak wiki:
http://wiki.squeak.org/squeak/674
If you are working with other people, either many others or just one, it helps to have one person take the job of "changes coordinator". The changes coordinator is responsible for collecting change sets from all the contributors, filing them into one Squeak image, resolving conflicting changes (i.e. when the same method is changed by several people), and creating a new version of the Squeak image that everyone else can start using and building on. The changes coordinator job is a lot of work and responsibility, but it's also very rewarding. You learn how every part of the system works, and you get to use your judgment when deciding what to include and how to resolve conflicts.
Incidentally, I emailed Alan Kay, who invented the Smalltalk language and created Squeak, to tell him about all the exciting work you have been doing with custom versions of Scratch. When Alan created Smalltalk and Squeak, he dreamed of people changing the system itself, just as you are doing.
Scratch on!
-- John
Offline
For some strange reason, Slash doesn't have a changeset. Is it hidden somewhere, or missing?
Offline
Billybob-Mario wrote:
For some strange reason, Slash doesn't have a changeset. Is it hidden somewhere, or missing?
Did you make your changeset?
When you're in editing code, go into the world menu, and open a new change sorter.
add a new category, like slash and right(?)click "Make changes go to me" and then that's that.
Offline
I am making a GUI encrypter-decrypter using Scratch.
For that I need these features very much -
1) a button/ program (like stamp) which can alter the sprite under it when it stamps
2) a way to find the no. of the Colour of a Given Pixel (FAST because I'll use it atleast 10 times in 1 project)
Please can anyone Knowing Squeak answer the questions I am asking. I would be very obliged if anyone answers it.
Thank You
Offline
For some reason, I am behind with this. I suddenly saw all these people making their own versions of Scratch and I still do not know how to program in Squeak. Does anyone know a good tutorial?
Offline
adriangl wrote:
For some reason, I am behind with this. I suddenly saw all these people making their own versions of Scratch and I still do not know how to program in Squeak. Does anyone know a good tutorial?
Google Squeak by example
Offline
What is the file extension for a changeset? I might have fixed it.
Offline
Also, how do you use them?
Offline
Changesets have the extension *.cs
You can file them out from one image using the change sorter tools and into another one using the file list tool within Squeak. If you've created a whole class or just a single method you can file out or file in those directly from the system browser, then their extension is *.st. You can also file in *.st files in the file list tool. Before or while filing them in you can inspect and browse them and see how they differ from the existing methods in your system.
The *.changes and *.sources files is where Squeak keeps versions of saved methods and where it looks up the names of variables and comments. They're part of the code "database", and are not the actual "source code" themselves.
Last edited by Jens (2010-06-10 08:55:04)
Offline
> Jens wrote:
> Changesets have the extension *.cs
You can file them out from one image using the change sorter tools and into another one using the file list tool within Squeak. If you've created a whole class or just a single method you can file out or file in those directly from the system browser, then their extension is *.st. You can also file in *.st files in the file list tool. Before or while filing them in you can inspect and browse them and see how they differ from the existing methods in your system.
The *.changes and *.sources files is where Squeak keeps versions of saved methods and where it looks up the names of variables and comments. They're part of the code "database", and are not the actual "source code" themselves.
Then I found it! How do you import them into things?
Offline
Billybob-Mario wrote:
> Jens wrote:
Then I found it! How do you import them into things?
you can import a changeset by opening a FileList in Squeak (WorldMenu - open), right clicking on the changeset and choosing "fileIn". You can also open a changeset in a WorkSpace, select the parts you want to file in and choose "fileIn".
Offline
I tried to import slash into BYOB (I used the Elements editor to make a fill screen off block) and I got all sorts of errors. Do you have any suggestions?
Offline
Subh wrote:
I need these features very much -
1) a button/ program (like stamp) which can alter the sprite under it when it stamps
2) a way to find the no. of the Colour of a Given Pixel (FAST because I'll use it atleast 10 times in 1 project)
I agree. We really could use a "Stamp on [Sprite1]" block. I wanted to make a scrolling graphing calculator, where the background is "scrollable" and where the pen draws on the background sprite.
Any suggestions as to how I can make this in Smalltalk?
Offline
hpotter134 wrote:
Subh wrote:
I need these features very much -
1) a button/ program (like stamp) which can alter the sprite under it when it stamps
2) a way to find the no. of the Colour of a Given Pixel (FAST because I'll use it atleast 10 times in 1 project)I agree. We really could use a "Stamp on [Sprite1]" block. I wanted to make a scrolling graphing calculator, where the background is "scrollable" and where the pen draws on the background sprite.
Any suggestions as to how I can make this in Smalltalk?
I thought of this before.
Lets say you have all the sprites listed. Before each block executes all the sprites clear and then stamp. Then you can make a block to do something, to draw ontop!
Offline
Can someone code a squeak block out of this please?:
What it is supposed to do is, if the variable if true set it to false, if it is false set it to true.
Thank you!
Last edited by xt449 (2011-08-19 21:20:55)
Offline
xt449 wrote:
Can someone code a squeak block out of this please?:
http://img825.imageshack.us/img825/3505 … hvalue.gif
What it is supposed to do is, if the variable if true set it to false, if it is false set it to true.
Thank you!
switchVariableState: variable variable = true ifTrue: [ variable _ false]. ifFalse: [ variable _ true].
If it's false, it sets it to true. If it's true, it sets it to false.
Offline