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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 <[hidden email]> Hi _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Totally stupid question: how can I change the text inside a ShoutWorkspace once it's opened ?
If you want :) Laurent
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by laurent laffont
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 > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by laurent laffont
2010/1/15 laurent laffont <[hidden email]>
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
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by laurent laffont
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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 <[hidden email]> wrote: hey this is really neat! _______________________________________________ Pharo-project mailing list [hidden email] 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 <[hidden email]>: > 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 <[hidden email]> 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 >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Mariano Martinez Peck
2010/1/15 Mariano Martinez Peck <[hidden email]>
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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Michael Roberts-2
Thank you !
Laurent On Fri, Jan 15, 2010 at 10:18 PM, Michael Roberts <[hidden email]> wrote: hey this is really neat! _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by laurent laffont
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 |
In reply to this post by Michael Roberts-2
2010/1/15 Michael Roberts <[hidden email]>:
> 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... > 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 > 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 > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |