[Pharo-project] Smalltalk interactive tutorial in good English
Hi I've written a sort of interactive tutorial based on (old) Stephane's screencasts about Smalltalk syntax. It's called PrStef ;). To load it: Gofer new squeaksource: 'PrStef'; package: 'PrStef'; load. and to run it: PrStef go. I'm looking for English-speaking people to check that the texts are written in a correct English before I make a screencast on it. Thank you ! Cheers, Laurent
Hi Laurent! This is really cool. I am preparing welcome workspaces for the next dev image. I already wrote the one which is here: http://code.google.com/p/pharo/wiki/GettingStartedWorkspaces which I converted in a workspace. I used ShoutWorkspace for that because you have colors and is nicer :) If you want to see what I did, download the package ImageForDevelopers-pharo-MarianoMartinezPeck.212 from http://www.squeaksource.com/ImageForDevelopers See the class methods of DEVImageWorkspaces class I will add this tutorial also to the getting started part. What do you think ? Cheers Mariano 2010/1/15 laurent laffont <laurent.laffont@gmail.com>
Hi
I've written a sort of interactive tutorial based on (old) Stephane's screencasts about Smalltalk syntax.
It's called PrStef ;). To load it:
Gofer new squeaksource: 'PrStef'; package: 'PrStef'; load.
and to run it: PrStef go.
I'm looking for English-speaking people to check that the texts are written in a correct English before I make a screencast on it. Thank you !
Cheers,
Laurent
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
which I converted in a workspace. I used ShoutWorkspace for that because you have colors and is nicer :)
Totally stupid question: how can I change the text inside a ShoutWorkspace once it's opened ?
If you want to see what I did, download the package ImageForDevelopers-pharo-MarianoMartinezPeck.212 from http://www.squeaksource.com/ImageForDevelopers
See the class methods of DEVImageWorkspaces class
I will add this tutorial also to the getting started part. What do you think ?
If you want :) Laurent
Cheers
Mariano
2010/1/15 laurent laffont <laurent.laffont@gmail.com>
Hi
I've written a sort of interactive tutorial based on (old) Stephane's screencasts about Smalltalk syntax.
It's called PrStef ;). To load it:
Gofer new squeaksource: 'PrStef'; package: 'PrStef'; load.
and to run it: PrStef go.
I'm looking for English-speaking people to check that the texts are written in a correct English before I make a screencast on it. Thank you !
Cheers,
Laurent
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
2010/1/15 laurent laffont <laurent.laffont@gmail.com>
which I converted in a workspace. I used ShoutWorkspace for that because you have colors and is nicer :)
Totally stupid question: how can I change the text inside a ShoutWorkspace once it's opened ?
Maybe my answer is more stupid than your question ;) I think I don't understand. If you change an opened Workspace, you are just changed that object. It is not persisted any more. In the example I gave you (DEVImageWorkspaces openWelcomeWorkspace for example) when I write the text, I write it inside the method in the class browser. I happens to me a lot of times that I start to modify it in the opened workspace instead of the code...so then I need to copy paste :) Cheers Mariano
If you want to see what I did, download the package
ImageForDevelopers-pharo-MarianoMartinezPeck.212 from http://www.squeaksource.com/ImageForDevelopers
See the class methods of DEVImageWorkspaces class
I will add this tutorial also to the getting started part. What do you think ?
If you want :)
Laurent
Cheers
Mariano
2010/1/15 laurent laffont <laurent.laffont@gmail.com>
Hi
I've written a sort of interactive tutorial based on (old) Stephane's screencasts about Smalltalk syntax.
It's called PrStef ;). To load it:
Gofer new squeaksource: 'PrStef'; package: 'PrStef'; load.
and to run it: PrStef go.
I'm looking for English-speaking people to check that the texts are written in a correct English before I make a screencast on it. Thank you !
Cheers,
Laurent
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
2010/1/15 Mariano Martinez Peck <marianopeck@gmail.com>
2010/1/15 laurent laffont <laurent.laffont@gmail.com>
which I converted in a workspace. I used ShoutWorkspace for that because you have colors and is nicer :)
Totally stupid question: how can I change the text inside a ShoutWorkspace once it's opened ?
Maybe my answer is more stupid than your question ;)
I think I don't understand.
To display each lesson I use PluggableTextMorph#setText: (You can take a look at LessonView#open and LessonView#showLesson) I haven't found a such method in Workspace. On squeaksource I have committed a version which use PluggableShoutMorph, so now I have syntax highlighting. Cheers, Laurent
laurent laffont wrote:
2010/1/15 Mariano Martinez Peck <marianopeck@gmail.com>
2010/1/15 laurent laffont <laurent.laffont@gmail.com>
which I converted in a workspace. I used ShoutWorkspace for that because you have colors and is nicer :)
Totally stupid question: how can I change the text inside a ShoutWorkspace once it's opened ?
Maybe my answer is more stupid than your question ;)
I think I don't understand.
To display each lesson I use PluggableTextMorph#setText:
(You can take a look at LessonView#open and LessonView#showLesson)
I haven't found a such method in Workspace.
On squeaksource I have committed a version which use PluggableShoutMorph, so now I have syntax highlighting.
Cheers,
Laurent
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Did you mean something like (Workspace new contents: ('red text' asText addAttribute: (TextColor color: Color green)); embeddedInMorphicWindowLabeled: 'Welcome to Pharo') position: 100@100 ; width: 200; height: 500; openInWorld ...? Stan -- View this message in context: http://n2.nabble.com/Smalltalk-interactive-tutorial-in-good-English-tp439933... Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
I love it! especially the PrStef previous :) and the expression with the PrStef next inside It was a great idea.
Gofer new squeaksource: 'PrStef'; package: 'PrStef'; load.
On Jan 15, 2010, at 4:29 PM, laurent laffont wrote:
Hi
I've written a sort of interactive tutorial based on (old) Stephane's screencasts about Smalltalk syntax.
It's called PrStef ;). To load it:
Gofer new squeaksource: 'PrStef'; package: 'PrStef'; load.
and to run it: PrStef go.
I'm looking for English-speaking people to check that the texts are written in a correct English before I make a screencast on it. Thank you !
Cheers,
Laurent _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
hey this is really neat! I can offer you some corrections or perhaps suggestions for better phrasing. just my native 2p if it helps. As a general comment, i know it would be more work, if you could get some emphasis e.g bold, italics it would really make the expressions and names of classes or methods stand out. ---Welcome--- I suppose you have called me to learn Smalltalk. --> You must want me to help you learn Smalltalk! ---Doing vs printing--- You've just executed a Smalltalk instruction --> You've just executed a Smalltalk expression ---Doing vs printing 2--- It's a Do It which print the result --> It's a Do It which prints the result ---basic types numbers--- you know how to execute Smalltalk code --> you now know how to execute Smalltalk code ---basic types characters--- A Character can be instanciated --> A Character can be instantiated --basic types string--- Use single quotes to create a String instance --> Use single quotes to create a String. ---basic types dynamic array--- Dynamic Array are created at execution time: --> Dynamic Arrays are created at execution time: ---unary messages--- Unary messages have the following form: anObject aMethod name --> anObject aMethodName --keyword messages-- The message is between:and: sent to Number object --> The message is between:and: sent to the Number 4 ---message syntax: execution order--- Between similar messages, expressions are executed from left to right --> Between messages of similar precedence, expressions are executed from left to right ---parentheses--- Use parentheses to change order --> Use parentheses to change order of evaluation ---mathematical precedence--- A message does not know mathematical precedence. Simplicity has a price :) --> (rephrase ?) Traditional precedence rules from mathematics do not follow in Smalltalk. The simplicity has a price ;) It might surprise you that precedence rules you know from mathematics do not apply here. This has a price as you can see... ---conditionals--- Conditionals are just message sent to Boolean objects --> Conditionals are just messages sent to Boolean objects ---loops--- Loops are messages send to collections, high-level iterators --> Loops are messages sent to collections, high-level iterators ---iterators--- Here we want to print all the numbers of the Transcript (a console) --> Here we want to print all the numbers on the Transcript (a console) ---() vs []--- --> I know what you are trying to articulate here, but this page doesn't really work since your 'annotation' is not syntactic and therefore your learning style breaks. pehaps have a think about this slide cheers Mike
Michael: I will put some welcome workspaces in the next PharoDev. I also have the same problem with the English. I would also like to put italics and bold, but I have no idea how to do it. If you want to check what I wrote, would be really cool as I plan to do the next dev image during the weekend. If you are willing to do it: Gofer new squeaksource: 'ImageForDevelopers'; package: 'ImageForDevelopers-pharo'; load. And look for the class side methods of DEVImageWorkspaces !!! Thanks for any feedback. Mariano On Fri, Jan 15, 2010 at 10:18 PM, Michael Roberts <mike@mjr104.co.uk> wrote:
hey this is really neat!
I can offer you some corrections or perhaps suggestions for better phrasing. just my native 2p if it helps.
As a general comment, i know it would be more work, if you could get some emphasis e.g bold, italics it would really make the expressions and names of classes or methods stand out.
---Welcome--- I suppose you have called me to learn Smalltalk. --> You must want me to help you learn Smalltalk!
---Doing vs printing--- You've just executed a Smalltalk instruction --> You've just executed a Smalltalk expression
---Doing vs printing 2--- It's a Do It which print the result --> It's a Do It which prints the result
---basic types numbers--- you know how to execute Smalltalk code --> you now know how to execute Smalltalk code
---basic types characters--- A Character can be instanciated --> A Character can be instantiated
--basic types string--- Use single quotes to create a String instance --> Use single quotes to create a String.
---basic types dynamic array--- Dynamic Array are created at execution time: --> Dynamic Arrays are created at execution time:
---unary messages--- Unary messages have the following form: anObject aMethod name --> anObject aMethodName
--keyword messages-- The message is between:and: sent to Number object --> The message is between:and: sent to the Number 4
---message syntax: execution order--- Between similar messages, expressions are executed from left to right --> Between messages of similar precedence, expressions are executed from left to right
---parentheses--- Use parentheses to change order --> Use parentheses to change order of evaluation
---mathematical precedence--- A message does not know mathematical precedence. Simplicity has a price :) --> (rephrase ?) Traditional precedence rules from mathematics do not follow in Smalltalk. The simplicity has a price ;) It might surprise you that precedence rules you know from mathematics do not apply here. This has a price as you can see...
---conditionals--- Conditionals are just message sent to Boolean objects --> Conditionals are just messages sent to Boolean objects
---loops--- Loops are messages send to collections, high-level iterators --> Loops are messages sent to collections, high-level iterators
---iterators--- Here we want to print all the numbers of the Transcript (a console) --> Here we want to print all the numbers on the Transcript (a console)
---() vs []--- --> I know what you are trying to articulate here, but this page doesn't really work since your 'annotation' is not syntactic and therefore your learning style breaks. pehaps have a think about this slide
cheers Mike
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
np, i will have a look this weekend. I don't know exactly how to create emphasis, but Text and TextStream look likely. Look at class references and you will get some examples. Also senders of asText (152!), and surrounding protocol. I don't know how you integrate these into the workspace though. I'm sure there is an example somewhere. cheers, Mike 2010/1/15 Mariano Martinez Peck <marianopeck@gmail.com>:
Michael: I will put some welcome workspaces in the next PharoDev. I also have the same problem with the English. I would also like to put italics and bold, but I have no idea how to do it.
If you want to check what I wrote, would be really cool as I plan to do the next dev image during the weekend.
If you are willing to do it:
Gofer new    squeaksource: 'ImageForDevelopers';    package: 'ImageForDevelopers-pharo';    load.
And look for the class side methods of DEVImageWorkspaces !!!
Thanks for any feedback.
Mariano
On Fri, Jan 15, 2010 at 10:18 PM, Michael Roberts <mike@mjr104.co.uk> wrote:
hey this is really neat!
I can offer you some corrections or perhaps suggestions for better phrasing. Â just my native 2p if it helps.
As a general comment, i know it would be more work, if you could get some emphasis e.g bold, italics it would really make the expressions and names of classes or methods stand out.
---Welcome--- I suppose you have called me to learn Smalltalk. --> You must want me to help you learn Smalltalk!
---Doing vs printing--- You've just executed a Smalltalk instruction --> You've just executed a Smalltalk expression
---Doing vs printing 2--- It's a Do It which print the result --> It's a Do It which prints the result
---basic types numbers--- you know how to execute Smalltalk code --> you now know how to execute Smalltalk code
---basic types characters--- A Character can be instanciated --> A Character can be instantiated
--basic types string--- Use single quotes to create a String instance --> Use single quotes to create a String.
---basic types dynamic array--- Dynamic Array are created at execution time: --> Dynamic Arrays are created at execution time:
---unary messages--- Unary messages have the following form: Â Â anObject aMethod name --> anObject aMethodName
--keyword messages-- The message is between:and: sent to Number object --> The message is between:and: sent to the Number 4
---message syntax: execution order--- Between similar messages, expressions are executed from left to right --> Between messages of similar precedence, expressions are executed from left to right
---parentheses--- Use parentheses to change order --> Use parentheses to change order of evaluation
---mathematical precedence--- A message does not know mathematical precedence. Simplicity has a price :) --> (rephrase ?) Traditional precedence rules from mathematics do not follow in Smalltalk. Â The simplicity has a price ;) It might surprise you that precedence rules you know from mathematics do not apply here. Â This has a price as you can see...
---conditionals--- Conditionals are just message sent to Boolean objects --> Conditionals are just messages sent to Boolean objects
---loops--- Loops are messages send to collections, high-level iterators --> Loops are messages sent to collections, high-level iterators
---iterators--- Here we want to print all the numbers of the Transcript (a console) --> Here we want to print all the numbers on the Transcript (a console)
---() vs []--- --> I know what you are trying to articulate here, but this page doesn't really work since your 'annotation' is not syntactic and therefore your learning style breaks. pehaps have a think about this slide
cheers Mike
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Thank you ! Laurent On Fri, Jan 15, 2010 at 10:18 PM, Michael Roberts <mike@mjr104.co.uk> wrote:
hey this is really neat!
I can offer you some corrections or perhaps suggestions for better phrasing. just my native 2p if it helps.
As a general comment, i know it would be more work, if you could get some emphasis e.g bold, italics it would really make the expressions and names of classes or methods stand out.
---Welcome--- I suppose you have called me to learn Smalltalk. --> You must want me to help you learn Smalltalk!
---Doing vs printing--- You've just executed a Smalltalk instruction --> You've just executed a Smalltalk expression
---Doing vs printing 2--- It's a Do It which print the result --> It's a Do It which prints the result
---basic types numbers--- you know how to execute Smalltalk code --> you now know how to execute Smalltalk code
---basic types characters--- A Character can be instanciated --> A Character can be instantiated
--basic types string--- Use single quotes to create a String instance --> Use single quotes to create a String.
---basic types dynamic array--- Dynamic Array are created at execution time: --> Dynamic Arrays are created at execution time:
---unary messages--- Unary messages have the following form: anObject aMethod name --> anObject aMethodName
--keyword messages-- The message is between:and: sent to Number object --> The message is between:and: sent to the Number 4
---message syntax: execution order--- Between similar messages, expressions are executed from left to right --> Between messages of similar precedence, expressions are executed from left to right
---parentheses--- Use parentheses to change order --> Use parentheses to change order of evaluation
---mathematical precedence--- A message does not know mathematical precedence. Simplicity has a price :) --> (rephrase ?) Traditional precedence rules from mathematics do not follow in Smalltalk. The simplicity has a price ;) It might surprise you that precedence rules you know from mathematics do not apply here. This has a price as you can see...
---conditionals--- Conditionals are just message sent to Boolean objects --> Conditionals are just messages sent to Boolean objects
---loops--- Loops are messages send to collections, high-level iterators --> Loops are messages sent to collections, high-level iterators
---iterators--- Here we want to print all the numbers of the Transcript (a console) --> Here we want to print all the numbers on the Transcript (a console)
---() vs []--- --> I know what you are trying to articulate here, but this page doesn't really work since your 'annotation' is not syntactic and therefore your learning style breaks. pehaps have a think about this slide
cheers Mike
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
2010/1/15 Michael Roberts <mike@mjr104.co.uk>:
hey this is really neat!
I can offer you some corrections or perhaps suggestions for better phrasing. Â just my native 2p if it helps.
As a general comment, i know it would be more work, if you could get some emphasis e.g bold, italics it would really make the expressions and names of classes or methods stand out.
---Welcome--- I suppose you have called me to learn Smalltalk. --> You must want me to help you learn Smalltalk!
---Doing vs printing--- You've just executed a Smalltalk instruction --> You've just executed a Smalltalk expression
Expressions usually get evaluated, code is running or get executed.
---Doing vs printing 2--- It's a Do It which print the result --> It's a Do It which prints the result
---basic types numbers--- you know how to execute Smalltalk code --> you now know how to execute Smalltalk code
---basic types characters--- A Character can be instanciated --> A Character can be instantiated
--basic types string--- Use single quotes to create a String instance --> Use single quotes to create a String.
the original is more precise , i think
---basic types dynamic array--- Dynamic Array are created at execution time: --> Dynamic Arrays are created at execution time:
---unary messages--- Unary messages have the following form: Â Â anObject aMethod name --> anObject aMethodName
--keyword messages-- The message is between:and: sent to Number object --> The message is between:and: sent to the Number 4
---message syntax: execution order--- Between similar messages, expressions are executed from left to right --> Between messages of similar precedence, expressions are executed from left to right
---parentheses--- Use parentheses to change order --> Use parentheses to change order of evaluation
---mathematical precedence--- A message does not know mathematical precedence. Simplicity has a price :) --> (rephrase ?)
Traditional precedence rules from mathematics do not follow in Smalltalk. Â The simplicity has a price ;) It might surprise you that precedence rules you know from mathematics do not apply here. Â This has a price as you can see...
Complexity has a price: first you have to learn it in school, second you have to unlearn it to understand that all messages in smalltalk always follow a simple left-to-right precedence rule, without exceptions. ;)
---conditionals--- Conditionals are just message sent to Boolean objects --> Conditionals are just messages sent to Boolean objects
---loops--- Loops are messages send to collections, high-level iterators --> Loops are messages sent to collections, high-level iterators
this sounds wrong to me. Loops not necessary work deal collections. By maybe in mentioned in context with collections?
---iterators--- Here we want to print all the numbers of the Transcript (a console) --> Here we want to print all the numbers on the Transcript (a console)
---() vs []--- --> I know what you are trying to articulate here, but this page doesn't really work since your 'annotation' is not syntactic and therefore your learning style breaks. pehaps have a think about this slide
cheers Mike
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
participants (6)
-
Igor Stasenko -
laurent laffont -
Mariano Martinez Peck -
Michael Roberts -
Stan Shepherd -
Stéphane Ducasse