Re: [Pharo-project] Fun with ProfStef
Danny, I like what I see...As the number of tutorials goes up there might be the need for more nesting levels (Library-->Books-->Chapters->>Lessons?) and a search feature ... just thinking out loud. In putting together a couple of ProfStef tutorials last weekend, I found that I'd like to be able to #goto a lesson (out of sequence), essentially hitting a branch point where the student can skip a set of lessons or move to a different set of lessons. My thought was something like: ProfStef goto: #lesson15 "jump to lesson15" ProfStef push: AnotherTutorial "start AnotherTutorial in-place" ProfStef pop "exit AnotherTutorial and return push point" ProfStef push: AnotherTutorial to: #lesson15 "start AnotherTutorial at lesson15" Since goto doesn't exist yet, I ended up doing a #goOn to another tutorial when I hit a branch in the lesson, but that leads to an unnecessary explosion in the number of tutorials I had to create. Good work! Dale ----- "Danny Chan" <chan_dhf@yahoo.de> wrote: | Hi all! | I have pushed a version to Monticello that has a bit of a GUI with | nicer | navigation, see the screenshot. I did not find out how to place the | buttons | better, and I don't know how to tell the tree morph to select another | entry | when I navigate through the lessons using the buttons or the workspace | | contents. Please tell me what you think about this. Since I know how | little | Smalltalk I really know, I certainly managed to destroy something, so | please | have a look and tell me what to do better. | | Here are a few ideas I've had, which I as a relative beginner would | find really | neat in an interactive tutorial application. As time allows, I would | try to | implement at least some of the points below: | | - Clickable items in the text window. So that a tutorial writer could | for | example write something like this: | <code>SystemWindow new openInWorld</code> | , and the code together with a button saying 'doit' would appear. So | in | principle a markup language for interactive tutorials which adds a bit | of | interesting short cut functionality and eye candy to the tutorial. | | - Tabbed browsing for having several tutorials opened at the same | time | | - A button saying 'save lesson', that overwrites the appropriate | method with | the current state of the workspace; users can annotate the tutorial | with their | own notes or experiments; also the ability to add additional lessons | | - A button to push the current tutorial with all the additional | annotations to | a Monticello repository, from which future versions for everyone can | be | generated. Wiki for interactive tutorials! | | - Some additional functionality to generate a whole new tutorial from | within | the tutorial browser | | - (Semi-)Automatic update of tutorials | | - And, of course, many, many tutorials. Wouldn't it be great to have a | | tutorial for all the important and interesting aspects of a system, | and even | for every additional package you download? With the system Laurent | designed, | writing a tutorial is only so very slightly harder than writing | example | classes and methods, but so much more expressive and approacheable for | someone | new. | | Cheers, Danny | | | Am Mittwoch, 27. Januar 2010 19:00:25 schrieb laurent laffont: | > 2010/1/27 Mariano Martinez Peck <marianopeck@gmail.com> | > | > > I forgot to ask.... | > > | > > Does the DEVImageWorkspaces openGettingStartedWorkspace still | make | > > sense having ProfStef ? | > > | > > Can you take a look and "merge" it to ProfStef if there is | something cool | > > not included by Stef ? :) | > > | > > I would like to have only one reference form the Pharo welcome | workspace. | > > | > > Thanks | > > | > > Mariano | > | > I agree for merging | > | > I will put these snippets from getting started in ProfStef: | > 42 explore | > Date today explore | > 'abc' asUppercase. | > 'Hello World' reverse. | > | > There's cool comments too. | > | > I put global Read & Write on ProfStef so everybody can destroy it | :) | > | > | > Laurent | > | | _______________________________________________ | Pharo-project mailing list | Pharo-project@lists.gforge.inria.fr | http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Hi Dale
In putting together a couple of ProfStef tutorials last weekend, I found that I'd like to be able to #goto a lesson (out of sequence), essentially hitting a branch point where the student can skip a set of lessons or move to a different set of lessons. My thought was something like:
ProfStef goto: #lesson15 "jump to lesson15"
We have now split the GUI changes I did into a separate package ProfStefBrowser. In this I have something like this ProfStefBrowser goto: SmalltalkSyntaxTutorial lessonAt: 3 This is used to replace the current lesson when I click in the tutorial tree. I just checked, and if I move three methods up the hierarchy, it works exactly the same in the ProfStef core. Laurent, if you like this, can we move this into ProfStef core? Then people do not have to work with a different interface and tutorials written for ProfStef will work exactly the same in the GUI browser. Danny
It would be fun to put a BIG popup in the first time the user evaluates a goto: saying that goto: href, etc, are not allowed in Smalltalk :) On Sat, Jan 30, 2010 at 10:59 AM, Danny Chan <chan_dhf@yahoo.de> wrote:
Hi Dale
In putting together a couple of ProfStef tutorials last weekend, I found that I'd like to be able to #goto a lesson (out of sequence), essentially hitting a branch point where the student can skip a set of lessons or move to a different set of lessons. My thought was something like:
ProfStef goto: #lesson15 "jump to lesson15"
We have now split the GUI changes I did into a separate package ProfStefBrowser. In this I have something like this
ProfStefBrowser goto: SmalltalkSyntaxTutorial lessonAt: 3
This is used to replace the current lesson when I click in the tutorial tree. I just checked, and if I move three methods up the hierarchy, it works exactly the same in the ProfStef core.
Laurent, if you like this, can we move this into ProfStef core? Then people do not have to work with a different interface and tutorials written for ProfStef will work exactly the same in the GUI browser.
Danny
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On Sat, Jan 30, 2010 at 10:59 AM, Danny Chan <chan_dhf@yahoo.de> wrote:
Hi Dale
In putting together a couple of ProfStef tutorials last weekend, I found that I'd like to be able to #goto a lesson (out of sequence), essentially hitting a branch point where the student can skip a set of lessons or move to a different set of lessons. My thought was something like:
ProfStef goto: #lesson15 "jump to lesson15"
We have now split the GUI changes I did into a separate package ProfStefBrowser. In this I have something like this
ProfStefBrowser goto: SmalltalkSyntaxTutorial lessonAt: 3
This is used to replace the current lesson when I click in the tutorial tree. I just checked, and if I move three methods up the hierarchy, it works exactly the same in the ProfStef core.
Laurent, if you like this, can we move this into ProfStef core? Then people do not have to work with a different interface and tutorials written for ProfStef will work exactly the same in the GUI browser.
Danny
Hi, isn't it quite complex ? One can do: 3 timesRepeat: [ProfStef next]. Less to type, Smalltalkish, and maybe more fun ? Laurent
----- "laurent laffont" <laurent.laffont@gmail.com> wrote: | | Hi, | | isn't it quite complex ? One can do: | 3 timesRepeat: [ProfStef next]. | | Less to type, Smalltalkish, and maybe more fun ? | Laurent, The #goto: style allows one to label a lesson ... #timesRepeat: fails if I reorder the lessons. I apologize for using #goto:, but my first language was FORTRAN:) I think that #call: or #jumpTo: or maybe #lesson: would work just as well without being heretical... Dale
On Sun, Jan 31, 2010 at 7:04 PM, Dale Henrichs <dale.henrichs@gemstone.com>wrote:
----- "laurent laffont" <laurent.laffont@gmail.com> wrote: | | Hi, | | isn't it quite complex ? One can do: | 3 timesRepeat: [ProfStef next]. | | Less to type, Smalltalkish, and maybe more fun ? |
Laurent,
The #goto: style allows one to label a lesson ... #timesRepeat: fails if I reorder the lessons.
I apologize for using #goto:, but my first language was FORTRAN:)
I think that #call: or #jumpTo: or maybe #lesson: would work just as well without being heretical...
Dale
Well, I think I don't really understand why we need this as we have a tutorial browser now... By the way, everybody can write to the ProfStef repository so don't wait me to commit new code. As I said, I don't have a lot of time now and I prefer to concentrate on Pharocasts. Maybe I will finish complete test coverage of ProfStef-Core for Pharo 1.0. So happy hacking :) Laurent
On Sun, Jan 31, 2010 at 7:04 PM, Dale Henrichs <dale.henrichs@gemstone.com>wrote:
----- "laurent laffont" <laurent.laffont@gmail.com> wrote: | | Hi, | | isn't it quite complex ? One can do: | 3 timesRepeat: [ProfStef next]. | | Less to type, Smalltalkish, and maybe more fun ? |
Laurent,
The #goto: style allows one to label a lesson ... #timesRepeat: fails if I reorder the lessons.
I apologize for using #goto:, but my first language was FORTRAN:)
Come on Dale!!! It was a joke :) And I was talking about to go:to: in the code, which this is not the case. Here the go:to is for lessons :) Maybe something like goToLessonNumber: or similar ... It was just funny. Cheers Mariano
I think that #call: or #jumpTo: or maybe #lesson: would work just as well without being heretical...
Dale
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
----- "Mariano Martinez Peck" <marianopeck@gmail.com> wrote: | On Sun, Jan 31, 2010 at 7:04 PM, Dale Henrichs | <dale.henrichs@gemstone.com>wrote: | | > | > ----- "laurent laffont" <laurent.laffont@gmail.com> wrote: | > | | > | Hi, | > | | > | isn't it quite complex ? One can do: | > | 3 timesRepeat: [ProfStef next]. | > | | > | Less to type, Smalltalkish, and maybe more fun ? | > | | > | > Laurent, | > | > The #goto: style allows one to label a lesson ... #timesRepeat: | fails if I | > reorder the lessons. | > | > I apologize for using #goto:, but my first language was FORTRAN:) | > | > | Come on Dale!!! It was a joke :) And I was talking about to go:to: in | the | code, which this is not the case. Here the go:to is for lessons :) | Maybe | something like goToLessonNumber: or similar ... | | It was just funny. | | Cheers | Mariano, I was joking as well:) ... the smile on my face doesn't come across in email! Nonetheless, it does seem that #lesson: or #gotoLesson: or something in that vein would be a better selector anyway:) Dale
Hi! In the latest version of ProfStefCore from me I moved two messages I defined in ProfStefBrowser to the ProfStef class. "goto to specific tutorial and lesson by selector" ProfStef tutorial: SmalltalkSyntaxTutorial lesson: #welcome "goto to specific tutorial and lesson by index" ProfStef tutorial: SmalltalkSyntaxTutorial lessonAt: 1 Both replace the text in the window and do not start a new window. I found that opening a new window does not work well anyway, because it leaves the old one in an unusable state. Danny Am Montag, 1. Februar 2010 19:22:58 schrieb Dale Henrichs:
----- "Mariano Martinez Peck" <marianopeck@gmail.com> wrote: | On Sun, Jan 31, 2010 at 7:04 PM, Dale Henrichs | | <dale.henrichs@gemstone.com>wrote: | > ----- "laurent laffont" <laurent.laffont@gmail.com> wrote: | > | Hi, | > | | > | isn't it quite complex ? One can do: | > | 3 timesRepeat: [ProfStef next]. | > | | > | Less to type, Smalltalkish, and maybe more fun ? | > | > Laurent, | > | > The #goto: style allows one to label a lesson ... #timesRepeat: | | fails if I | | > reorder the lessons. | > | > I apologize for using #goto:, but my first language was FORTRAN:) | | Come on Dale!!! It was a joke :) And I was talking about to go:to: in | the | code, which this is not the case. Here the go:to is for lessons :) | Maybe | something like goToLessonNumber: or similar ... | | It was just funny. | | Cheers
Mariano,
I was joking as well:) ... the smile on my face doesn't come across in email!
Nonetheless, it does seem that #lesson: or #gotoLesson: or something in that vein would be a better selector anyway:)
Dale
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Excellent! Dale ----- "Danny Chan" <chan_dhf@yahoo.de> wrote: | Hi! | | In the latest version of ProfStefCore from me I moved two messages I | defined in | ProfStefBrowser to the ProfStef class. | | "goto to specific tutorial and lesson by selector" | ProfStef tutorial: SmalltalkSyntaxTutorial lesson: #welcome | | "goto to specific tutorial and lesson by index" | ProfStef tutorial: SmalltalkSyntaxTutorial lessonAt: 1 | | Both replace the text in the window and do not start a new window. I | found | that opening a new window does not work well anyway, because it leaves | the old | one in an unusable state. | | Danny | | | | Am Montag, 1. Februar 2010 19:22:58 schrieb Dale Henrichs: | > ----- "Mariano Martinez Peck" <marianopeck@gmail.com> wrote: | > | On Sun, Jan 31, 2010 at 7:04 PM, Dale Henrichs | > | | > | <dale.henrichs@gemstone.com>wrote: | > | > ----- "laurent laffont" <laurent.laffont@gmail.com> wrote: | > | > | Hi, | > | > | | > | > | isn't it quite complex ? One can do: | > | > | 3 timesRepeat: [ProfStef next]. | > | > | | > | > | Less to type, Smalltalkish, and maybe more fun ? | > | > | > | > Laurent, | > | > | > | > The #goto: style allows one to label a lesson ... #timesRepeat: | > | | > | fails if I | > | | > | > reorder the lessons. | > | > | > | > I apologize for using #goto:, but my first language was | FORTRAN:) | > | | > | Come on Dale!!! It was a joke :) And I was talking about to | go:to: in | > | the | > | code, which this is not the case. Here the go:to is for lessons | :) | > | Maybe | > | something like goToLessonNumber: or similar ... | > | | > | It was just funny. | > | | > | Cheers | > | > Mariano, | > | > I was joking as well:) ... the smile on my face doesn't come across | in | > email! | > | > Nonetheless, it does seem that #lesson: or #gotoLesson: or something | in | > that vein would be a better selector anyway:) | > | > Dale | > | > _______________________________________________ | > Pharo-project mailing list | > Pharo-project@lists.gforge.inria.fr | > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project | >
participants (4)
-
Dale Henrichs -
Danny Chan -
laurent laffont -
Mariano Martinez Peck