Re: [Pharo-users] Changes file size
Esteban, You might be on something important there. I always found it strange what effect loading Glorp had on an image, blowing it up. I can't say I understand though, best make it into an issue. Sven > On 10 Feb 2015, at 00:22, Esteban A. Maringolo wrote: > > Just when I found a way to reduce the total size of the changes file, I > noticed the latest versions in the repository doesn't have this issue, > what a good way of wasting one's time learning about the guts of > Monticello :) > > But just for the record: > The problem happened after installing into GlorpSession a > MCMethodDefinition (#dropTables:), I logged every single method > installation, and the point where things went bananas was after > installing that culprit method: > > After a MCMethodDefinition(dropTables): 1201686 bytes (~1.2Mb) > After a MCMethodDefinition(dropTables:): 135419895 bytes (~135Mb) > > I did a fileOut, deleted the method, and then file it in again, and > after versioning (and reloading) the changes increased ~1Mb after > installing Glorp. > > I didn't find anything particularly suspicious about it, not in the > source code nor in the bytecodes. > > Now after running PharoChangesCondenser condense the changes file > effectively shrinks. > > Regards! > > > Esteban A. Maringolo > > > 2014-10-28 12:31 GMT-03:00 Sven Van Caekenberghe : >> >>> On 28 Oct 2014, at 14:58, Esteban A. Maringolo wrote: >>> >>> 2014-10-28 5:41 GMT-03:00 Sven Van Caekenberghe : Esteban, The Reddit example's CI Job (https://ci.inria.fr/pharo-contribution/job/Reddit/) also loads Seaside and Glorp (two big packages) in Pharo 3 and it too results in a 110 Mb image and 142 Mb changes file. After condensing, that goes to 276 Mb ! >>> I would say something is wrong here ;-) >>> >>> Either something is wrong, or we feature it and rename >>> PharoChangesCondenser>>#condense to PharoChangesExpander>>#expand :) >>> Note that condensing changes on newly loaded code should not make much difference (in essence, all multiple versions of methods are reduced to 1). >>> I think we should create some issues out of this. >>> >>> This is true, however I find a changes of 140 megs to be MASSIVE. >> >> I totally agree, this is unacceptable. However, I did some tests, and the >> problem is with Glorp (or any of its sub packages). I tried building both my >> Reddit and HP35 examples from scratch in Pharo 3 on Linux. >> >> $ ./pharo reddit.image config >> http://smalltalkhub.com/mc/SvenVanCaekenberghe/Reddit/main >> ConfigurationOfReddit --install=stable >> >> $ ./pharo hp35.image config >> http://smalltalkhub.com/mc/SvenVanCaekenberghe/HP35/main ConfigurationOfHP35 >> --install=stable --group=Web-UI >> >> Both load Seaside and some other stuff, but only Reddit loads Glorp and >> PostgresV2. >> >> I did a condense changes on the HP35 image, the one on the Reddit image ran >> out of physical memory (granted is was a small machine) ! >> >> Here are the resulting sizes: >> >> $ ls -lah >> total 337M >> drwxr-xr-x 4 root root 4.0K Oct 28 15:09 . >> drwx-- 12 root root 4.0K Oct 28 12:28 .. >> -rw-r--r-- 1 root root 5.8M Oct 28 13:17 hp35.changes >> -rw-r--r-- 1 root root 5.6M Oct 28 14:38 hp35-condense-test.changes >> -rw-r--r-- 1 root root 5.8M Oct 28 14:27 hp35-condense-test.changes.bak >> -rw-r--r-- 1 root root 29M Oct 28 14:38 hp35-condense-test.image >> -rw-r--r-- 1 root root 29M Oct 28 13:17 hp35.image >> drwxr-xr-x 2 root root 4.0K Oct 28 13:12 package-cache >> -rwxr-xr-x 1 root root 367 Oct 28 12:29 pharo >> -rw-rw-r-- 1 root root 265K Oct 24 14:42 Pharo.changes >> -rw-rw-r-- 1 root root 21M Oct 24 14:42 Pharo.image >> -rwxr-xr-x 1 root root 354 Oct 28 12:29 pharo-ui >> drwxr-xr-x 3 root root 4.0K Oct 28 12:29 pharo-vm >> -rw-r--r-- 1 root root 136M Oct 28 12:48 reddit.changes >> -rw-r--r-- 1 root root 105M Oct 28 12:48 reddit.image >> >> Note how the HP35 image and changes sizes are totally acceptable/normal, >> while the Reddit one explodes, with the difference being Glorp. >> >> But I have no idea what causes this. >> >> There is no way Glorp can generate 100 Mb changes, when Seaside is OK with 6 >> Mb. >> >>> I remember loading ~4000 classes in the order of 10^6 LOC in Dolphin, and >>> changes never got half that size. Sizes were ~28/55MB image/changes. >>> The same in VAST, any image beyond the 20MB was an alert of something >>> being leaked. >>> Hmm, we need more tests and data points, I will try on Linux command line later on. >>> >>> I ran in it in Linux (Ubuntu) through the command line. >>> >>> >>> Regards! >>> >> >> >
[Pharo-users] Changes file size
>I always found it strange what effect loading Glorp had on an image, blowing >it up. Looks like it is really an effect of the Glorp code. Maybe because it was initially exported from VW and then imported into Squeak/Pharo. I always thought slow loading is because of this or the long license texts in the classes. At least I had similar issues when I loaded the "Glorp-EstebanMaringolo.92" from October 2014. I was not able to browse diffs, etc. when I wanted to clean up. Then I commited "Glorp-TorstenBergmann.93" without real changes and things started to stabilize. At least I was able to browse the diffs afterwards and could refactor a little bit with Glorp-TorstenBergmann.94. Bye T.
[Pharo-users] Nautilus groups
Hello, We would like to know if some of you use Nautilus groups functionality: dynamic groups: 'Last modified packages', 'Most viewed classes', 'Work' user defined groups : from the menu, you can flatten the content of many packages and get all classes into the newly created group. We have the feeling that it is not used (or not a lot) and we think to replace it with another mechanism (for example, let the user define his/her 'favorites' classes / packages). Thanks for the feedback.
[Pharo-users] PhD offer with Pharo about Interaction design
http://www.inria.fr/en/institute/recruitment/offers/phd/campaign-2015/%28view%29/details.html?id=PNGFK026203F3VBQB6G68LOE1&LOV5=4509&LG=EN&Resultsperpage=20&nPostingID=9157&nPostingTargetID=15138&option=52&sort=DESC&nDepartmentID=28
Re: [Pharo-users] PhD offer with Pharo about Interaction design
Great! > On 10 Feb 2015, at 14:29, stepharo wrote: > > > http://www.inria.fr/en/institute/recruitment/offers/phd/campaign-2015/%28view%29/details.html?id=PNGFK026203F3VBQB6G68LOE1&LOV5=4509&LG=EN&Resultsperpage=20&nPostingID=9157&nPostingTargetID=15138&option=52&sort=DESC&nDepartmentID=28 > >
Re: [Pharo-users] Nautilus groups
Hi Christophe, 2015-02-10 14:28 GMT+01:00 Christophe Demarey : > Hello, > > We would like to know if some of you use Nautilus groups functionality: > >- dynamic groups: 'Last modified packages', 'Most viewed classes', >'Work' > > I do not use dynamic groups. > >- user defined groups : from the menu, you can flatten the content of >many packages and get all classes into the newly created group. > > I do not like to flatten > We have the feeling that it is not used (or not a lot) and we think to > replace it with another mechanism (for example, let the user define his/her > 'favorites' classes / packages). > +1 I would prefer to be able to save a regular expression (the one I enter in the text area above Package list) Cheers, #Luc > > Thanks for the feedback. > >
Re: [Pharo-users] Agile visualization book as an interactive grafoscopio document
Hi Offray, 2015-02-09 22:14 GMT+01:00 Offray Vladimir Luna Cárdenas : > Hi all, > > So, wiring by "sendToOutside: from:" is not working and I don't know how > to tell my code browser to autosave its contents as part of the node body > where they belong. > > Any help with this is appreciated. > > Cheers, > > Offray > > here is a small example, http://ws.stfx.eu/JBIBBXA0EF3A it uses a memory file system for storing its structure and data. on the left pane, you can select folder and files. And a file will open a code pane on the right side. On this code pane you can edit the text and accept the changes with alt+s (or the icon on the upper right corner). The changed text is saved in the memory file. I use the memory file system just as an example, because I don't have another data structure. But this should work with your GrafoscopioNode too. Does it help? Nicolai
Re: [Pharo-users] Nautilus groups
I've never used the groups - mainly because I've never seen a sample workflow that I could copy, and my existing workflow is "sufficient" (which means I get a mess of windows plastered all over the screen as I follow sender&implementors, and could probably do better). btw, I've just spent 60 seconds trying to work out how to add an item to a group and could not. I don't even know what it groups - packages, classes, methods??? So I guess I ignored it, and once ignored, its a bit like that broken step in you building you always walk around without noticing. So discoverability of how to use it could be better, like something in the tooltip that "links" a more extensive tutorial on it, either in or out of image. cheers -ben On Tue, Feb 10, 2015 at 9:51 PM, Luc Fabresse wrote: > Hi Christophe, > > > > 2015-02-10 14:28 GMT+01:00 Christophe Demarey >: > >> Hello, >> >> We would like to know if some of you use Nautilus groups functionality: >> >>- dynamic groups: 'Last modified packages', 'Most viewed classes', >>'Work' >> >> I do not use dynamic groups. > > >> >>- user defined groups : from the menu, you can flatten the content of >>many packages and get all classes into the newly created group. >> >> I do not like to flatten > > >> We have the feeling that it is not used (or not a lot) and we think to >> replace it with another mechanism (for example, let the user define his/her >> 'favorites' classes / packages). >> > > +1 > > I would prefer to be able to save a regular expression (the one I enter in > the text area above Package list) > > > Cheers, > > #Luc > > > >> >> Thanks for the feedback. >> >> >
Re: [Pharo-users] PhD offer with Pharo about Interaction design
This was interesting to know... The researchers at Inria published over 4,500 articles in 2013. They are behind over 300 active patents and 120 start-ups. cheers -ben On Tue, Feb 10, 2015 at 9:37 PM, Camille wrote: > Great! > > > On 10 Feb 2015, at 14:29, stepharo wrote: > > > > > > > http://www.inria.fr/en/institute/recruitment/offers/phd/campaign-2015/%28view%29/details.html?id=PNGFK026203F3VBQB6G68LOE1&LOV5=4509&LG=EN&Resultsperpage=20&nPostingID=9157&nPostingTargetID=15138&option=52&sort=DESC&nDepartmentID=28 > > > > > > >
Re: [Pharo-users] PhD offer with Pharo about Interaction design
> On 10 Feb 2015, at 15:46, Ben Coman wrote: > > This was interesting to know... The researchers at Inria published over > 4,500 articles in 2013. They are behind over 300 active patents and 120 > start-ups. > It is a big research institute: 8 research centers, 172 Teams, 4471 members of staff. Marcus
[Pharo-users] recover lost changes
To whom can answer me Working with Pharo 3.0 I noticed for a while that I could not recover class definitions (do it's) from the "Recent Changes". I also lost class comments on file-out / file-in . For the second problem I made the following test: 1. take a fresh Pharo 3.0 image (bundle for Mac OSX from Aug 29, 2014) 2. create MyClass with a class method and a comment. 3. file-out MyClass 4. remove MyClass on remove of MyClass I get an exception: https://www.dropbox.com/s/unq89t84tq7r60b/removeClass.tiff?dl=0 5. file-in MyClass The class is there - no error But: With the same exception in other images the comment is missing after file-in. Is this known? What does the exception mean? -- Hartmut Krasemann Königsberger Str. 41 c D 22869 Schenefeld Tel. 040.8307097 Mobil 0171.6451283 krasem...@acm.org smime.p7s Description: S/MIME Cryptographic Signature
Re: [Pharo-users] Nautilus groups
Excerpts from Christophe Demarey's message of 2015-02-10 14:28:19 +0100: > We would like to know if some of you use Nautilus groups functionality: > dynamic groups: 'Last modified packages', 'Most viewed classes', 'Work' do you mean 'last modified classes'? i use them. i find them much easier to use than having to type some regular expression to get the list i want. i wish they would work better though. for example, when i install new packages, i do not want them to show up in the 'last modified classes' maybe they can be placed in a separate group: 'last installed classes' also, when i create a new class, it does not show up until i add a method. which sometimes means i go have to search for the class by typing its name. i don't know what 'work' does, i never got anything when selecting that. > user defined groups : from the menu, you can flatten the content of many > packages and get all classes into the newly created group. i have not discovered this yet. > We have the feeling that it is not used (or not a lot) and we think to > replace it with another mechanism (for example, let the user define his/her > 'favorites' classes / packages). how is that different from user defined groups? what i find important and useful about 'last modified classes' is that, as i work on many things, not only pharo, when i do get back to pharo, i can go: ok, where was i? then i click on 'last modified classes' and remember. without that i have to find some other way to remember before i can then type what i need to find the right classes. it may not be much, but having an easy way to see what i have been working on just feels more comfortable. greetings, martin. -- eKita - the online platform for your entire academic life -- chief engineer eKita.co pike programmer pike.lysator.liu.secaudium.net societyserver.org secretary beijinglug.org mentor fossasia.org foresight developer foresightlinux.orgrealss.com unix sysadmin Martin Bähr working in chinahttp://societyserver.org/mbaehr/
Re: [Pharo-users] recover lost changes
Excerpts from Hartmut's message of 2015-02-10 15:58:13 +0100: > Working with Pharo 3.0 I noticed for a while that I could not recover > class definitions (do it's) from the "Recent Changes". i noticed this too. methods worked fine, but i couldn't recover methods to new classes until i recreated the class manually. greetings, martin. -- eKita - the online platform for your entire academic life -- chief engineer eKita.co pike programmer pike.lysator.liu.secaudium.net societyserver.org secretary beijinglug.org mentor fossasia.org foresight developer foresightlinux.orgrealss.com unix sysadmin Martin Bähr working in chinahttp://societyserver.org/mbaehr/
Re: [Pharo-users] Nautilus groups
Le 10 févr. 2015 à 16:39, Martin Bähr a écrit : > Excerpts from Christophe Demarey's message of 2015-02-10 14:28:19 +0100: >> We would like to know if some of you use Nautilus groups functionality: >> dynamic groups: 'Last modified packages', 'Most viewed classes', 'Work' > > do you mean 'last modified classes'? yes, sorry >> We have the feeling that it is not used (or not a lot) and we think to >> replace it with another mechanism (for example, let the user define his/her >> 'favorites' classes / packages). > > how is that different from user defined groups? Well, it is not yet clear but at least, do not flatten all classes and keep packages.
[Pharo-users] Externally signalling pharo VM for shutdown
Is there a way I can externally signal a running pharo-vm in order to request a shutdown equivalent to clicking on the close icon? I'd like to externally manage the start/stop of a Pharo image, but because the image can be used during development, I'd like to provide the user with a confirmation dialog instead of simply killing the process. Regards! Esteban A. Maringolo
Re: [Pharo-users] Externally signalling pharo VM for shutdown
Depends on how you want the user to access the image. Using Seaside you could do something like whats described here: http://book.seaside.st/book/advanced/deployment/maintaining/requesthandler Esteban A. Maringolo wrote > Is there a way I can externally signal a running pharo-vm in order to > request a shutdown equivalent to clicking on the close icon? > > I'd like to externally manage the start/stop of a Pharo image, but > because the image can be used during development, I'd like to provide > the user with a confirmation dialog instead of simply killing the > process. > > Regards! > > > Esteban A. Maringolo -- View this message in context: http://forum.world.st/Externally-signalling-pharo-VM-for-shutdown-tp4804999p4805003.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Externally signalling pharo VM for shutdown
You can do it with kill -15 PID And, this (requires OSProcess): makeStopHook "Answers the process that hooks to the OS signal that makes this worker to shutdown when the VM process receives a TERM signal from the OS." ^ [|semaphore| semaphore := OSProcess accessor forwardSigTerm. semaphore wait. self onTerminationSignal] forkAt: Processor systemBackgroundPriority named: 'Image TERM’ onTerminationSignal "The process for the VM of this image has received a TERM signal from the OS. React accordingly" self log: 'That''s all folks. This worker is shutting down. Bye bye...' level:#messages. OSProcess accessor restoreSigTerm. SmalltalkImage current snapshot: false andQuit: true. > On Feb 10, 2015, at 4:58 PM, Esteban A. Maringolo > wrote: > > Is there a way I can externally signal a running pharo-vm in order to > request a shutdown equivalent to clicking on the close icon? > > I'd like to externally manage the start/stop of a Pharo image, but > because the image can be used during development, I'd like to provide > the user with a confirmation dialog instead of simply killing the > process. > > Regards! > > > Esteban A. Maringolo >
[Pharo-users] Spotter: Browse Impementors?
Maybe I'm missing something obvious, but if I zero in on a message name in spotter, can I open a browser on all implementors, or only browse one specific method? - Cheers, Sean -- View this message in context: http://forum.world.st/Spotter-Browse-Impementors-tp4805013.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Nautilus groups
having a simpler way to express here is my project would be good. For now the way to add a group is too complex. I would like to click on package and add it to a favorite list that is on the top I would love to get a group containing the class that were loaded (or not in the system). because often I load a configuration and I have no clue what have been loaded. Stef Hello, We would like to know if some of you use Nautilus groups functionality: * dynamic groups: 'Last modified packages', 'Most viewed classes', 'Work' * user defined groups : from the menu, you can flatten the content of many packages and get all classes into the newly created group. We have the feeling that it is not used (or not a lot) and we think to replace it with another mechanism (for example, let the user define his/her 'favorites' classes / packages). Thanks for the feedback.
Re: [Pharo-users] recover lost changes
Yes this should be fixed. Le 10/2/15 16:42, Martin Bähr a écrit : Excerpts from Hartmut's message of 2015-02-10 15:58:13 +0100: Working with Pharo 3.0 I noticed for a while that I could not recover class definitions (do it's) from the "Recent Changes". i noticed this too. methods worked fine, but i couldn't recover methods to new classes until i recreated the class manually. greetings, martin.
Re: [Pharo-users] Spotter: Browse Impementors?
You can dive-in using cmd+shift+right-arrow in Spotter and follow observation of those implementors. Preview is available by cmd+p. So basically you open in a browser only one specific method. Do you need to open it in Implementors/Senders Browser? If yes, can you describe your use case, please? Thanks. Cheers, Juraj > 10. 2. 2015 v 16:40, Sean P. DeNigris : > > Maybe I'm missing something obvious, but if I zero in on a message name in > spotter, can I open a browser on all implementors, or only browse one > specific method? > > > > - > Cheers, > Sean > -- > View this message in context: > http://forum.world.st/Spotter-Browse-Impementors-tp4805013.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. >
Re: [Pharo-users] Externally signalling pharo VM for shutdown
Great. This is cool. Why this can't be part of the stock vm/image? Regards! Esteban A. Maringolo 2015-02-10 16:28 GMT-03:00 Sebastian Sastre : > You can do it with > > kill -15 PID > > And, this (requires OSProcess): > > makeStopHook > "Answers the process that hooks to the > OS signal that makes this worker to shutdown > when the VM process receives a TERM signal from > the OS." > > ^ [|semaphore| > semaphore := OSProcess accessor forwardSigTerm. > semaphore wait. > self onTerminationSignal] > forkAt: Processor systemBackgroundPriority > named: 'Image TERM’ > > > > onTerminationSignal > "The process for the VM of this image > has received a TERM signal from the OS. > React accordingly" > > self log: 'That''s all folks. This worker is shutting down. Bye > bye...' level:#messages. > OSProcess accessor restoreSigTerm. > SmalltalkImage current snapshot: false andQuit: true. > > > > > > >> On Feb 10, 2015, at 4:58 PM, Esteban A. Maringolo >> wrote: >> >> Is there a way I can externally signal a running pharo-vm in order to >> request a shutdown equivalent to clicking on the close icon? >> >> I'd like to externally manage the start/stop of a Pharo image, but >> because the image can be used during development, I'd like to provide >> the user with a confirmation dialog instead of simply killing the >> process. >> >> Regards! >> >> >> Esteban A. Maringolo >> > >
Re: [Pharo-users] recover lost changes
> Am 10.02.2015 um 20:59 schrieb stepharo : > > Yes this should be fixed. > You mean fix the current implementation or swap it for epicea? Norbert > Le 10/2/15 16:42, Martin Bähr a écrit : >> Excerpts from Hartmut's message of 2015-02-10 15:58:13 +0100: >>> Working with Pharo 3.0 I noticed for a while that I could not recover >>> class definitions (do it's) from the "Recent Changes". >> i noticed this too. >> methods worked fine, but i couldn't recover methods to new classes until i >> recreated the class manually. >> >> greetings, martin. >> > >
Re: [Pharo-users] Spotter: Browse Impementors?
Juraj Kubelka wrote > Do you need to open it in Implementors/Senders Browser? Yes. I was fixing mouse wheel user code to handle horizontal wheel events. The Morphic hook is #mouseWheel:, so I wanted a browser on all implementors of #mouseWheel: so that I could view each one and update it if necessary. - Cheers, Sean -- View this message in context: http://forum.world.st/Spotter-Browse-Impementors-tp4805013p4805028.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Externally signalling pharo VM for shutdown
> Am 10.02.2015 um 21:25 schrieb Esteban A. Maringolo : > > Great. This is cool. > > Why this can't be part of the stock vm/image? > Because it needs OSProcess ;) A zinc server is always present in the image. Sven made a ZnReadEvalPrintDelegate that you can easily hook in to execute a smalltalk snippet (if your host is secured). The good thing about Sebastians approach is that whenever the OS is shut down it is called with SIGTERM from the OS. So should fit nicely with orchestration of the machine. Norbert > Regards! > Esteban A. Maringolo > > > 2015-02-10 16:28 GMT-03:00 Sebastian Sastre : >> You can do it with >> >> kill -15 PID >> >> And, this (requires OSProcess): >> >> makeStopHook >>"Answers the process that hooks to the >>OS signal that makes this worker to shutdown >>when the VM process receives a TERM signal from >>the OS." >> >>^ [|semaphore| >>semaphore := OSProcess accessor forwardSigTerm. >>semaphore wait. >>self onTerminationSignal] >>forkAt: Processor systemBackgroundPriority >>named: 'Image TERM’ >> >> >> >> onTerminationSignal >>"The process for the VM of this image >>has received a TERM signal from the OS. >>React accordingly" >> >>self log: 'That''s all folks. This worker is shutting down. Bye >> bye...' level:#messages. >>OSProcess accessor restoreSigTerm. >>SmalltalkImage current snapshot: false andQuit: true. >> >> >> >> >> >> >>> On Feb 10, 2015, at 4:58 PM, Esteban A. Maringolo >>> wrote: >>> >>> Is there a way I can externally signal a running pharo-vm in order to >>> request a shutdown equivalent to clicking on the close icon? >>> >>> I'd like to externally manage the start/stop of a Pharo image, but >>> because the image can be used during development, I'd like to provide >>> the user with a confirmation dialog instead of simply killing the >>> process. >>> >>> Regards! >>> >>> >>> Esteban A. Maringolo >>> >> >> >
Re: [Pharo-users] Spotter: Browse Impementors?
Hi, As Juraj said, you can Cmd+Shift+ArrowRight to dive in the category and using the preview you can browse the code. If you want the MessageBrowser, there is no way to get it by default. Laura also asked for this feature before, so I listed below a crude code to add a processor that finds selectors instead of implementors. Just install this method and then start spotting. Let us know if this is better: GTSpotter>>spotterSelectorsFor: aStep | processor | processor := aStep listProcessor. processor title: 'Selectors'; filter: [ :originalQuery :stream | |query selectors | query := originalQuery trimBoth asLowercase. query isEmpty ifFalse: [ selectors := Set new. SystemNavigation default allBehaviorsDo: [:class | class selectorsDo:[ :selector | ((selectors includes: selector) not and: [ selector beginsWith: query ]) ifTrue: [ selectors add: selector. selectors size > 5 ifFalse: [ stream addObject: selector inProcessor: processor . selectors ] ]; actLogic: [ :each | self systemNavigation browseAllImplementorsOf: each ] Cheers, Doru On Tue, Feb 10, 2015 at 9:24 PM, Sean P. DeNigris wrote: > Juraj Kubelka wrote > > Do you need to open it in Implementors/Senders Browser? > > Yes. I was fixing mouse wheel user code to handle horizontal wheel events. > The Morphic hook is #mouseWheel:, so I wanted a browser on all implementors > of #mouseWheel: so that I could view each one and update it if necessary. > > > > - > Cheers, > Sean > -- > View this message in context: > http://forum.world.st/Spotter-Browse-Impementors-tp4805013p4805028.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > > -- www.tudorgirba.com "Every thing has its own flow"
Re: [Pharo-users] Published some old games ...
I'm glad you like them :). It was fun to develop them . I can play Tetris for a long time, but i can't survive on the EaterGame for more than 40'. @Nacho Thank you for your feedback. About the Eater, perhaps in the future i make some additions, but is fully functional now (when you complete a level there is implemented an increase on monsters aggressiveness). Visual subjective enhancements could be added, but i'm satisfied with its minimalist look. I add the writing to the corresponding section of my todo list. On Mon, Feb 9, 2015 at 7:46 PM, kilon alios wrote: > No idea what you talking about so I will take your word for it :`D > > On Mon, Feb 9, 2015 at 10:04 PM, stepharo wrote: > >> You have basically >> logicalfont that describes what you want >> then a logicial font is checking reality and you get a Strikefont? or >> a FT >> Now htere were many patches and globals so this part would really need to >> cleaning such StandardFonts which is a kind of registry. >> Especially because FT are not polymorphic with StrikeFont. >> >> >> >> >> Le 8/2/15 22:33, kilon alios a écrit : >> >> Does pharo come with its own standard TTFs ? I am unfamiliar with how >> fonts work in Pharo exactly will take a look at mines and see what I can >> understand. >> >> On Sun, Feb 8, 2015 at 11:11 PM, stepharo wrote: >> >>> Thanks I do not get why it does not work with me. O_o >>> >>> Le 8/2/15 20:07, kilon alios a écrit : >>> >>> Well done Stef . The artefact problem is gone and I have committed your >>> configuration to MetaRepo4. >>> >>> On Sun, Feb 8, 2015 at 8:30 PM, stepharo wrote: >>> I fixed it. Now this is a good example on how an application should embed its fonts. >>> In fact this is a good example on why an application should embed its >>> fonts and I would like to have a solution for that. >>> >>> >>> Stef Le 8/2/15 19:12, kilon alios a écrit : > In case of mines I see now that each opened cell is a red box of doom . > > Apparently the morph DNU fontOfSize . Looks like StrikeFont class is > the culprit used in MinesTile>>drawOn: > > > >>> >>> >> >> >
[Pharo-users] Problems evaluating message sends in run-time arrays
I would like to create an array with a collection of colour values. I tried both: colorList := {Color blue} and colourList := {Color named: #blue.}. In both cases it evaluates to 'Color blue' rather than the Color object. What surprised me was that: charList := {Character digitValue:35. Character digitValue:33.}. Does evaluate to an array of two characters. What is going on? Cheers Andy ᐧ
Re: [Pharo-users] Problems evaluating message sends in run-time arrays
| colorList | colorList := [ Color blue class ] value. *Lic. Ignacio Sniechowski, MBA* *Prosavic SRL* *Tel: (011) 4542-6714* On Tue, Feb 10, 2015 at 10:38 PM, Andy Burnett < andy.burn...@knowinnovation.com> wrote: > I would like to create an array with a collection of colour values. > > I tried both: > > colorList := {Color blue} > and > colourList := {Color named: #blue.}. > > In both cases it evaluates to 'Color blue' rather than the Color object. > > What surprised me was that: > > charList := {Character digitValue:35. Character digitValue:33.}. > > Does evaluate to an array of two characters. What is going on? > > Cheers > Andy > ᐧ >
Re: [Pharo-users] Problems evaluating message sends in run-time arrays
or | colorList | colorList := { Color blue class }. *Lic. Ignacio Sniechowski, MBA* *Prosavic SRL* *Tel: (011) 4542-6714* On Tue, Feb 10, 2015 at 10:38 PM, Andy Burnett < andy.burn...@knowinnovation.com> wrote: > I would like to create an array with a collection of colour values. > > I tried both: > > colorList := {Color blue} > and > colourList := {Color named: #blue.}. > > In both cases it evaluates to 'Color blue' rather than the Color object. > > What surprised me was that: > > charList := {Character digitValue:35. Character digitValue:33.}. > > Does evaluate to an array of two characters. What is going on? > > Cheers > Andy > ᐧ >
Re: [Pharo-users] Problems evaluating message sends in run-time arrays
Andy Burnett wrote > In both cases it evaluates to 'Color blue' rather than the Color object. 'Color blue' is the Color object you created and put in your array. It is aColor object. It's print string is 'Color blue'. See Color>>#printOn: for more info. - Cheers, Sean -- View this message in context: http://forum.world.st/Problems-evaluating-message-sends-in-run-time-arrays-tp4805048p4805060.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Problems evaluating message sends in run-time arrays
I'm away from my Pharo computer to double-check, but is it just that is how a Color object displays itself ? Maybe have a look at Color>>printOn: cheers -ben On Wed, Feb 11, 2015 at 9:38 AM, Andy Burnett < andy.burn...@knowinnovation.com> wrote: > I would like to create an array with a collection of colour values. > > I tried both: > > colorList := {Color blue} > and > colourList := {Color named: #blue.}. > > In both cases it evaluates to 'Color blue' rather than the Color object. > > What surprised me was that: > > charList := {Character digitValue:35. Character digitValue:33.}. > > Does evaluate to an array of two characters. What is going on? > > Cheers > Andy > ᐧ >
Re: [Pharo-users] Spotter vs Spotlight was: [Re: Cleaning code completition's namespace]
> What do you mean about all existing menus in the image? Right now, the > default Spotter searches for the top level entries in the World menu and > then lets you dive if you want. It can also be made easily to search for > all menu entries from the World menu. Is that what you have in mind? > At that moment i thought of searching on all existing menu entries, for example if Spotter-search for "Browse" menu-category results will include "Browse scoped" (an entry of a menu you get for classes on the ClassBrowser). Yet at this moment i'm not sure of how useful it could be. > In this mail alone you list 4 different search tools: Finder, > MessageBrowser, Spotlight, Search in Nautilus. Each of these behaves > radically different without much of an added value. > > The whole philosophy of Smalltalk revolves around a minimal and uniform > model that can be used to express elegantly any action. For example, > Smalltalk has a simple syntax, and yet you can explain with that simple > syntax all things for which other languages require lots of hardcoded > constructs. The same rigor should be applied to the user interface. With > Spotter we strive to reach such a simple model that can be infinitely > moldable to fit custom needs. > > Now, besides elegance, if any, what else is there? Given that search is > such a pervasive action, before I start anything I first want to find an > entry point. That can be a method, a class, a file, or whatever other > object. To this end, first people think of what tool to use and then of how > to find the interesting object inside that tool. With Spotter we want to > eliminate the first step: we just open Spotter and start searching for what > we want. It's not quite there, but I think it is amazingly close to this > goal. > > I liked a lot these paragraphs in theirself and also as a motivation for Spotter. 2) Not having the regular features of a window that are useful depending on >> the case, for shortcuting i would like volatile but for browsing results i >> could depending on the case prefer persistency . >> > > Certainly. The current solution focuses on search. Creating a persistent > list of objects is still a work in progress but it is out of scope at the > moment. > > If at the method GTSpotterGlobalShortcut>>openGlobalSpotter one changes #openInWorld by #openInWindow , one gets the persistent behavior (it also includes the preview if opened). So now i can open a volatile or persistent Spotter, i'm going to have a keycombination for each one. In addition i get all the regular window behavior i in some cases want. This makes me really happy :) Only one little keybordian issue, Cmd+w doesn't close the window as usual, the same happens with GTPlayground. It would be nice if these come implemented so one doesn't have to add them. > This already works. As explained before, something like: > d #i > > will give you only the implementors of "d". So, # will search for the name > of the category. This feature is not yet complete in that it does not > highlight properly the results, but could you try to see if this fits what > you have in mind? > I've just read about that, and also the last bit on custom categories on the blog. So now i will define a category for classes+selectors and map a keycombination to open a volatile Spotter on ti, and remove the 5 results limit (how do i do this?). This gives me my wanted "selector/class shortcut" Spotlight provided me, improving the annoying deficiency Spotlight has of showing no-longer defined names (i asked about it in a recent mail to the list). Having a shortcut (Cmd+Shift+ArrowUp/ArrowDown) to jump through categories, then why to limit the number of results in each category to 5? Why not to show them all to avoid the need of going into the category? > Did you try compiling the method that I sent in the previous mail > (basically just copy paste that method in the GTSpotter class)? It should > provide the behavior of Spotlight. Please try and let me know if it works > for you. > > Yes, it works at some degree. I face this issue, if i type 'openIn' i get only 1/1 selector #openeningDelimiters, and only if i continue to type 'openInW' i get 5/28 selectors. Also at some point i started to get an #inform: msg saying "WorldState interCyclePause failed". So additions i would like to see built by default Cmd+w to close on GTSpotter and GTPlayground. Remove/know-how-to remove the 5 limit on results. Selectors category. Font size configured at SystemBrowser to have effect on GTSpotter both on search results and preview. To summarize i love Spotter and it will be the tool i use the most (in number of openings). Love, Laura
Re: [Pharo-users] Spotter vs Spotlight was: [Re: Cleaning code completition's namespace]
On Wed, Feb 11, 2015 at 1:25 PM, Laura Risani wrote: > >> Also at some point i started to get an #inform: msg saying "WorldState > interCyclePause failed". > > > Thats not GTSpotter. That was my fault since build 40477 integrated Issue 14669. This should be fixed since Issue 40874 was integrated into build 40486 . cheers -ben
Re: [Pharo-users] SmaCC: First steps
Ok so after rereading the tutorial and testing again and again , I think I have finally managed to understand how SmaCC really works and I was succesful into converting simple python litsts to pharo arrays and ordered collections. The tricky part now is to apply this knowledge to complex python types like multi dimensional lists, tuples and dictionaries. I understand that the visitor allows me to visit a specific object instances each time they are found in the AST . But because I want to walk the AST in order to build multi dimensional ordered collections I need something more, or maybe my understanding of the visitor pattern is flawed. The problem I am having here is that each time I parse a python type that python type is not necessarily represented by different kind of node. For example whether its a list or a tuple or a dictionary the same class is used PyAtomNode. In order to differentiate between those diffirent python types PyAtomNode has instance variables for right and left bracket, parantheses, and curly. So my initial thinking is to check those instance variables to see if they are nil and from that I can conclude which python type I am parsing. So I can preform simple ifs that check that the instance variable is Nil or not but the question is if my strategy is a good one or a bad one. I could define my own syntax to simplify the AST tree including different nodes for different python types , because from the looks of it , it seems it is a bit too verbose for my needs but On the other hand I am not so sure because in the future my needs may become more verbose too. So I am very close and ready to create my full python types converter for pharo but I wanted some good advice before wasting time on something that is not efficient. By the way Thierry I have to agree with you Smacc is a very capable parser, also I like the use of regex syntax, makes it uglier compared Pettit Parser but I prefer the compact regex syntax to having to define and browse tons of classes and send tons of messages. Also the Python support is very good and I am impressed how easily SmaCC can parse whole python applications since some of the test are very complex. Well done great work! On Sat, Jan 31, 2015 at 12:04 AM, kilon alios wrote: > thank for your congratulations, because at times I fear I ask too obvious > questions. I have to say I find this parsing very complex but very > fascinating too :) Time to experiment with the visitor. > > On Fri, Jan 30, 2015 at 11:49 PM, Thierry Goubier < > thierry.goub...@gmail.com> wrote: > >> >> >> 2015-01-30 14:04 GMT+01:00 kilon alios : >> >>> Ok thanks for the info, I am still however curious about these "tests" >>> are just tests (which may or may not happen) that determine the AST, for >>> example which node to use ? >>> >> >> 'tests' is just there because, in the grammar, there is this at a certain >> point: >> >> testlist: >> test 'test' "," testlist >> | test 'test' comma_opt >> ; >> >> I have named this use of test 'test', so SmaCC has deduced that testlist >> will be a list of test(s) nodes (or maybe other stuff such as atoms, >> depending on the productions for test).. so, SmaCC, in each rule where >> testlist is found, it will add a 'tests' instance variable. >> >> So, basically, the grammar rules explain how each node can be decomposed >> in sub-nodes, and the additional annotations (the 'test' naming and the >> {{}} or {{}}) drive how the classes for the nodes you want to keep are >> generated. In that testlist case, no node will be generated, but everywhere >> testlist appear on the right of the rule, then it will add a 'tests' >> instance variable. >> >> >>> >>> Or are they tests related to unit testing class PythonParserTests ? >>> >> >> Not at all :) >> >> >>> >>> Also you said I need to use the visitor created by PythonParser I assume >>> you mean PyRootNodeVisitor ? Just as it is explained in the AST chapter of >>> the documentation. >>> >>> In my case this simple python list will need me to subclass it and >>> override method visitListmaker , the aListmaker passed as argument to the >>> method should I assume it is PyListmakerNode ? >>> >> >> In my experience, what you need to do is you have a look at the ast >> generated and see if you can recognize the elements. From what I see in >> your simple example, the key to your list is that PyAtomNode instance with >> something in list. Once you have that, you know that you need to visit >> PyAtomNode (and check that it has the [ ] tokens). >> >> Looking into what is listmaker in atom in the grammar (congratulations by >> the way, you have seen it :) ), you'll see that it creates a listmaker node >> only in the first case: test followed by a list_for, otherwise it falls >> back to testlist... >> >> Thierry >> >> >> >>> >>> On Fri, Jan 30, 2015 at 10:50 AM, Thierry Goubier < >>> thierry.goub...@gmail.com> wrote: >>> Hi kilon, The tests instance variable is linked to the python gramma
[Pharo-users] get them while they are young
here is the reaction of a student preparing for a GSoC project for which the student needs to learn smalltalk: "I have installed Pharo v4.0 and started the book Pharo By Example as suggested by you I just wanted to say that I am in the initial stages and loving it already :)" greetings, martin. -- eKita - the online platform for your entire academic life -- chief engineer eKita.co pike programmer pike.lysator.liu.secaudium.net societyserver.org secretary beijinglug.org mentor fossasia.org foresight developer foresightlinux.orgrealss.com unix sysadmin Martin Bähr working in chinahttp://societyserver.org/mbaehr/