Now, a ProfStef tutorial must subclass AbstractTutorial. Danny has written a simple method to find all tutorials: AbstractTutorial class >> tutorials
^self subclasses sortBy: [:a :b | a name < b name].
Note that the class name is used to generate the tutorial title (like in Rails). So: HowToMakeYourOwnTutorial title ==> 'How To Make Your Own Tutorial' Laurent Each package can define each own tutorial entry point method like this: _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
laurent laffont a écrit :
> Now, a ProfStef tutorial must subclass AbstractTutorial. Danny has > written a simple method to find all tutorials: > > AbstractTutorial class >> tutorials > ^self subclasses sortBy: [:a :b | > a name < b name]. > > Note that the class name is used to generate the tutorial title (like > in Rails). So: > HowToMakeYourOwnTutorial title ==> 'How To Make Your Own Tutorial' > > Laurent > thanks Alain _______________________________________________ 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
Hi Laurent!
I see your point. It is definitely a good idea to keep the core ProfStef as simple as possible. Right now ProfStef itself can serve as a simple application to begin exploring the language, so that even a dummy like me has a chance to understand it. Maybe it is a good idea to create a new package that builds on the ProfStef core application you wrote, call it ProfStefCenter or something, and add additional functionality there? That way ProfStef itself would stay simple and be in the spirit of a playful introduction to Smalltalk, and a full fledged interactive help and tutorial system could evolve from there. Cheers, Danny Am Donnerstag, 28. Januar 2010 20:45:35 schrieb laurent laffont: > Hi Danny, > > > 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. > > The GUI you write is great, it push ProfStef from an interactive tutorial > to an integrated help system. > > But :) I think we should keep the idea of the interactive tutorial (the > basic LessonView) using ProfStef go. Because ProfStef go is a little game, > it must be attractive, funny. I like the idea of ProfStef which talk to the > user and interact. My inspiration was http://tryruby.org/ > > So IMHO you should put all your changes in a new class, like > TutorialBrowser. So we will have: > - "ProfStef go" for the interactive tutorial > - "TutorialBrowser open" for the pseudo-help system. > > This way we can keep existing classes clean. > > And take care of unit tests and class comments :) . > > > Cheers, > > Laurent > > > 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 <[hidden email]> > > > > > > > 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 > > [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 |
On Thu, Jan 28, 2010 at 10:13 PM, Danny Chan <[hidden email]> wrote: Hi Laurent! Mariano has just suggested to create 3 separate packages
1) ProfStefBrowser2) ProfStefCore 3) ProfStenTests so 2 + 3 = current stable version, and put all the GUI stuff in 1.
Would you like to create ProfStefBrowser ? Laurent
_______________________________________________ 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
Am Donnerstag, 28. Januar 2010 21:20:00 schrieb Mariano Martinez Peck:
> Danny: You don't have an idea of how much important this is for the Pharo > community. Having good documentation, tutorials and so on, is a KEY aspect > from my point of view. So thanks to Laurent for the initiative and you for > the work too. I have a secret (well, now not so secret) agenda. I want a help system that allows me to learn all the cool stuff I don't know, and where developers of great software are asked immediately 'Hey, sounds great, but where is the tutorial?'. So that people like me, who are not really software developers, can start using this stuff, too. > - I found a little bug in the UI. If you double click on a lesson, a > debugger comes. Can you reproduce it ? Yes, I am still learning how to work with Morphic in general and this TreeMorph in particular > > - Maybe you can integrate this in "Tools -> More -> ProfStef Tutorials" How? > > - For Pharo 1.0 release, I will include the workspace version (the old one) > as I don't want to incorporate new stuff. Very wise. I wouldn't want to include new stuff by someone who committed himself to really learn Smalltalk only a few weeks ago for my welcome screen. Cheers, Danny _______________________________________________ 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/28 laurent laffont <[hidden email]>
Yes, what I suggested is that the "text" and lessons should be totally decouple from how they are shown: if a worksapce, a UI, etc. I would even reify the concept of lesson, which is almost text. With this -both "UIs" can coexist: the workspace version and the browser version- -merge would be easy Of course that names are just the ones that came first to my mind. You can put better names if you want. Even more, I would like to load only "some" of them. For example, just core, or core and tests. Maybe other person wants the browser...etc. All this should be defined in a Metacello configuration. This will let us define stable versions and let us choose what we want. 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
> Mariano has just suggested to create 3 separate packages > 1) ProfStefBrowser > 2) ProfStefCore > 3) ProfStenTests > > so 2 + 3 = current stable version, and put all the GUI stuff in 1. > > Would you like to create ProfStefBrowser ? > > Laurent Good idea, I will. I would not touch the code in ProfStefCore then, to keep it as a self-contained application and subclass any relevant classes. Danny _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Danny Chan
On Thu, Jan 28, 2010 at 10:24 PM, Danny Chan <[hidden email]> wrote: Am Donnerstag, 28. Januar 2010 21:20:00 schrieb Mariano Martinez Peck: you know much more than me about Morphic.
I have no idea at all. But others can help. You can look also how other projects did it. For example, DependencyBrowser did that. Or the seaside control panel.
No. Don't misunderstood. I wouldn't commit new stuff from noone. It has nothing to do to who commits or the expertise of the people. I am newbie too. Cheers, Danny _______________________________________________ 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
Hi!
As discussed I've added a new repository ProfStefBrowser and uploaded a version which builds on top of the current ProfStef version from Laurent without touching the code in the ProfStef package. > - I found a little bug in the UI. If you double click on a lesson, a > debugger comes. Can you reproduce it ? I think I found out why this happens. Apparently, when you double click on an item, the item is deselected. The callback that is called in this case receives as the item which was clicked nil. I added a workaround, but since the callback is set using a message 'setSelectedSelector:' I personally feel that this behaviour is not intuitive and that this callback shouldn't be called at all when deselecting items. Who are the guys to talk to for this behaviour? Danny _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Fri, Jan 29, 2010 at 3:33 PM, Danny Chan <[hidden email]> wrote: Hi! Cool. Just be aware that you don't need to create a separete repository for that. You can have more than 1 package in a repository. Then, you can have the ProStef repository, where inside you have different packages like ProfStef core (Laurent) and ProfStefBrowser. This is easier because you have all together in the same repository.
If I were you, I would said a separate email you a correct subject, and people will help. There are too much traffic in this list, that not all the people can read all mails of all threads. Cheers Mariano Danny _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Am Freitag, 29. Januar 2010 15:38:58 schrieb Mariano Martinez Peck:
> On Fri, Jan 29, 2010 at 3:33 PM, Danny Chan <[hidden email]> wrote: > > Hi! > > > > As discussed I've added a new repository ProfStefBrowser and uploaded a > > version which builds on top of the current ProfStef version from Laurent > > without touching the code in the ProfStef package. > > Cool. Just be aware that you don't need to create a separete repository for > that. You can have more than 1 package in a repository. Then, you can have > the ProStef repository, where inside you have different packages like > ProfStef core (Laurent) and ProfStefBrowser. This is easier because you > have all together in the same repository. > Ah, understand. I was confused by packages vs repositories. I will copy the packages to the ProfStef repository. Danny _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Fri, Jan 29, 2010 at 6:49 PM, Danny Chan <[hidden email]> wrote:
Am Freitag, 29. Januar 2010 15:38:58 schrieb Mariano Martinez Peck: Welcome ProfStef-Core and ProfStef-Tests ! Laurent _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Dale
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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 <[hidden email]> wrote: Hi Dale _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Danny Chan
On Sat, Jan 30, 2010 at 10:59 AM, Danny Chan <[hidden email]> wrote:
Hi Dale Hi, isn't it quite complex ? One can do: 3 timesRepeat: [ProfStef next]. Less to type, Smalltalkish, and maybe more fun ?
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
Cool !! Now you can update the ConfigurationOfProfStef so that I can link correctly from ConfigurationOfPharo ;) You can look as an example in ConfigurationOfShout or OCompletion ! 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
----- "laurent laffont" <[hidden email]> 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 _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Sun, Jan 31, 2010 at 7:04 PM, Dale Henrichs <[hidden email]> wrote:
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 _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Dale
On Sun, Jan 31, 2010 at 7:04 PM, Dale Henrichs <[hidden email]> wrote:
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... _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
----- "Mariano Martinez Peck" <[hidden email]> wrote: | On Sun, Jan 31, 2010 at 7:04 PM, Dale Henrichs | <[hidden email]>wrote: | | > | > ----- "laurent laffont" <[hidden email]> 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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |