>
> Why can't we have stuff from Sophie back to Squeak/Pharo? > - only the Sophie developers are familiar with the code and they are not > motivated enough to extract it Not necessarily their task..... :-) Writing libraries and reusable components is a different project. > - the license is BSD, so the code can't be included in Pharo/Squeak I googled for BSD MIT license compatibility and found some interesting information see for example http://www.dwheeler.com/essays/floss-license-slide.html the paragraph about BSD in http://producingoss.com/en/license-choosing.html The license might be compatible depending on the "version" of the BSD license. And if not you could extract code and then ask the developers to release it as MIT. MIT and BSD are very close (or the same depending on the version) To summarize: The statement "the license is BSD, so the code can't be included in Pharo/Squeak" is too strong. There might be some problems including code, but they may be solved easily with by writing a few emails.... --Hannes _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Thu, 23 Sep 2010, Hannes Hirzel wrote:
>> >> Why can't we have stuff from Sophie back to Squeak/Pharo? >> - only the Sophie developers are familiar with the code and they are not >> motivated enough to extract it > > Not necessarily their task..... :-) That's right, but tell me who else is up to the task? > Writing libraries and reusable components is a different project. > >> - the license is BSD, so the code can't be included in Pharo/Squeak > > I googled for > BSD MIT license compatibility > > and found some interesting information > > see for example > http://www.dwheeler.com/essays/floss-license-slide.html > > the paragraph about BSD in > http://producingoss.com/en/license-choosing.html > > The license might be compatible depending on the "version" of the BSD > license. And if not you could extract code and then ask the developers > to release it as MIT. > > MIT and BSD are very close (or the same depending on the version) > > To summarize: The statement > > "the license is BSD, so the code can't be included in Pharo/Squeak" > > is too strong. There might be some problems including code, but they > may be solved easily with by writing a few emails.... The license is the 3-clause BSD license, it contains the following non-endorsement clause: "Neither the name of the University of Southern California, Los Angeles nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission." I wonder what can be done about this. Levente > > > --Hannes > > _______________________________________________ > 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 9/23/10, Levente Uzonyi <[hidden email]> wrote:
> On Thu, 23 Sep 2010, Hannes Hirzel wrote: > >>> >>> Why can't we have stuff from Sophie back to Squeak/Pharo? >>> - only the Sophie developers are familiar with the code and they are not >>> motivated enough to extract it >> >> Not necessarily their task..... :-) > > That's right, but tell me who else is up to the task? > >> Writing libraries and reusable components is a different project. >> >>> - the license is BSD, so the code can't be included in Pharo/Squeak >> >> I googled for >> BSD MIT license compatibility >> >> and found some interesting information >> >> see for example >> http://www.dwheeler.com/essays/floss-license-slide.html >> >> the paragraph about BSD in >> http://producingoss.com/en/license-choosing.html >> >> The license might be compatible depending on the "version" of the BSD >> license. And if not you could extract code and then ask the developers >> to release it as MIT. >> >> MIT and BSD are very close (or the same depending on the version) >> >> To summarize: The statement >> >> "the license is BSD, so the code can't be included in Pharo/Squeak" >> >> is too strong. There might be some problems including code, but they >> may be solved easily with by writing a few emails.... > > The license is the 3-clause BSD license, it contains the following > non-endorsement clause: > > "Neither the name of the University of Southern California, Los Angeles > nor the names of its contributors may be used to endorse or promote > products derived from this software without specific prior written > permission." I would say it means you cannot use University of Southern California, Los Angeles for advertising your software. Or maybe in addition the Sophie developers? > I wonder what can be done about this. Carve out the pieces we think are useful and ask the Sophie developers to re-license it as MIT. That would be on the safe side. HJH > > Levente > >> >> >> --Hannes >> >> _______________________________________________ >> 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 |
Administrator
|
In reply to this post by Hannes Hirzel
Ha ha, should have been *none of these felt...*, but: 1. The on:send:to: was what I /wanted/ to do, with the downside being that it did nothing, lol. 2. The intercept of Morph>>processEvent:using: was okay, but dangerous because it's easy to lock the image when messing with this. 3 & 4. Lock&Forward and SubclassItAll were both okay, but seemed very heavy weight for listening in on one event. IOW I may have gone that route eventually if the behavior got complex, but didn't like being chained to it for my simple case. Yes, he mentions #1 and #4 and adds a fifth - your own EventHandler Cool, I've started this as well. Let's keep the list posted if we come up with anything. Sean p.s. #1 seems to be broken in Squeak and Pharo. I'm going to start another thread.
Cheers,
Sean |
Administrator
|
In reply to this post by Sean P. DeNigris
This thread is about Morphic and how we can make it great. Please move any other topics (e.g. Squeak vs. Pharo, and why one would use one or the other) off my thread. Have a nice day :)
Thanks. Sean
Cheers,
Sean |
In reply to this post by Sean P. DeNigris
On 9/24/10, Sean P. DeNigris <[hidden email]> wrote:
> > > Hannes Hirzel-2 wrote: >> >>> I tried (one of these felt very satisfying): >>> * Morph>>on:send:to:, which sounded good, but never got called >>> * intercepting Morph>>processEvent:using: (which I was told was not a >>> good >>> idea) >>> * (after seeking help), locking the submorphs and overriding the dozen or >>> so >>> event-related methods in the chain from my morph to TextMorphForShout >>> (the >>> Morph that actually handles the text and input). >>> * subclassing TextMorphForShout and then subclassing PluggableShoutMorph >>> to >>> use that subclass. >> >> Which method did you like best? >> > > Ha ha, should have been *none of these felt...*, but: > 1. The on:send:to: was what I /wanted/ to do, with the downside being that > it did nothing, lol. > 2. The intercept of Morph>>processEvent:using: was okay, but dangerous > because it's easy to lock the image when messing with this. > 3 & 4. Lock&Forward and SubclassItAll were both okay, but seemed very heavy > weight for listening in on one event. IOW I may have gone that route > eventually if the behavior got complex, but didn't like being chained to it > for my simple case. > > > Hannes Hirzel-2 wrote: >> >> There are some notes on this issue at >> http://wiki.squeak.org/squeak/2477 >> ( Eddie Cottongim writes: I know of three main ways to handle events >> in Morphic.......) >> > Yes, he mentions #1 and #4 and adds a fifth - your own EventHandler > > > Hannes Hirzel-2 wrote: >> >> Conclusion: It might be worthwile to find out more how Juan has pruned >> Morphic in Cuis and if it is still valuable for use, document that and >> put it to use in Squeak and Pharo. >> > Cool, I've started this as well. Let's keep the list posted if we come up > with anything. > > Sean > p.s. #1 seems to be broken in Squeak and Pharo. I'm going to start another > thread. Juan has in Cuis 2.6 Morph on: eventName send: selector to: recipient self flag: #jmv. "Do NOT implement EventHandler in Morphic 3 or LightWidgets. Even more. Try to avoid all the stuff in Morphic-OldEvents" self eventHandler ifNil: [self eventHandler: EventHandler new]. self eventHandler on: eventName send: selector to: recipient So the best thing as of now would be to remove this in Squeak and Pharo so that the next people who analyze this do not loose time with it and can advance more with the things which work..... HJH _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On 25 September 2010 09:34, Hannes Hirzel <[hidden email]> wrote:
> On 9/24/10, Sean P. DeNigris <[hidden email]> wrote: >> >> >> Hannes Hirzel-2 wrote: >>> >>>> I tried (one of these felt very satisfying): >>>> * Morph>>on:send:to:, which sounded good, but never got called >>>> * intercepting Morph>>processEvent:using: (which I was told was not a >>>> good >>>> idea) >>>> * (after seeking help), locking the submorphs and overriding the dozen or >>>> so >>>> event-related methods in the chain from my morph to TextMorphForShout >>>> (the >>>> Morph that actually handles the text and input). >>>> * subclassing TextMorphForShout and then subclassing PluggableShoutMorph >>>> to >>>> use that subclass. >>> >>> Which method did you like best? >>> >> >> Ha ha, should have been *none of these felt...*, but: > >> 1. The on:send:to: was what I /wanted/ to do, with the downside being that >> it did nothing, lol. > >> 2. The intercept of Morph>>processEvent:using: was okay, but dangerous >> because it's easy to lock the image when messing with this. > >> 3 & 4. Lock&Forward and SubclassItAll were both okay, but seemed very heavy >> weight for listening in on one event. IOW I may have gone that route >> eventually if the behavior got complex, but didn't like being chained to it >> for my simple case. >> >> >> Hannes Hirzel-2 wrote: >>> >>> There are some notes on this issue at >>> http://wiki.squeak.org/squeak/2477 >>> ( Eddie Cottongim writes: I know of three main ways to handle events >>> in Morphic.......) >>> >> Yes, he mentions #1 and #4 and adds a fifth - your own EventHandler >> >> >> Hannes Hirzel-2 wrote: >>> >>> Conclusion: It might be worthwile to find out more how Juan has pruned >>> Morphic in Cuis and if it is still valuable for use, document that and >>> put it to use in Squeak and Pharo. >>> >> Cool, I've started this as well. Let's keep the list posted if we come up >> with anything. >> >> Sean > > > > >> p.s. #1 seems to be broken in Squeak and Pharo. I'm going to start another >> thread. > > Juan has in Cuis 2.6 > > Morph > > on: eventName send: selector to: recipient > Announcements! :) announcer on: MyAnnouncement send: #foo to: bar > self flag: #jmv. > "Do NOT implement EventHandler in Morphic 3 or LightWidgets. > Even more. Try to avoid all the stuff in Morphic-OldEvents" > > self eventHandler ifNil: [self eventHandler: EventHandler new]. > self eventHandler on: eventName send: selector to: recipient > > > So the best thing as of now would be to remove this in Squeak and > Pharo so that the next people who analyze this do not loose time with > it and can advance more with the things which work..... > The dichotomy here is , that Morph from one side acts as an event recipient, but from another side, it acts as an events source for eventHandler. (as far as i can tell, this is an intent of introducing EventHandler). This could be managed in more gracious manner, by having a single entry point for all events, which coming to morph. Then you can write: singleEntryPointForAllEvents: anEvent self eventHandler ifNotNil: [ ^ handler handleEvent: anEvent fromMorph: self ]. self handleEvent: anEvent and get rid of repetituous code from all places, like: keyStroke: anEvent "Handle a keystroke event. The default response is to let my eventHandler, if any, handle it." self eventHandler ifNotNil: [self eventHandler keyStroke: anEvent fromMorph: self]. > HJH > > _______________________________________________ > 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 |
Thanks, Igor
Two questions. 1) I have not been following closely the Pharo development. Does Pharo rely mainly on Announcements (Event objects) for Morphic GUI code these days? MCHttpRepository location: 'http://source.lukas-renggli.ch/announcements' user: '' password: '' 2) I found How Morphic processes events http://wiki.squeak.org/squeak/118 written by Andreas Raab in 2003 Could somebody have a quick look at it and tell me if this still more or less applies to the current Squeak and Pharo implementations? Where do I find a description how Pharo handles Morphic events these days? --Hannes On 9/25/10, Igor Stasenko <[hidden email]> wrote: > On 25 September 2010 09:34, Hannes Hirzel <[hidden email]> wrote: >> On 9/24/10, Sean P. DeNigris <[hidden email]> wrote: >>> >>> >>> Hannes Hirzel-2 wrote: >>>> >>>>> I tried (one of these felt very satisfying): >>>>> * Morph>>on:send:to:, which sounded good, but never got called >>>>> * intercepting Morph>>processEvent:using: (which I was told was not a >>>>> good >>>>> idea) >>>>> * (after seeking help), locking the submorphs and overriding the dozen >>>>> or >>>>> so >>>>> event-related methods in the chain from my morph to TextMorphForShout >>>>> (the >>>>> Morph that actually handles the text and input). >>>>> * subclassing TextMorphForShout and then subclassing >>>>> PluggableShoutMorph >>>>> to >>>>> use that subclass. >>>> >>>> Which method did you like best? >>>> >>> >>> Ha ha, should have been *none of these felt...*, but: >> >>> 1. The on:send:to: was what I /wanted/ to do, with the downside being >>> that >>> it did nothing, lol. >> >>> 2. The intercept of Morph>>processEvent:using: was okay, but dangerous >>> because it's easy to lock the image when messing with this. >> >>> 3 & 4. Lock&Forward and SubclassItAll were both okay, but seemed very >>> heavy >>> weight for listening in on one event. IOW I may have gone that route >>> eventually if the behavior got complex, but didn't like being chained to >>> it >>> for my simple case. >>> >>> >>> Hannes Hirzel-2 wrote: >>>> >>>> There are some notes on this issue at >>>> http://wiki.squeak.org/squeak/2477 >>>> ( Eddie Cottongim writes: I know of three main ways to handle events >>>> in Morphic.......) >>>> >>> Yes, he mentions #1 and #4 and adds a fifth - your own EventHandler >>> >>> >>> Hannes Hirzel-2 wrote: >>>> >>>> Conclusion: It might be worthwile to find out more how Juan has pruned >>>> Morphic in Cuis and if it is still valuable for use, document that and >>>> put it to use in Squeak and Pharo. >>>> >>> Cool, I've started this as well. Let's keep the list posted if we come >>> up >>> with anything. >>> >>> Sean >> >> >> >> >>> p.s. #1 seems to be broken in Squeak and Pharo. I'm going to start >>> another >>> thread. >> >> Juan has in Cuis 2.6 >> >> Morph >> >> on: eventName send: selector to: recipient >> > i saw such message pattern. Guess where? > Announcements! :) > > announcer on: MyAnnouncement send: #foo to: bar > >> self flag: #jmv. >> "Do NOT implement EventHandler in Morphic 3 or LightWidgets. >> Even more. Try to avoid all the stuff in Morphic-OldEvents" >> >> self eventHandler ifNil: [self eventHandler: EventHandler new]. >> self eventHandler on: eventName send: selector to: recipient >> >> >> So the best thing as of now would be to remove this in Squeak and >> Pharo so that the next people who analyze this do not loose time with >> it and can advance more with the things which work..... >> > > The dichotomy here is , that Morph from one side acts as an event recipient, > but from another side, it acts as an events source for eventHandler. > (as far as i can tell, this is an intent of introducing EventHandler). > > This could be managed in more gracious manner, by having a single > entry point for all events, > which coming to morph. Then you can write: > > singleEntryPointForAllEvents: anEvent > self eventHandler ifNotNil: [ ^ handler handleEvent: anEvent > fromMorph: self ]. > self handleEvent: anEvent > > and get rid of repetituous code from all places, like: > > keyStroke: anEvent > "Handle a keystroke event. The default response is to let my > eventHandler, if any, handle it." > > self eventHandler ifNotNil: > [self eventHandler keyStroke: anEvent fromMorph: self]. > > >> HJH >> >> _______________________________________________ >> 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 |
On 25 September 2010 10:41, Hannes Hirzel <[hidden email]> wrote:
> Thanks, Igor > > Two questions. > > 1) I have not been following closely the Pharo development. Does Pharo > rely mainly on Announcements (Event objects) for Morphic GUI code > these days? > No. Its just my observation, that some parts of it look almost exactly as in announcements. Yes, and Announcements was born later than Morphic. > MCHttpRepository location: > 'http://source.lukas-renggli.ch/announcements' user: '' password: '' > > 2) I found > How Morphic processes events > http://wiki.squeak.org/squeak/118 > written by Andreas Raab in 2003 > > Could somebody have a quick look at it and tell me if this still more > or less applies to the current Squeak and Pharo implementations? > > Where do I find a description how Pharo handles Morphic events these days? > They are almost the same. This problem with Morphic, for any entry-level developer, that its a huge code base, and it sparsely documented. So, it is really hard to make conclusions about what model it using and what might break, if you change/remove some code. > --Hannes > > > On 9/25/10, Igor Stasenko <[hidden email]> wrote: >> On 25 September 2010 09:34, Hannes Hirzel <[hidden email]> wrote: >>> On 9/24/10, Sean P. DeNigris <[hidden email]> wrote: >>>> >>>> >>>> Hannes Hirzel-2 wrote: >>>>> >>>>>> I tried (one of these felt very satisfying): >>>>>> * Morph>>on:send:to:, which sounded good, but never got called >>>>>> * intercepting Morph>>processEvent:using: (which I was told was not a >>>>>> good >>>>>> idea) >>>>>> * (after seeking help), locking the submorphs and overriding the dozen >>>>>> or >>>>>> so >>>>>> event-related methods in the chain from my morph to TextMorphForShout >>>>>> (the >>>>>> Morph that actually handles the text and input). >>>>>> * subclassing TextMorphForShout and then subclassing >>>>>> PluggableShoutMorph >>>>>> to >>>>>> use that subclass. >>>>> >>>>> Which method did you like best? >>>>> >>>> >>>> Ha ha, should have been *none of these felt...*, but: >>> >>>> 1. The on:send:to: was what I /wanted/ to do, with the downside being >>>> that >>>> it did nothing, lol. >>> >>>> 2. The intercept of Morph>>processEvent:using: was okay, but dangerous >>>> because it's easy to lock the image when messing with this. >>> >>>> 3 & 4. Lock&Forward and SubclassItAll were both okay, but seemed very >>>> heavy >>>> weight for listening in on one event. IOW I may have gone that route >>>> eventually if the behavior got complex, but didn't like being chained to >>>> it >>>> for my simple case. >>>> >>>> >>>> Hannes Hirzel-2 wrote: >>>>> >>>>> There are some notes on this issue at >>>>> http://wiki.squeak.org/squeak/2477 >>>>> ( Eddie Cottongim writes: I know of three main ways to handle events >>>>> in Morphic.......) >>>>> >>>> Yes, he mentions #1 and #4 and adds a fifth - your own EventHandler >>>> >>>> >>>> Hannes Hirzel-2 wrote: >>>>> >>>>> Conclusion: It might be worthwile to find out more how Juan has pruned >>>>> Morphic in Cuis and if it is still valuable for use, document that and >>>>> put it to use in Squeak and Pharo. >>>>> >>>> Cool, I've started this as well. Let's keep the list posted if we come >>>> up >>>> with anything. >>>> >>>> Sean >>> >>> >>> >>> >>>> p.s. #1 seems to be broken in Squeak and Pharo. I'm going to start >>>> another >>>> thread. >>> >>> Juan has in Cuis 2.6 >>> >>> Morph >>> >>> on: eventName send: selector to: recipient >>> >> i saw such message pattern. Guess where? >> Announcements! :) >> >> announcer on: MyAnnouncement send: #foo to: bar >> >>> self flag: #jmv. >>> "Do NOT implement EventHandler in Morphic 3 or LightWidgets. >>> Even more. Try to avoid all the stuff in Morphic-OldEvents" >>> >>> self eventHandler ifNil: [self eventHandler: EventHandler new]. >>> self eventHandler on: eventName send: selector to: recipient >>> >>> >>> So the best thing as of now would be to remove this in Squeak and >>> Pharo so that the next people who analyze this do not loose time with >>> it and can advance more with the things which work..... >>> >> >> The dichotomy here is , that Morph from one side acts as an event recipient, >> but from another side, it acts as an events source for eventHandler. >> (as far as i can tell, this is an intent of introducing EventHandler). >> >> This could be managed in more gracious manner, by having a single >> entry point for all events, >> which coming to morph. Then you can write: >> >> singleEntryPointForAllEvents: anEvent >> self eventHandler ifNotNil: [ ^ handler handleEvent: anEvent >> fromMorph: self ]. >> self handleEvent: anEvent >> >> and get rid of repetituous code from all places, like: >> >> keyStroke: anEvent >> "Handle a keystroke event. The default response is to let my >> eventHandler, if any, handle it." >> >> self eventHandler ifNotNil: >> [self eventHandler keyStroke: anEvent fromMorph: self]. >> >> >>> HJH >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> >> >> >> -- >> Best regards, >> Igor Stasenko AKA sig. >> >> > > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Sean P. DeNigris
On 9/24/10, Sean P. DeNigris <[hidden email]> wrote:
> Hannes Hirzel-2 wrote: >> >> Conclusion: It might be worthwile to find out more how Juan has pruned >> Morphic in Cuis and if it is still valuable for use, document that and >> put it to use in Squeak and Pharo. >> > Cool, I've started this as well. Let's keep the list posted if we come up > with anything. > > Sean Yes, for a start, here are some very simple metrics. --Hannes metrics ^HelpTopic title: 'Metrics' contents: ' http://www.squeak.org/ Squeak 4.1 Morph allSubclasses size 323 http://ftp.squeak.org/trunk/ Squeak4.2-alpha-10382 Morph allSubclasses size 330 Squeak4.2-alpha-10548 Morph allSubclasses size 330 http://pharo-project.org/pharo-download/release-1-1 Pharo 1.1 Morph allSubclasses size 282 http://www.jvuletich.org/Cuis/Index.html (Description) http://www.jvuletich.org/Cuis (Download) Cuis 2.7 Morph allSubclasses size 57 Cuis 2.6 Morph allSubclasses size 56 ' -------------------------------------------------------------------------------------------------------------------- The form is a page of a help book which you get when you do for example CustomHelp subclass: #NotesOnMorphicByHannesHirzel instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Morphic-Help' _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |