Hi,
DynamicProtocols are available for Squeak OmniBrowser on: MCHttpRepository location: 'http://www.squeaksource.com/DynamicProtocols' user: '' password: '' A dynamic protocol is a category (displayed in the 3rd pane of your browser) whose content is computed dynamically based on the class currently selected. If a dynamic protocol is empty then it is not shown. Here is a small list of dynamic protocols currently implemented: - HaltUsage: displays all methods containing a call to #halt. - Override: contains methods that are defined in the superclasses and redefined in the current class. - RecentlyModified: contains recently modified methods (< 5 minutes). - SuperSend: displays methods sending a message to 'super' Thanks to Marcus Denker for his help in some protocols. Future work: ------------- - Listen to your feedback (on top of my todo list) - Should work for other browsers (not sure if this is easy, maybe using services) - Implements new dynamic protocols (give me ideas) - Add a GUI to select the dynamic protocols you want to activate (maybe through Preferences) Waiting for your feedback now Bye -- Damien |
Great!
> Here is a small list of dynamic protocols currently implemented: > > - HaltUsage: displays all methods containing a call to #halt. > - Override: contains methods that are defined in the superclasses and > redefined in the current class. > - RecentlyModified: contains recently modified methods (< 5 minutes). > - SuperSend: displays methods sending a message to 'super' More ideas: * UncommentedMethods: Methods with the comment missing. * MethodsToSee: Methods with #todo, #fixThis or #bob. * LargeMethods: More than 20 lines of code. * DuplicatedMethods: Same implementation in the superclass hierarchy * MethodsWithSlips: Transcript, #halt, etc * MethodsToImplement: Methods with #subclassResponsibility in the superclass but not yet implemented. * LastChanged: The list of N last changed methods. (from http://minnow.cc.gatech.edu/squeak/2419 ) Cheers, -- Diego |
In reply to this post by Damien Cassou-3
Look at/integrate/complete the TraitsBrowser virtual categories:
- Required methods (MethodsToImplement as described by Diego, but also includes methods self sent but never implemented and more) - Methods from Traits - ... if you're interested, look at the SCG papers and ask about the existing code. Considering that we have Traits in the image, and the tools in the image hardly support them at all, this would be pretty important. In the current state, there is probably a constant slow "leaking" code duplication, as people update methods inherited from Traits, when they should have changed the Trait, but didn't know it. Daniel Damien Cassou wrote: > Hi, > > DynamicProtocols are available for Squeak OmniBrowser on: > > MCHttpRepository location: > 'http://www.squeaksource.com/DynamicProtocols' user: '' password: '' > > > A dynamic protocol is a category (displayed in the 3rd pane of your > browser) whose content is computed dynamically based on the class > currently selected. If a dynamic protocol is empty then it is not > shown. Here is a small list of dynamic protocols currently implemented: > > - HaltUsage: displays all methods containing a call to #halt. > - Override: contains methods that are defined in the superclasses and > redefined in the current class. > - RecentlyModified: contains recently modified methods (< 5 minutes). > - SuperSend: displays methods sending a message to 'super' > > Thanks to Marcus Denker for his help in some protocols. > > Future work: > ------------- > > - Listen to your feedback (on top of my todo list) > - Should work for other browsers (not sure if this is easy, maybe > using services) > - Implements new dynamic protocols (give me ideas) > - Add a GUI to select the dynamic protocols you want to activate > (maybe through Preferences) > > > Waiting for your feedback now > > > Bye > |
In reply to this post by Damien Cassou-3
Diego Gomez Deck a écrit :
> Great! > Thank you. Hope you will use it. > More ideas: > > * UncommentedMethods: Methods with the comment missing. > Done > * MethodsToSee: Methods with #todo, #fixThis or #bob. > Do you mean a call to this methods, a call to #flag: with this parameters or a pragma ? Maybe all of them. But there is no 'standard' so I don't really see what I can use. > * LargeMethods: More than 20 lines of code. > Done > * DuplicatedMethods: Same implementation in the superclass > hierarchy > Done > * MethodsWithSlips: Transcript, #halt, etc > Already done for #halt. > * MethodsToImplement: Methods with #subclassResponsibility in the > superclass but not yet implemented. > I would like to have the full 'required' protocol discussed in 'A Browser For Incremental Programming' by Nathanael Shärli and Andrew P. Black. If someone wants to do it then it would be cool (the package on squeak source can be written by everybody). Cet été, pensez aux cartes postales de laposte.net ! |
In reply to this post by Damien Cassou-3
> Look at/integrate/complete the TraitsBrowser virtual categories:
> - Required methods (MethodsToImplement as described by Diego, but also > includes methods self sent but never implemented and more) The idea of DynamicProtocols come from 'A Browser For Incremental Programming' by Nathanael Shärli and Andrew P. Black. I already read this paper and really would like this 'required' protocol. > - Methods from Traits good idea > - ... if you're interested, look at the SCG papers and ask about the > existing code. I already read the paper two time. But the description of the algorithm is uncomplete in the paper and I was not able to implement it. Everybody is free to implement new protocols and publish them. This is really easy. -- Damien Cassou Cet été, pensez aux cartes postales de laposte.net ! |
I miscommunicated -
The "required methods" computation already exists, and is either in the image already or in a SqS package called TraitsOmniBrowser. Last summer, while I was doing an internship at Andrew Black's, we took an initial implementation done by Nathanael and adapted it for real time computation in a live OmniBrowser. The TraitsOmniBrowser contains the OB-derived browser that shows that category. The real-time part requires a little extra integration with the OB which is demonstrated there, but adapting this to DynamicProtocols is probably not very hard, just not in my focus. If someone is interested in getting this code in use, though, I'll be glad to help with questions. Daniel damien.cassou wrote: >> Look at/integrate/complete the TraitsBrowser virtual categories: >> - Required methods (MethodsToImplement as described by >> > Diego, but also > >> includes methods self sent but never implemented and more) >> > > > The idea of DynamicProtocols come from 'A Browser For > Incremental Programming' by Nathanael Shärli and Andrew P. > Black. I already read this paper and really would like this > 'required' protocol. > > > >> - Methods from Traits >> > > > good idea > > > >> - ... if you're interested, look at the SCG papers and ask >> > about the > >> existing code. >> > > > I already read the paper two time. But the description of the > algorithm is uncomplete in the paper and I was not able to > implement it. > > Everybody is free to implement new protocols and publish them. > This is really easy. > > |
In reply to this post by Damien Cassou-3
> I miscommunicated -
> > The "required methods" computation already exists, and is either in the > image already or in a SqS package called TraitsOmniBrowser. Last summer, > while I was doing an internship at Andrew Black's, we took an initial > implementation done by Nathanael and adapted it for real time > computation in a live OmniBrowser. The TraitsOmniBrowser contains the > OB-derived browser that shows that category. > > The real-time part requires a little extra integration with the OB which > is demonstrated there, but adapting this to DynamicProtocols is probably > not very hard, just not in my focus. If someone is interested in getting > this code in use, though, I'll be glad to help with questions. Oh, thank you for this. I will had a look. -- Damien Cassou Cet été, pensez aux cartes postales de laposte.net ! |
In reply to this post by Damien Cassou-3
this is cool, keep pushing. We need to improve our tools.
We should be able to specify what we want to see :) Then I would love to have a recategoriser or automatic method categorization (improving the one diego did). Stef On 7 sept. 06, at 17:54, Damien Cassou wrote: > Hi, > > DynamicProtocols are available for Squeak OmniBrowser on: > > MCHttpRepository location: 'http://www.squeaksource.com/ > DynamicProtocols' user: '' password: '' > > > A dynamic protocol is a category (displayed in the 3rd pane of your > browser) whose content is computed dynamically based on the class > currently selected. If a dynamic protocol is empty then it is not > shown. Here is a small list of dynamic protocols currently > implemented: > > - HaltUsage: displays all methods containing a call to #halt. > - Override: contains methods that are defined in the superclasses > and redefined in the current class. > - RecentlyModified: contains recently modified methods (< 5 minutes). > - SuperSend: displays methods sending a message to 'super' > > Thanks to Marcus Denker for his help in some protocols. > > Future work: > ------------- > > - Listen to your feedback (on top of my todo list) > - Should work for other browsers (not sure if this is easy, maybe > using services) > - Implements new dynamic protocols (give me ideas) > - Add a GUI to select the dynamic protocols you want to activate > (maybe through Preferences) > > > Waiting for your feedback now > > > Bye > > -- > Damien > > |
In reply to this post by Damien Cassou-3
It should be in the PhD of nathanael
Stef > I already read the paper two time. But the description of the > algorithm is uncomplete in the paper and I was not able to > implement it. > > Everybody is free to implement new protocols and publish them. > This is really easy. > > -- > Damien Cassou > > Cet été, pensez aux cartes postales de laposte.net ! > > > > |
In reply to this post by stéphane ducasse-2
stéphane ducasse a écrit :
> this is cool, keep pushing. We need to improve our tools. > We should be able to specify what we want to see :) I would advise you to install this tool and tell me what you would like, what doesn't work... Looking for users and feedback -- Damien |
In reply to this post by stéphane ducasse-2
Cool! (and Damien thanks for the package "ImageForDevelopers" is very useful)
On 9/7/06, stéphane ducasse <[hidden email]> wrote: > Then I would love to have a recategoriser or automatic method > categorization (improving the one diego did). I have uploaded a new version of the automatic method categorizer to Squeaksource and SquakMap. The new version works with the default system browser, the refactoring browser and omnibrowser :) So each time that you save a method... it's auto recategorized :) |
Le 2006/09/11, Diego Fernandez <[hidden email]> écrivait :
>Cool! (and Damien thanks for the package "ImageForDevelopers" is very useful) > >On 9/7/06, stéphane ducasse <[hidden email]> wrote: >> Then I would love to have a recategoriser or automatic method >> categorization (improving the one diego did). > >I have uploaded a new version of the automatic method categorizer to >Squeaksource and SquakMap. >The new version works with the default system browser, the refactoring >browser and omnibrowser :) >So each time that you save a method... it's auto recategorized :) Hi Diego, a big thank for this, may I use it in 3.8 or is it just for 3.9 ? It seems to be only for 3.9 (automatic version) if I believe what is written in the comments of SqueakMap. |
Cool
>> Cool! (and Damien thanks for the package "ImageForDevelopers" is > very useful) >> >> On 9/7/06, stéphane ducasse <[hidden email]> wrote: >>> Then I would love to have a recategoriser or automatic method >>> categorization (improving the one diego did). >> >> I have uploaded a new version of the automatic method categorizer > to >> Squeaksource and SquakMap. >> The new version works with the default system browser, the > refactoring >> browser and omnibrowser :) >> So each time that you save a method... it's auto recategorized :) > Hi Diego, > a big thank for this, > may I use it in 3.8 or is it just for 3.9 ? It seems to be only for > 3.9 > (automatic version) if I believe what is written in the comments of > SqueakMap. > |
In reply to this post by Diego Fernández
The MC package depends on the services framework (included in 3.9) so
it doesn't work "as is" in 3.8. The services system category (AutomaticMethodCategorizer-Services) can be removed, it's not a "core" part. The rest doesn't use any special feature of 3.9, so maybe it works in 3.8, I didn't test it. I will try it in 3.8 this weekend, until them.. if you want to use in 3.8 you have to do some handwork. On 9/11/06, Raymond Asselin <[hidden email]> wrote: > Le 2006/09/11, Diego Fernandez <[hidden email]> écrivait : > > >Cool! (and Damien thanks for the package "ImageForDevelopers" is > very useful) > > > >On 9/7/06, stéphane ducasse <[hidden email]> wrote: > >> Then I would love to have a recategoriser or automatic method > >> categorization (improving the one diego did). > > > >I have uploaded a new version of the automatic method categorizer > to > >Squeaksource and SquakMap. > >The new version works with the default system browser, the > refactoring > >browser and omnibrowser :) > >So each time that you save a method... it's auto recategorized :) > Hi Diego, > a big thank for this, > may I use it in 3.8 or is it just for 3.9 ? It seems to be only for 3.9 > (automatic version) if I believe what is written in the comments of > SqueakMap. > > |
In reply to this post by Damien Cassou-3
Hi,
A small bug with DynamicProtocol and OB. Select a dynamic protocol and use the mouse button to choose the "browse" menu entry. It will crash. Luc. Damien Cassou a écrit : > Hi, > > DynamicProtocols are available for Squeak OmniBrowser on: > > MCHttpRepository location: > 'http://www.squeaksource.com/DynamicProtocols' user: '' password: '' > > > A dynamic protocol is a category (displayed in the 3rd pane of your > browser) whose content is computed dynamically based on the class > currently selected. If a dynamic protocol is empty then it is not shown. > Here is a small list of dynamic protocols currently implemented: > > - HaltUsage: displays all methods containing a call to #halt. > - Override: contains methods that are defined in the superclasses and > redefined in the current class. > - RecentlyModified: contains recently modified methods (< 5 minutes). > - SuperSend: displays methods sending a message to 'super' > > Thanks to Marcus Denker for his help in some protocols. > > Future work: > ------------- > > - Listen to your feedback (on top of my todo list) > - Should work for other browsers (not sure if this is easy, maybe using > services) > - Implements new dynamic protocols (give me ideas) > - Add a GUI to select the dynamic protocols you want to activate (maybe > through Preferences) > > > Waiting for your feedback now > > > Bye > |
Free forum by Nabble | Edit this page |