Re: [Pharo-dev] About inspectors
Thank you. In this case yes, it blurs the line between an SQL Editor and the inspector. And between a table and an Excel code editor. But, here is another blurred line between the file browser and the inspector: http://www.humane-assessment.com/blog/browsing-files-with-gtinspector-video/ The GTInspector blurs all sorts of lines and it even empowers you to blur your own lines :). Just a note: the GToolkit is also the work of Andrei. Doru On Mon, Mar 10, 2014 at 8:01 PM, Esteban A. Maringolo emaring...@gmail.comwrote: Excellent Tudor! Very impressive. It blurs the line between a the Smalltalk tools and an SQL Editor. Esteban A. Maringolo 2014-03-10 12:15 GMT-03:00 Alexandre Bergel alexandre.ber...@me.com: Yes! We have Roassal 2 which is pretty well advanced already. We would like to announce Roassal2 the way its deserve: with fireworks and a big fanfare. The coming months will be full of surprises. Alexandre On Mar 10, 2014, at 9:59 AM, Sven Van Caekenberghe s...@stfx.eu wrote: Alex, On 10 Mar 2014, at 13:54, Alexandre Bergel alexandre.ber...@me.com wrote: Yesterday evening I watched the Wolfram video. I think we can produce Pharo-based video as impressive as what this strange guy did. Please do ! Visualization and marketing is important indeed. Sven -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-dev] May I have a write permission to MetaRepoForPharo30?
Hi Attila, I added zeroflag as contributor. Feel free to upload your configs. Note that they require a #stable definition to work in config browser. (just have a look at the other configs) Thx T. Gesendet: Montag, 10. März 2014 um 21:47 Uhr Von: Attila Magyar m.magy...@gmail.com An: pharo-dev@lists.pharo.org Betreff: [Pharo-dev] May I have a write permission to MetaRepoForPharo30? I'ld like to publis my app. My user is this one: http://smalltalkhub.com/#!/~zeroflag -- View this message in context: http://forum.world.st/May-I-have-a-write-permission-to-MetaRepoForPharo30-tp4748477.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] About a Spec dedicated mailing-list
+1 Gesendet: Dienstag, 11. März 2014 um 03:46 Uhr Von: Alexandre Bergel alexandre.ber...@me.com An: Pharo Development List pharo-dev@lists.pharo.org Betreff: Re: [Pharo-dev] About a Spec dedicated mailing-list + 1 Le 10-03-2014 à 16:48, Sven Van Caekenberghe s...@stfx.eu a écrit : Ben, I don't think that makes that much sense (right now): - there is not that much spec specific traffic - spec is a fundamental and critical part of pharo - pharo is a fundamental and critical part of spec - we have to make spec better all together ;-) My 2c, Sven On 10 Mar 2014, at 18:23, Benjamin benjamin.vanryseghem.ph...@gmail.com wrote: Hello guys :) I was wondering if it will make sense to have a spec dedicated mailing list :) As I have pros and cons, I am asking for your opinion :) Thanks in advance, Ben
[Pharo-dev] Sort by property
Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I’m wrong, but as I’ve told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko
[Pharo-dev] Bug in valueWithin:onTimeout: ?
Hello guys, Yesterday I had this problem that at startup a pharo image has several process running at priority 40. The problem is that my tests (run from command line) trigger #valueWithin:onTimeout: and the protected block (the block calling #valueWithin:onTimeout:) would always timed out for the first test as resuming the watchdog in #valueWithin:onTimeout: allows another runnable process at the same priority as the active process to be run. Example: Here we have two process at the activePriority, the second process takes 100ms to be run and as the transcript shows, the protected block always times out because this other process is started after the watchdog so during the protected block activation. | p endTime | p := Processor activeProcess priority. [ 'Process2Start' logCr. endTime := Time millisecondClockValue + 100. [ Time millisecondClockValue endTime ] whileFalse: [ 1 + 2 + 3 ]. 'Process2End' logCr. ] forkAt: p. [ 'protected' logCr] valueWithin: 0.05 second onTimeout: [ 'timeout' logCr ]. Transcript displays: 'Process2Start' 'Process2End' 'timeout' I'm not very familiar with Pharo's process framework nor with processes in general so I would like to discuss the problem. *Question 1: Is it a bug ?* I fixed it by adding a Processor yield just before resuming the watchdog in #valueWithin:onTimeout: to allow other runnable process at the activePriority to be run before the protected block and therefore forbidding other process started outside of the protected block to trigger the time out. No process can be started in between the Processor yield and watchdog resume. *Question 2: Can someone tell me if this code looks ok ? I've just added Processor yield.* valueWithin: aDuration onTimeout: timeoutBlock Evaluate the receiver. If the evaluation does not complete in less than aDuration evaluate the timeoutBlock instead | theProcess delay watchdog tag | aDuration = Duration zero ifTrue: [^ timeoutBlock value ]. the block will be executed in the current process theProcess := Processor activeProcess. delay := aDuration asDelay. tag := self. make a watchdog process watchdog := [ delay wait. wait for timeout or completion theProcess ifNotNil:[ theProcess signalException: (TimedOut new tag: tag)] ] newProcess. Watchdog needs to run at high priority to do its job (but not at timing priority) watchdog priority: Processor timingPriority-1. *Processor yield.* catch the timeout signal ^ [ watchdog resume. start up the watchdog self ensure:[ evaluate the receiver theProcess := nil. it has completed, so ... delay delaySemaphore signal. arrange for the watchdog to exit ]] on: TimedOut do: [ :e | e tag == tag ifTrue:[ timeoutBlock value ] ifFalse:[ e pass]].
Re: [Pharo-dev] Sort by property
Hi Yuriy, I though the same. There is a similar situation with pluggable collections where you have to specify two blocks: one for the hash the other for equality. So you have to repeat three times the property you're interested in: PluggableSet new hashBlock: [ :each | each name hash ]; equalBlock: [ :a :b | a name = b name ]; yourself. Where I would like to be able to write: PluggableSet by: #name. On 11 mars 2014, at 09:19, Yuriy Tymchuk yuriy.tymc...@me.com wrote: Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I’m wrong, but as I’ve told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko
Re: [Pharo-dev] Sort by property
Hello, [ Note: So in the default Pharo the method is named #sort: not #sortByProp: or #sortBy: but it's a detail ] I like this idea because I also have always the problem. So I would like to be able to do: projects sort: #creationDate The implementation would be, in a similar fashion to how Symbolvalue: is implemented for aCollection collect: #isPlague : Symbolvalue: val1 value: val2 ^ (val1 perform: self) = (val2 perform: self) Then : (#( 10 42 31 23 90 87 65) collect: #asValueHolder) sort: #value Answers: an Array(a NewValueHolder[ 10 ] a NewValueHolder[ 23 ] a NewValueHolder[ 31 ] a NewValueHolder[ 42 ] a NewValueHolder[ 65 ] a NewValueHolder[ 87 ] a NewValueHolder[ 90 ]) which is correct :-). However I do not like: projects sort: [ :proj | proj author birthDate ] If you allow that where is the limit to the thing you want to allow ? In addition, I do not see any nice implementation and you could just implement in project ProjectauthorBirthDate ^ self author birthDate Best, Clement 2014-03-11 9:19 GMT+01:00 Yuriy Tymchuk yuriy.tymc...@me.com: Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I'm wrong, but as I've told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko
Re: [Pharo-dev] About a Spec dedicated mailing-list
Are those +1 meant for yes a dedicated mailling list or for sven's I don't think that makes much sense comment ? even if you don't want to do something directly with spec (and so, you wouldn't follow that mailinglist), many changes done for spec have an influence on common tools or morphic components. +1 (for svens comment). 2014-03-11 9:02 GMT+01:00 Torsten Bergmann asta...@gmx.de: +1 Gesendet: Dienstag, 11. März 2014 um 03:46 Uhr Von: Alexandre Bergel alexandre.ber...@me.com An: Pharo Development List pharo-dev@lists.pharo.org Betreff: Re: [Pharo-dev] About a Spec dedicated mailing-list + 1 Le 10-03-2014 à 16:48, Sven Van Caekenberghe s...@stfx.eu a écrit : Ben, I don't think that makes that much sense (right now): - there is not that much spec specific traffic - spec is a fundamental and critical part of pharo - pharo is a fundamental and critical part of spec - we have to make spec better all together ;-) My 2c, Sven On 10 Mar 2014, at 18:23, Benjamin benjamin.vanryseghem.ph...@gmail.com wrote: Hello guys :) I was wondering if it will make sense to have a spec dedicated mailing list :) As I have pros and cons, I am asking for your opinion :) Thanks in advance, Ben
Re: [Pharo-dev] About inspectors
Doru, for the DBXTalk inspector, maybe it is useful for you this package: http://www.smalltalkhub.com/#!/~DBXTalk/DBXDatabaseModel/ That allows to retrieve database schema metadata in a polymorphic way :) On Tue, Mar 11, 2014 at 7:43 AM, Tudor Girba tu...@tudorgirba.com wrote: Thank you. In this case yes, it blurs the line between an SQL Editor and the inspector. And between a table and an Excel code editor. But, here is another blurred line between the file browser and the inspector: http://www.humane-assessment.com/blog/browsing-files-with-gtinspector-video/ The GTInspector blurs all sorts of lines and it even empowers you to blur your own lines :). Just a note: the GToolkit is also the work of Andrei. Doru On Mon, Mar 10, 2014 at 8:01 PM, Esteban A. Maringolo emaring...@gmail.com wrote: Excellent Tudor! Very impressive. It blurs the line between a the Smalltalk tools and an SQL Editor. Esteban A. Maringolo 2014-03-10 12:15 GMT-03:00 Alexandre Bergel alexandre.ber...@me.com: Yes! We have Roassal 2 which is pretty well advanced already. We would like to announce Roassal2 the way its deserve: with fireworks and a big fanfare. The coming months will be full of surprises. Alexandre On Mar 10, 2014, at 9:59 AM, Sven Van Caekenberghe s...@stfx.eu wrote: Alex, On 10 Mar 2014, at 13:54, Alexandre Bergel alexandre.ber...@me.com wrote: Yesterday evening I watched the Wolfram video. I think we can produce Pharo-based video as impressive as what this strange guy did. Please do ! Visualization and marketing is important indeed. Sven -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-dev] Sort by property
On 11 Mar 2014, at 10:19, Clément Bera bera.clem...@gmail.com wrote: Hello, [ Note: So in the default Pharo the method is named #sort: not #sortByProp: or #sortBy: but it's a detail ] Yes, my mistake, I was misguided by #isSortedBy: Now #sortByProp: is my own example method that accepts a block and executes it for each sortable item and then the result is compared. I don’t like the idea to implement #value:value: for a symbol because it caries a bit of a logic inside it. Uko I like this idea because I also have always the problem. So I would like to be able to do: projects sort: #creationDate The implementation would be, in a similar fashion to how Symbolvalue: is implemented for aCollection collect: #isPlague : Symbolvalue: val1 value: val2 ^ (val1 perform: self) = (val2 perform: self) Then : (#( 10 42 31 23 90 87 65) collect: #asValueHolder) sort: #value Answers: an Array(a NewValueHolder[ 10 ] a NewValueHolder[ 23 ] a NewValueHolder[ 31 ] a NewValueHolder[ 42 ] a NewValueHolder[ 65 ] a NewValueHolder[ 87 ] a NewValueHolder[ 90 ]) which is correct :-). However I do not like: projects sort: [ :proj | proj author birthDate ] If you allow that where is the limit to the thing you want to allow ? In addition, I do not see any nice implementation and you could just implement in project ProjectauthorBirthDate ^ self author birthDate Best, Clement 2014-03-11 9:19 GMT+01:00 Yuriy Tymchuk yuriy.tymc...@me.com: Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I’m wrong, but as I’ve told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko
Re: [Pharo-dev] Bug in valueWithin:onTimeout: ?
Hi Clément: On 11 Mar 2014, at 09:58, Clément Bera bera.clem...@gmail.com wrote: Yesterday I had this problem that at startup a pharo image has several process running at priority 40. The problem is that my tests (run from command line) trigger #valueWithin:onTimeout: and the protected block (the block calling #valueWithin:onTimeout:) would always timed out for the first test as resuming the watchdog in #valueWithin:onTimeout: allows another runnable process at the same priority as the active process to be run. I'm not very familiar with Pharo's process framework nor with processes in general so I would like to discuss the problem. Question 1: Is it a bug ? Just a brief answer: Processes on the same priority are scheduled cooperatively. So, no, it is not a bug. Only processes of different priority are scheduled preemptively. So, it is ‘by design’ and the expected behavior (which some parts of the system rely on). Best regards Stefan -- Stefan Marr INRIA Lille - Nord Europe http://stefan-marr.de/research/
Re: [Pharo-dev] About inspectors
Thanks. I was looking for something like that! I will check it and get back to you. Doru On Tue, Mar 11, 2014 at 10:42 AM, Guillermo Polito guillermopol...@gmail.com wrote: Doru, for the DBXTalk inspector, maybe it is useful for you this package: http://www.smalltalkhub.com/#!/~DBXTalk/DBXDatabaseModel/ That allows to retrieve database schema metadata in a polymorphic way :) On Tue, Mar 11, 2014 at 7:43 AM, Tudor Girba tu...@tudorgirba.com wrote: Thank you. In this case yes, it blurs the line between an SQL Editor and the inspector. And between a table and an Excel code editor. But, here is another blurred line between the file browser and the inspector: http://www.humane-assessment.com/blog/browsing-files-with-gtinspector-video/ The GTInspector blurs all sorts of lines and it even empowers you to blur your own lines :). Just a note: the GToolkit is also the work of Andrei. Doru On Mon, Mar 10, 2014 at 8:01 PM, Esteban A. Maringolo emaring...@gmail.com wrote: Excellent Tudor! Very impressive. It blurs the line between a the Smalltalk tools and an SQL Editor. Esteban A. Maringolo 2014-03-10 12:15 GMT-03:00 Alexandre Bergel alexandre.ber...@me.com: Yes! We have Roassal 2 which is pretty well advanced already. We would like to announce Roassal2 the way its deserve: with fireworks and a big fanfare. The coming months will be full of surprises. Alexandre On Mar 10, 2014, at 9:59 AM, Sven Van Caekenberghe s...@stfx.eu wrote: Alex, On 10 Mar 2014, at 13:54, Alexandre Bergel alexandre.ber...@me.com wrote: Yesterday evening I watched the Wolfram video. I think we can produce Pharo-based video as impressive as what this strange guy did. Please do ! Visualization and marketing is important indeed. Sven -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. -- www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-dev] Sort by property
Hello, @Uko Well I implemented Symbolvalue:value: in a similar fashion than Symbolvalue: for 'aCollection collect: #aSymbol'. But that's not a perfect solution for sure. @Camille I used PluggableSet and PluggableDictionary in my project and they were so slow that in the end I implemented my own collection. It will be a real alternative when we will have clean blocks. (For that we need to merge with Cog's trunk which includes merging Spur)... 2014-03-11 10:45 GMT+01:00 Yuriy Tymchuk yuriy.tymc...@me.com: On 11 Mar 2014, at 10:19, Clément Bera bera.clem...@gmail.com wrote: Hello, [ Note: So in the default Pharo the method is named #sort: not #sortByProp: or #sortBy: but it's a detail ] Yes, my mistake, I was misguided by #isSortedBy: Now #sortByProp: is my own example method that accepts a block and executes it for each sortable item and then the result is compared. I don't like the idea to implement #value:value: for a symbol because it caries a bit of a logic inside it. Uko I like this idea because I also have always the problem. So I would like to be able to do: projects sort: #creationDate The implementation would be, in a similar fashion to how Symbolvalue: is implemented for aCollection collect: #isPlague : Symbolvalue: val1 value: val2 ^ (val1 perform: self) = (val2 perform: self) Then : (#( 10 42 31 23 90 87 65) collect: #asValueHolder) sort: #value Answers: an Array(a NewValueHolder[ 10 ] a NewValueHolder[ 23 ] a NewValueHolder[ 31 ] a NewValueHolder[ 42 ] a NewValueHolder[ 65 ] a NewValueHolder[ 87 ] a NewValueHolder[ 90 ]) which is correct :-). However I do not like: projects sort: [ :proj | proj author birthDate ] If you allow that where is the limit to the thing you want to allow ? In addition, I do not see any nice implementation and you could just implement in project ProjectauthorBirthDate ^ self author birthDate Best, Clement 2014-03-11 9:19 GMT+01:00 Yuriy Tymchuk yuriy.tymc...@me.com: Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I'm wrong, but as I've told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko
[Pharo-dev] Touch Events VM changes
As we move from mouse-keyboard devices to touch-based ones, it would be nice if we could unify touch development across the different Pharo platforms (iOS, Android, Windows 8, Linux, etc.), so that we can start to build touch-aware widgets and frameworks. Currently, there's a lot of interest but no unified movement. For instance, I've got a very nice multi-touch 27 computer that I run in Linux. I develop the applications in Pharo but I currently use a hack to get the touch events: I use OSProcess to start the mtdev2tuio application that takes touch input and sends it via TUIO. I then use a UDP socket to read the events on Pharo. If I am to share my work, I need to get beyond the hack. I (or rather Igor as I watched) investigated the possibility of using NativeBoost calls to do the same, but it would not work since mtdev2tuio has to run as superuser, meaning Pharo would have to run as superuser. We came to the conclusion that this must be a VM-level change. I'm not a VM hacker but would like to reach the people who maintain the linux and windows VM to see if this might not be a reasonable addition to the standard VM. There does seem to be standard support for touch events in XFree86, so it shouldn't be too large a change on Linux. I assume that Windows 8 similarly makes touch events available. Is this the right place to ask or is there another mailing list (e.g., the cog-vm)? Cheers, Jeff -- Jochen Jeff Rick, Ph.D. http://www.je77.com/ Skype ID: jochenrick
Re: [Pharo-dev] Touch Events VM changes
Hi, I agree that we need a unified event model. Now… our vision is to solve that in image side, not in vm (and vm should send the raw events “as is”). The reason of why we want it in image is easy: image means pharo, and it means more hands (or eyes) over it. Then is easier to maintain :) Anyway, we are slowly working on it (See Igor Ronnie work around OSWindow). But is probably too slow :) Esteban On 11 Mar 2014, at 11:37, J.F. Rick s...@je77.com wrote: As we move from mouse-keyboard devices to touch-based ones, it would be nice if we could unify touch development across the different Pharo platforms (iOS, Android, Windows 8, Linux, etc.), so that we can start to build touch-aware widgets and frameworks. Currently, there's a lot of interest but no unified movement. For instance, I've got a very nice multi-touch 27 computer that I run in Linux. I develop the applications in Pharo but I currently use a hack to get the touch events: I use OSProcess to start the mtdev2tuio application that takes touch input and sends it via TUIO. I then use a UDP socket to read the events on Pharo. If I am to share my work, I need to get beyond the hack. I (or rather Igor as I watched) investigated the possibility of using NativeBoost calls to do the same, but it would not work since mtdev2tuio has to run as superuser, meaning Pharo would have to run as superuser. We came to the conclusion that this must be a VM-level change. I'm not a VM hacker but would like to reach the people who maintain the linux and windows VM to see if this might not be a reasonable addition to the standard VM. There does seem to be standard support for touch events in XFree86, so it shouldn't be too large a change on Linux. I assume that Windows 8 similarly makes touch events available. Is this the right place to ask or is there another mailing list (e.g., the cog-vm)? Cheers, Jeff -- Jochen Jeff Rick, Ph.D. http://www.je77.com/ Skype ID: jochenrick
Re: [Pharo-dev] Touch Events VM changes
2014-03-11 10:37 GMT+00:00 J.F. Rick s...@je77.com: As we move from mouse-keyboard devices to touch-based ones I certainly hope that we refers to a small group of people, unless we get onscreen keyboards as good as physical ones, feedback included. The same goes for touch versus physical pointer :) Cheers, Sergi
Re: [Pharo-dev] Touch Events VM changes
Definitely agreed on the strategy of processing the raw events on the image side as that will be much more flexible. But, we still need the VM to send the raw events. I'll check on the vm-dev list. I think I'm already subscribed to it. Cheers, Jeff On Tue, Mar 11, 2014 at 12:03 PM, Esteban Lorenzano esteba...@gmail.comwrote: Hi, I agree that we need a unified event model. Now... our vision is to solve that in image side, not in vm (and vm should send the raw events as is). The reason of why we want it in image is easy: image means pharo, and it means more hands (or eyes) over it. Then is easier to maintain :) Anyway, we are slowly working on it (See Igor Ronnie work around OSWindow). But is probably too slow :) Esteban On 11 Mar 2014, at 11:37, J.F. Rick s...@je77.com wrote: As we move from mouse-keyboard devices to touch-based ones, it would be nice if we could unify touch development across the different Pharo platforms (iOS, Android, Windows 8, Linux, etc.), so that we can start to build touch-aware widgets and frameworks. Currently, there's a lot of interest but no unified movement. For instance, I've got a very nice multi-touch 27 computer that I run in Linux. I develop the applications in Pharo but I currently use a hack to get the touch events: I use OSProcess to start the mtdev2tuio application that takes touch input and sends it via TUIO. I then use a UDP socket to read the events on Pharo. If I am to share my work, I need to get beyond the hack. I (or rather Igor as I watched) investigated the possibility of using NativeBoost calls to do the same, but it would not work since mtdev2tuio has to run as superuser, meaning Pharo would have to run as superuser. We came to the conclusion that this must be a VM-level change. I'm not a VM hacker but would like to reach the people who maintain the linux and windows VM to see if this might not be a reasonable addition to the standard VM. There does seem to be standard support for touch events in XFree86, so it shouldn't be too large a change on Linux. I assume that Windows 8 similarly makes touch events available. Is this the right place to ask or is there another mailing list (e.g., the cog-vm)? Cheers, Jeff -- Jochen Jeff Rick, Ph.D. http://www.je77.com/ Skype ID: jochenrick -- Jochen Jeff Rick, Ph.D. http://www.je77.com/ Skype ID: jochenrick
Re: [Pharo-dev] Touch Events VM changes
Hi Sergi, Based on my experience developing touch interfaces since 2007, I believe in touch. I believe it will be the future of interfaces and I believe it can be better than mouse-keyboard interfaces. That said, it is not there yet. Now is the time to innovate and get it there so that touch interfaces won't be poor replicas of their desktop forebears. Currently, text entry is a real problem for touch exclusive devices, but there is progress being made on that front. We don't have the answer yet but I think it will be a significantly different landscape in five years. In regards to touch vs physical pointers, this is not as large of a problem as people make it out to be. It is just that our widgets tend to be created for mouse-based interfaces and therefore don't transition well to touch. Interfaces designed with touch in mind can be just as smooth (if not smoother) as mouse-based interfaces. You just have to take advantage of what touch does well (faster, more precise routes; multi-touch gestures; bimanual interaction) and stay clear of things it does poorly (precise touch down, covering the target with the finger). Cheers, Jeff On Tue, Mar 11, 2014 at 12:34 PM, Sergi Reyner sergi.rey...@gmail.comwrote: 2014-03-11 10:37 GMT+00:00 J.F. Rick s...@je77.com: As we move from mouse-keyboard devices to touch-based ones I certainly hope that we refers to a small group of people, unless we get onscreen keyboards as good as physical ones, feedback included. The same goes for touch versus physical pointer :) Cheers, Sergi -- Jochen Jeff Rick, Ph.D. http://www.je77.com/ Skype ID: jochenrick
[Pharo-dev] Access to MetaRepoForPharo30
Hi guys, can you add me as a contributor to the MetaRepoForPharo30 project? My sthub user is gcotelli Gabriel
[Pharo-dev] [pharo-project/pharo-core]
Branch: refs/tags/30793 Home: https://github.com/pharo-project/pharo-core
[Pharo-dev] [pharo-project/pharo-core] 8418a3: 30793
Branch: refs/heads/3.0 Home: https://github.com/pharo-project/pharo-core Commit: 8418a3fb5bba1056099d38b5e6759db327437dea https://github.com/pharo-project/pharo-core/commit/8418a3fb5bba1056099d38b5e6759db327437dea Author: Jenkins Build Server bo...@pharo-project.org Date: 2014-03-11 (Tue, 11 Mar 2014) Changed paths: M Kernel.package/ContextPart.class/instance/controlling/runUntilErrorOrReturnFrom_.st A OpalCompiler-Core.package/OCASTTranslatorForEffect.class/instance/visitor-double dispatching/visitLiteralArrayNode_.st A ScriptLoader30.package/ScriptLoader.class/instance/pharo - scripts/script446.st A ScriptLoader30.package/ScriptLoader.class/instance/pharo - updates/update30793.st M ScriptLoader30.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st A Spec-Debugger.package/SpecDebugger.class/instance/updating/updateContextInspectorFromContext_.st M Spec-Debugger.package/SpecDebugger.class/instance/updating/updateInspectorsFromContext_.st A Spec-Debugger.package/SpecDebugger.class/instance/updating/updateReceiverInspectorFromContext_.st Log Message: --- 30793 5041 ContextPart#runUntilErrorOrReturnFrom: https://pharo.fogbugz.com/f/cases/5041 12722 #ifNil:#ifNotNil: must return a value? https://pharo.fogbugz.com/f/cases/12722 12699 Debugger clears selection on update https://pharo.fogbugz.com/f/cases/12699 http://files.pharo.org/image/30/30793.zip
Re: [Pharo-dev] [Pharo-users] Tiling Window Manager in 3.0: working but still issues with WorldMorph
Thanks a lot Phil. I will try to have a look. Laurent Le samedi 8 mars 2014, 11:57:30 p...@highoctane.be a écrit : TWM works in 3.0 after some work on icons and updating menus. Gofer new smalltalkhubUser: 'LaurentLaffont' project: 'TilingWindowManager'; configuration; load. ((Smalltalk at:#ConfigurationOfTilingWindowManager) project version: '3.0') load You can also use ((Smalltalk at:#ConfigurationOfTilingWindowManager) project version: #development) load but this will for sure change over time. There is the World management icon which is still there and it looks like it can create worlds but switching between them just breaks havoc. Maybe should we just remove that feature from TWM as 3.0 doesn't seem to be multiworld friendly. Nothing done on tests nor themeing (which appears to be not that working well in 3.0 either due to theming changes); At least the thing is back :-) [I missed it...] Phil
Re: [Pharo-dev] Touch Events VM changes
Jeff, since you running linux you can look at what we have done with Ronie not long ago. Basically we changed VM and removed all window/event management code and instead do everything at image side. I think it would be good if you can try and add multi-touch events support to the code. If you wanna try, you need to build new VM first, and follow this: https://pharo.fogbugz.com/f/cases/12743/OSWindow-integration Then you can look at OSWindow package (its X11 part) and see what is needed to support multi-touch events. You should build VM from sources taken from here: https://github.com/ronsaldo/pharo-vm On 11 March 2014 11:37, J.F. Rick s...@je77.com wrote: As we move from mouse-keyboard devices to touch-based ones, it would be nice if we could unify touch development across the different Pharo platforms (iOS, Android, Windows 8, Linux, etc.), so that we can start to build touch-aware widgets and frameworks. Currently, there's a lot of interest but no unified movement. For instance, I've got a very nice multi-touch 27 computer that I run in Linux. I develop the applications in Pharo but I currently use a hack to get the touch events: I use OSProcess to start the mtdev2tuio application that takes touch input and sends it via TUIO. I then use a UDP socket to read the events on Pharo. If I am to share my work, I need to get beyond the hack. I (or rather Igor as I watched) investigated the possibility of using NativeBoost calls to do the same, but it would not work since mtdev2tuio has to run as superuser, meaning Pharo would have to run as superuser. We came to the conclusion that this must be a VM-level change. I'm not a VM hacker but would like to reach the people who maintain the linux and windows VM to see if this might not be a reasonable addition to the standard VM. There does seem to be standard support for touch events in XFree86, so it shouldn't be too large a change on Linux. I assume that Windows 8 similarly makes touch events available. Is this the right place to ask or is there another mailing list (e.g., the cog-vm)? Cheers, Jeff -- Jochen Jeff Rick, Ph.D. http://www.je77.com/ Skype ID: jochenrick -- Best regards, Igor Stasenko.
Re: [Pharo-dev] Touch Events VM changes
2014-03-11 11:54 GMT+00:00 J.F. Rick s...@je77.com: Hi Sergi, Based on my experience developing touch interfaces since 2007, I believe in touch. Don´t get me wrong, I like touch and non-traditional interfaces in general. In fact there are five android devices at home, counting phones and tablets. I also experimented with voice and webcam control for my home theatre. I just think that they are optimal for some scenarios and not-so-optimal for others, and that it wouldn´t be an improvement to make all devices touch-only. As you yourself point out: You just have to take advantage of what touch does well (faster, more precise routes; multi-touch gestures; bimanual interaction) and stay clear of things it does poorly (precise touch down, covering the target with the finger). Both have their strengths and weaknesses. Mice have multiple buttons (I use the wheel and the back/forward buttons a lot, both for those functions and as configurable controls in certain games) and are easily identifiable as distinct input devices, while touch interfaces allow more direct (not necessarily precise) control over the actions, taking things like pointer acceleration out of the equation. Almost everyone can draw a lowercase 'g' on a touch screen, but doing it with a mouse takes some skill (well, and a decent mouse). As a more concrete use case, trying to craft some pixel art in a touch device can quickly become tedious. I certainly wouldn´t mind at all having one or two tactile screens in my desk. That said, I once had an interesting conversation with a costumer, in which she told me that she couldn´t play World of Warcraft with her tactile screen because random passing-by insects kept pressing her skills/spells buttons at the worst times :) Cheers, Sergi
Re: [Pharo-dev] [ANN] RenoirSt 1.0.0 Release for Pharo 3.0
The usage of Github pages makes it look like http://spec.st/ :P Ben On 11 Mar 2014, at 14:13, Gabriel Cotelli g.cote...@gmail.com wrote: Hi, I'm announcing the first official release of RenoirSt, a DSL enabling programmatic cascading style sheet generation for Pharo. For the impatient, you can load it in your 3.0 image evaluating: Gofer it url: 'http://smalltalkhub.com/mc/gcotelli/RenoirSt/main'; configurationOf: 'RenoirSt'; loadStable or download a ready to use image from the Contribution CI Server ( a ConfigurationBrowser option comming soon). Visit the project page and GitHub repository for more information on the supported and planned features, and check-out the online tutorial. I hope you find it useful. Feel free to ask any questions, suggest ideas and improvements, or report bugs (the issue tracker is in GitHub). Gabriel
Re: [Pharo-dev] Access to MetaRepoForPharo30
On Tue, Mar 11, 2014 at 12:53 PM, Gabriel Cotelli g.cote...@gmail.com wrote: Hi guys, can you add me as a contributor to the MetaRepoForPharo30 project? My sthub user is gcotelli done -- Damien Cassou http://damiencassou.seasidehosting.st Success is the ability to go from one failure to another without losing enthusiasm. Winston Churchill
Re: [Pharo-dev] Access to MetaRepoForPharo30
Can you add me also ? Thank you. Regards, On Tue, Mar 11, 2014 at 12:53 PM, Gabriel Cotelli g.cote...@gmail.com wrote: Hi guys, can you add me as a contributor to the MetaRepoForPharo30 project? My sthub user is gcotelli Gabriel -- Serge Stinckwich UCBN UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://www.doesnotunderstand.org/
Re: [Pharo-dev] Access to MetaRepoForPharo30
On Tue, Mar 11, 2014 at 2:50 PM, Serge Stinckwich serge.stinckw...@gmail.com wrote: Can you add me also ? done -- Damien Cassou http://damiencassou.seasidehosting.st Success is the ability to go from one failure to another without losing enthusiasm. Winston Churchill
Re: [Pharo-dev] Sort by property
hi Uko, For Roassal, we have a #sortedAs: defined on all collections -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= SequenceableCollectionsortedAs: aSortBlockOrSymbol Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Return a new collection. This method does not do a side effect | aSortedCollection aSortBlock | aSortedCollection := SortedCollection new: self size. aSortBlock := aSortBlockOrSymbol isSymbol ifTrue: [ [:a :b | |t1 t2| t1 := (a perform: aSortBlockOrSymbol). t2 := (b perform: aSortBlockOrSymbol). ((t1 isKindOf: Boolean) and: [t2 isKindOf: Boolean]) ifTrue: [ t1 ] ifFalse: [ t1 t2 ] ] ] ifFalse: [ (aSortBlockOrSymbol numArgs = 1) ifTrue: [ [ :v1 :v2 | (aSortBlockOrSymbol value: v1) (aSortBlockOrSymbol value: v2) ] ] ifFalse: [ aSortBlockOrSymbol ] ]. aSortedCollection sortBlock: aSortBlock. aSortedCollection addAll: self. ^ aSortedCollection -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= You can use it for example: (1 to: 4) sortedAs: #odd = a SortedCollection(1 3 2 4) Collection withAllSubclasses sortedAs: #numberOfMethods = a SortedCollection(HashBag IdentityHashBag …) This is really handy. It should be part of Pharo I believe. Cheers, Alexandre On Mar 11, 2014, at 5:19 AM, Yuriy Tymchuk yuriy.tymc...@me.com wrote: Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I’m wrong, but as I’ve told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Re: [Pharo-dev] how can I test soundplugin?
On 11 Mar 2014, at 01:06, b...@openinworld.com wrote: J.F. Rick wrote: Yes, load PharoSound and do the following: SoundPlayer boinkScale. SoundService soundEnabled. SoundService registeredClasses. SoundService reset. BaseSoundSystem soundEnabled: true. SoundService default. ss := SoundService default new. ss class soundEnabled. ss class soundEnabled: true. ss beep. (FMSound lowMajorScaleOn: FMSound pluckedElecBass) play. (FMSound lowMajorScaleOn: FMSound randomWeird1) play. (FMSound majorScaleOn: FMSound oboe1) play. FMSound testFMInteractively. (SampledSound bachFugueVoice2On: SampledSound new) play. SoundPlayer shutDown SoundPlayer boinkScale. SoundService soundEnabled. BaseSoundSystem soundEnabled: true. FMSound testFMInteractively. sound := FMSound pitch: 'a4' dur: 1.0 loudness: 0.4. sound play. SoundService default new class soundEnabled: true. (FMSound pitch: 'a4' dur: 1.0 loudness: 0.4) play -- Jochen Jeff Rick, Ph.D. http://www.je77.com/ Skype ID: jochenrick On Mon, Mar 10, 2014 at 5:33 PM, Esteban Lorenzano esteba...@gmail.com wrote: Hi, I’m working on the SoundPlugin (finally!) and I would like to know how can I test that is working. Is there a package or a script that I can execute to see if it is working? cheers, Esteban That is really great news Esteban. Hope that includes Windows :) working is working :) Does the SoundPlugin have sound input? no idea :) I just going to make sure the plugins works… but never worked on sound :P Esteban It might be useful on the CI virtual machines to have an audio loopback so the image can test that it receives what it sends. * http://superuser.com/questions/55580/virtual-sound-card-driver-for-windows * http://forum.virtualaudiostreaming.net/topic24.html * http://www.pcworld.idg.com.au/article/73458/audio_-_looping_back_your_sound_card_-_no_cables_required/ * http://www.e2esoft.cn/vsc/ I'd be interested in working on that aspect. cheers -ben
Re: [Pharo-dev] how can I test soundplugin?
so… I tested this (in mac, still does not tried in other platforms). On 10 Mar 2014, at 19:33, J.F. Rick s...@je77.com wrote: Yes, load PharoSound and do the following: SoundPlayer boinkScale. SoundService soundEnabled. SoundService registeredClasses. SoundService reset. until here works. BaseSoundSystem soundEnabled: true. SoundService default. ss := SoundService default new. ss class soundEnabled. ss class soundEnabled: true. ss beep. until here does not works, but looks like a package problem, not a plugin one. (FMSound lowMajorScaleOn: FMSound pluckedElecBass) play. (FMSound lowMajorScaleOn: FMSound randomWeird1) play. (FMSound majorScaleOn: FMSound oboe1) play. FMSound testFMInteractively. (SampledSound bachFugueVoice2On: SampledSound new) play. SoundPlayer shutDown all of this works. SoundPlayer boinkScale. SoundService soundEnabled. BaseSoundSystem soundEnabled: true. FMSound testFMInteractively. sound := FMSound pitch: 'a4' dur: 1.0 loudness: 0.4. sound play. all of this too. SoundService default new class soundEnabled: true. (FMSound pitch: 'a4' dur: 1.0 loudness: 0.4) play and this too (which is the same as before). So… I assume is working. I will try in linux and windows now. Esteban On Mon, Mar 10, 2014 at 5:33 PM, Esteban Lorenzano esteba...@gmail.com wrote: Hi, I’m working on the SoundPlugin (finally!) and I would like to know how can I test that is working. Is there a package or a script that I can execute to see if it is working? cheers, Esteban -- Jochen Jeff Rick, Ph.D. http://www.je77.com/ Skype ID: jochenrick
Re: [Pharo-dev] About inspectors
Tudor Thanks for amazing work, just report a trouble , i follow the http://www.humane-assessment.com/blog/dynamic-exploration-of-a-postgres-db-with-the-gtinspector/ Instructions and trying with one postgres database, one table with date fields fire problem's SqNumberParser class is missing in moose image, and the postgres use this to read dates or timestamps fields . best regards jmdc On Sun, Mar 9, 2014 at 7:06 PM, Tudor Girba tu...@tudorgirba.com wrote: Thanks for the interest. I added now a new blog post in which I detail an investigation scenario of a Postgres DB with the GTInspector: http://www.humane-assessment.com/blog/dynamic-exploration-of-a-postgres-db-with-the-gtinspector/ The post includes a video that kind of gets you through the most important parts: - use the playground - query the DB and preview the results through dedicated presentations - navigate through objects and code to learn the API - build a visualization in place and continue exploration - extend the inspector with a dedicated presentation Please let me know what you think. Cheers, Doru On Sat, Mar 8, 2014 at 8:48 AM, p...@highoctane.be p...@highoctane.bewrote: Doru, Where to look on your blog for a view on the essentials of this? I see http://www.humane-assessment.com/blog/making-the-pharo-settings-browser-open-faster-with-gtinspector/for example. A video? I look at the blog and vids but it is a bit hard to find a basic demo to grasp things. TIA Phil On Sat, Mar 8, 2014 at 8:16 AM, Tudor Girba tu...@tudorgirba.com wrote: I hope not. What are we trying to optimize? If you look closely at the GT work, you might notice that it is not just a tool, it's a whole new philosophy for coding. The EyeInspector picked only one aspect out of a whole. One high goal is to change programming such that the inspector + debugger to capture most of the coding experience. This is what live means. Right now, in the default Pharo we only code small things in the debugger and nothing in the inspector. We work on the idea of a moldable IDE that will change all that. Let's look at some facts. Right now, in my image I have 75 different extensions for GTInspector. And the total amount of lines of code has barely passed 1000 LOC (including all utility code). These are not just independent views, but they are combinable. The amount of use cases supported span a wide range: querying source code, visualizing performance, navigating file system, querying DB, and more (read the posts from humane-assessment.com for hints in this direction). We programmed most of these extensions from within the inspector both because it's fun and because it's significantly more productive. And I am not the only one. This power is not serendipity, it's by design. And we only started to untap this potential. There is still a long way for the concept of inspector and I believe there is a large payoff in it, too. Optimizing for a small thing now should not be the way to go :) Cheers, Doru On Fri, Mar 7, 2014 at 11:23 PM, Sven Van Caekenberghe s...@stfx.euwrote: Well I would hope that some kind of convergence would be possible in the future. Maybe some kind of abstract meta description like magritte, that different tools can use. On 07 Mar 2014, at 16:43, Yuriy Tymchuk yuriy.tymc...@me.com wrote: Hi everyone. This day I've attended Moose dojo and I'm pretty impressed with the possibilities of GTInspector. The one thing that I've noticed is that both GTInspactor and EyeInspector support custom inspections for objects. I'm wandering if we can come up with a common protocol to give an object specific infector view, and not develop a separate thing for each inspector. Uko -- www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-dev] About inspectors
Tudor what steps I need to follow to load the file-exploration example of video ? any ConfigurationOfxx . package, monticello repository etc... best jmdc On Tue, Mar 11, 2014 at 2:11 PM, Juan smalltalker.marc...@gmail.com wrote: Tudor Thanks for amazing work, just report a trouble , i follow the http://www.humane-assessment.com/blog/dynamic-exploration-of-a-postgres-db-with-the-gtinspector/ Instructions and trying with one postgres database, one table with date fields fire problem's SqNumberParser class is missing in moose image, and the postgres use this to read dates or timestamps fields . best regards jmdc On Sun, Mar 9, 2014 at 7:06 PM, Tudor Girba tu...@tudorgirba.com wrote: Thanks for the interest. I added now a new blog post in which I detail an investigation scenario of a Postgres DB with the GTInspector: http://www.humane-assessment.com/blog/dynamic-exploration-of-a-postgres-db-with-the-gtinspector/ The post includes a video that kind of gets you through the most important parts: - use the playground - query the DB and preview the results through dedicated presentations - navigate through objects and code to learn the API - build a visualization in place and continue exploration - extend the inspector with a dedicated presentation Please let me know what you think. Cheers, Doru On Sat, Mar 8, 2014 at 8:48 AM, p...@highoctane.be p...@highoctane.bewrote: Doru, Where to look on your blog for a view on the essentials of this? I see http://www.humane-assessment.com/blog/making-the-pharo-settings-browser-open-faster-with-gtinspector/for example. A video? I look at the blog and vids but it is a bit hard to find a basic demo to grasp things. TIA Phil On Sat, Mar 8, 2014 at 8:16 AM, Tudor Girba tu...@tudorgirba.comwrote: I hope not. What are we trying to optimize? If you look closely at the GT work, you might notice that it is not just a tool, it's a whole new philosophy for coding. The EyeInspector picked only one aspect out of a whole. One high goal is to change programming such that the inspector + debugger to capture most of the coding experience. This is what live means. Right now, in the default Pharo we only code small things in the debugger and nothing in the inspector. We work on the idea of a moldable IDE that will change all that. Let's look at some facts. Right now, in my image I have 75 different extensions for GTInspector. And the total amount of lines of code has barely passed 1000 LOC (including all utility code). These are not just independent views, but they are combinable. The amount of use cases supported span a wide range: querying source code, visualizing performance, navigating file system, querying DB, and more (read the posts from humane-assessment.com for hints in this direction). We programmed most of these extensions from within the inspector both because it's fun and because it's significantly more productive. And I am not the only one. This power is not serendipity, it's by design. And we only started to untap this potential. There is still a long way for the concept of inspector and I believe there is a large payoff in it, too. Optimizing for a small thing now should not be the way to go :) Cheers, Doru On Fri, Mar 7, 2014 at 11:23 PM, Sven Van Caekenberghe s...@stfx.euwrote: Well I would hope that some kind of convergence would be possible in the future. Maybe some kind of abstract meta description like magritte, that different tools can use. On 07 Mar 2014, at 16:43, Yuriy Tymchuk yuriy.tymc...@me.com wrote: Hi everyone. This day I've attended Moose dojo and I'm pretty impressed with the possibilities of GTInspector. The one thing that I've noticed is that both GTInspactor and EyeInspector support custom inspections for objects. I'm wandering if we can come up with a common protocol to give an object specific infector view, and not develop a separate thing for each inspector. Uko -- www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-dev] Sort by property
Hi Alexandre, IMO the isKindOf:, apart from being ugly, will hurt performance badly. Why not apply aSortBlockOrSymbol to the first element and then choose the block appropriately? e.g. aSortBlockOrSymbol isSymbol ifTrue: [(#(true false) includes: (self first perform: aSortBlockOrSymbol) ifTrue: [[:a :b | (a perform: aSortBlockOrSymbol)]] ifFalse: [[:a :b | (a perform: aSortBlockOrSymbol) (b perform: aSortBlockOrSymbol)]]] ... Nicer to read and faster, no? On Tue, Mar 11, 2014 at 8:17 AM, Alexandre Bergel alexandre.ber...@me.comwrote: hi Uko, For Roassal, we have a #sortedAs: defined on all collections -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= SequenceableCollectionsortedAs: aSortBlockOrSymbol Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Return a new collection. This method does not do a side effect | aSortedCollection aSortBlock | aSortedCollection := SortedCollection new: self size. aSortBlock := aSortBlockOrSymbol isSymbol ifTrue: [ [:a :b | |t1 t2| t1 := (a perform: aSortBlockOrSymbol). t2 := (b perform: aSortBlockOrSymbol). ((t1 isKindOf: Boolean) and: [t2 isKindOf: Boolean]) ifTrue: [ t1 ] ifFalse: [ t1 t2 ] ] ] ifFalse: [ (aSortBlockOrSymbol numArgs = 1) ifTrue: [ [ :v1 :v2 | (aSortBlockOrSymbol value: v1) (aSortBlockOrSymbol value: v2) ] ] ifFalse: [ aSortBlockOrSymbol ] ]. aSortedCollection sortBlock: aSortBlock. aSortedCollection addAll: self. ^ aSortedCollection -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= You can use it for example: (1 to: 4) sortedAs: #odd = a SortedCollection(1 3 2 4) Collection withAllSubclasses sortedAs: #numberOfMethods = a SortedCollection(HashBag IdentityHashBag ...) This is really handy. It should be part of Pharo I believe. Cheers, Alexandre On Mar 11, 2014, at 5:19 AM, Yuriy Tymchuk yuriy.tymc...@me.com wrote: Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I'm wrong, but as I've told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. -- best, Eliot
Re: [Pharo-dev] About inspectors
Hi Juan, Just download the latest Moose image and you can explore the file system. Cheers, Doru On Tue, Mar 11, 2014 at 6:17 PM, Juan smalltalker.marc...@gmail.com wrote: Tudor what steps I need to follow to load the file-exploration example of video ? any ConfigurationOfxx . package, monticello repository etc... best jmdc On Tue, Mar 11, 2014 at 2:11 PM, Juan smalltalker.marc...@gmail.comwrote: Tudor Thanks for amazing work, just report a trouble , i follow the http://www.humane-assessment.com/blog/dynamic-exploration-of-a-postgres-db-with-the-gtinspector/ Instructions and trying with one postgres database, one table with date fields fire problem's SqNumberParser class is missing in moose image, and the postgres use this to read dates or timestamps fields . best regards jmdc On Sun, Mar 9, 2014 at 7:06 PM, Tudor Girba tu...@tudorgirba.com wrote: Thanks for the interest. I added now a new blog post in which I detail an investigation scenario of a Postgres DB with the GTInspector: http://www.humane-assessment.com/blog/dynamic-exploration-of-a-postgres-db-with-the-gtinspector/ The post includes a video that kind of gets you through the most important parts: - use the playground - query the DB and preview the results through dedicated presentations - navigate through objects and code to learn the API - build a visualization in place and continue exploration - extend the inspector with a dedicated presentation Please let me know what you think. Cheers, Doru On Sat, Mar 8, 2014 at 8:48 AM, p...@highoctane.be p...@highoctane.bewrote: Doru, Where to look on your blog for a view on the essentials of this? I see http://www.humane-assessment.com/blog/making-the-pharo-settings-browser-open-faster-with-gtinspector/for example. A video? I look at the blog and vids but it is a bit hard to find a basic demo to grasp things. TIA Phil On Sat, Mar 8, 2014 at 8:16 AM, Tudor Girba tu...@tudorgirba.comwrote: I hope not. What are we trying to optimize? If you look closely at the GT work, you might notice that it is not just a tool, it's a whole new philosophy for coding. The EyeInspector picked only one aspect out of a whole. One high goal is to change programming such that the inspector + debugger to capture most of the coding experience. This is what live means. Right now, in the default Pharo we only code small things in the debugger and nothing in the inspector. We work on the idea of a moldable IDE that will change all that. Let's look at some facts. Right now, in my image I have 75 different extensions for GTInspector. And the total amount of lines of code has barely passed 1000 LOC (including all utility code). These are not just independent views, but they are combinable. The amount of use cases supported span a wide range: querying source code, visualizing performance, navigating file system, querying DB, and more (read the posts from humane-assessment.com for hints in this direction). We programmed most of these extensions from within the inspector both because it's fun and because it's significantly more productive. And I am not the only one. This power is not serendipity, it's by design. And we only started to untap this potential. There is still a long way for the concept of inspector and I believe there is a large payoff in it, too. Optimizing for a small thing now should not be the way to go :) Cheers, Doru On Fri, Mar 7, 2014 at 11:23 PM, Sven Van Caekenberghe s...@stfx.euwrote: Well I would hope that some kind of convergence would be possible in the future. Maybe some kind of abstract meta description like magritte, that different tools can use. On 07 Mar 2014, at 16:43, Yuriy Tymchuk yuriy.tymc...@me.com wrote: Hi everyone. This day I've attended Moose dojo and I'm pretty impressed with the possibilities of GTInspector. The one thing that I've noticed is that both GTInspactor and EyeInspector support custom inspections for objects. I'm wandering if we can come up with a common protocol to give an object specific infector view, and not develop a separate thing for each inspector. Uko -- www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-dev] Sort by property
On Tue, Mar 11, 2014 at 12:19 PM, Eliot Miranda eliot.mira...@gmail.comwrote: Hi Alexandre, IMO the isKindOf:, apart from being ugly, will hurt performance badly. Why not apply aSortBlockOrSymbol to the first element and then choose the block appropriately? e.g. aSortBlockOrSymbol isSymbol ifTrue: [(#(true false) includes: (self first perform: aSortBlockOrSymbol) ifTrue: [[:a :b | (a perform: aSortBlockOrSymbol)]] ifFalse: [[:a :b | (a perform: aSortBlockOrSymbol) (b perform: aSortBlockOrSymbol)]]] ... Nicer to read and faster, no? On Tue, Mar 11, 2014 at 8:17 AM, Alexandre Bergel alexandre.ber...@me.com wrote: hi Uko, For Roassal, we have a #sortedAs: defined on all collections -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= SequenceableCollectionsortedAs: aSortBlockOrSymbol Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Return a new collection. This method does not do a side effect | aSortedCollection aSortBlock | aSortedCollection := SortedCollection new: self size. aSortBlock := aSortBlockOrSymbol isSymbol ifTrue: [ [:a :b | |t1 t2| t1 := (a perform: aSortBlockOrSymbol). t2 := (b perform: aSortBlockOrSymbol). ((t1 isKindOf: Boolean) and: [t2 isKindOf: Boolean]) ifTrue: [ t1 ] ifFalse: [ t1 t2 ] ] ] ifFalse: [ (aSortBlockOrSymbol numArgs = 1) ifTrue: [ [ :v1 :v2 | (aSortBlockOrSymbol value: v1) (aSortBlockOrSymbol value: v2) ] ] ifFalse: [ aSortBlockOrSymbol ] ]. aSortedCollection sortBlock: aSortBlock. aSortedCollection addAll: self. ^ aSortedCollection -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= You can use it for example: (1 to: 4) sortedAs: #odd = a SortedCollection(1 3 2 4) Collection withAllSubclasses sortedAs: #numberOfMethods = a SortedCollection(HashBag IdentityHashBag ...) This is really handy. It should be part of Pharo I believe. Cheers, Alexandre On Mar 11, 2014, at 5:19 AM, Yuriy Tymchuk yuriy.tymc...@me.com wrote: Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I'm wrong, but as I've told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. -- best, Eliot -- best, Eliot SequenceableCollection-sortedAs.st Description: Binary data
Re: [Pharo-dev] Sort by property
and here's one with a better comment that includes examples On Tue, Mar 11, 2014 at 12:19 PM, Eliot Miranda eliot.mira...@gmail.comwrote: Hi Alexandre, IMO the isKindOf:, apart from being ugly, will hurt performance badly. Why not apply aSortBlockOrSymbol to the first element and then choose the block appropriately? e.g. aSortBlockOrSymbol isSymbol ifTrue: [(#(true false) includes: (self first perform: aSortBlockOrSymbol) ifTrue: [[:a :b | (a perform: aSortBlockOrSymbol)]] ifFalse: [[:a :b | (a perform: aSortBlockOrSymbol) (b perform: aSortBlockOrSymbol)]]] ... Nicer to read and faster, no? On Tue, Mar 11, 2014 at 8:17 AM, Alexandre Bergel alexandre.ber...@me.com wrote: hi Uko, For Roassal, we have a #sortedAs: defined on all collections -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= SequenceableCollectionsortedAs: aSortBlockOrSymbol Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Return a new collection. This method does not do a side effect | aSortedCollection aSortBlock | aSortedCollection := SortedCollection new: self size. aSortBlock := aSortBlockOrSymbol isSymbol ifTrue: [ [:a :b | |t1 t2| t1 := (a perform: aSortBlockOrSymbol). t2 := (b perform: aSortBlockOrSymbol). ((t1 isKindOf: Boolean) and: [t2 isKindOf: Boolean]) ifTrue: [ t1 ] ifFalse: [ t1 t2 ] ] ] ifFalse: [ (aSortBlockOrSymbol numArgs = 1) ifTrue: [ [ :v1 :v2 | (aSortBlockOrSymbol value: v1) (aSortBlockOrSymbol value: v2) ] ] ifFalse: [ aSortBlockOrSymbol ] ]. aSortedCollection sortBlock: aSortBlock. aSortedCollection addAll: self. ^ aSortedCollection -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= You can use it for example: (1 to: 4) sortedAs: #odd = a SortedCollection(1 3 2 4) Collection withAllSubclasses sortedAs: #numberOfMethods = a SortedCollection(HashBag IdentityHashBag ...) This is really handy. It should be part of Pharo I believe. Cheers, Alexandre On Mar 11, 2014, at 5:19 AM, Yuriy Tymchuk yuriy.tymc...@me.com wrote: Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I'm wrong, but as I've told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. -- best, Eliot -- best, Eliot SequenceableCollection-sortedAs.st Description: Binary data
Re: [Pharo-dev] [Pharo-users] Phratch one-click
Hi Hilaire, 2014-03-11 17:27 GMT+01:00 Hilaire Fernandes hilaire.fernan...@gmail.com: Hi Jannik, Don't use the change/update event mecanism. This mean a lot of changes in your model. Yes, this is what I understand :) In DrGeo I use a simple loop to update the sketch, but i guess it is more complicated with Pratch as you have parallel threads. In the other hand, is the original Scratch implemented with change/update? If so why it is not as slow? I don't know why, probably due to the evolution of Pharo. But, with JB we found some code that we changed: now it is really faster. It is integrated in Phratch2.0. We also saw a lot of other things to improve, it will come soon. Cheers, Jannik Hilaire Le 06/03/2014 20:42, jannik laval a écrit : Hi Hilaire, Hum, probably this comes from there... Could you explain a bit more how to change it ? Cheers, Jannik 2014-03-05 11:19 GMT+01:00 Hilaire Fernandes hilaire.fernan...@gmail.com mailto:hilaire.fernan...@gmail.com: For event, how is it developed? I remember, when I started developing DrGeo I used the change/update event mecanism. Then I dropped it for a simple linear top/down update of the geometric tree model, it becames much faster after that. Hilaire Le 05/03/2014 10:44, jannik laval a écrit : I think now that we need some profiling. Any expert for that ? -- Dr. Geo http://drgeo.eu -- ~~Jannik Laval~~ École des Mines de Douai Enseignant-chercheur http://www.jannik-laval.eu http://car.mines-douai.fr/ -- Dr. Geo http://drgeo.eu -- ~~Jannik Laval~~ École des Mines de Douai Enseignant-chercheur http://www.jannik-laval.eu http://car.mines-douai.fr/
Re: [Pharo-dev] [ANN] RenoirSt 1.0.0 Release for Pharo 3.0
Gabriel your tutorial is really cool :) Stef On 11 Mar 2014, at 21:04, Pharo4Stef pharo4s...@free.fr wrote: Gabriel I would love to write a chapter based on your tutorial for the next book. Is it ok for you? I can do that during a boring meeting. :) Stef On 11 Mar 2014, at 14:13, Gabriel Cotelli g.cote...@gmail.com wrote: Hi, I'm announcing the first official release of RenoirSt, a DSL enabling programmatic cascading style sheet generation for Pharo. For the impatient, you can load it in your 3.0 image evaluating: Gofer it url: 'http://smalltalkhub.com/mc/gcotelli/RenoirSt/main'; configurationOf: 'RenoirSt'; loadStable or download a ready to use image from the Contribution CI Server ( a ConfigurationBrowser option comming soon). Visit the project page and GitHub repository for more information on the supported and planned features, and check-out the online tutorial. I hope you find it useful. Feel free to ask any questions, suggest ideas and improvements, or report bugs (the issue tracker is in GitHub). Gabriel
Re: [Pharo-dev] Sort by property
Thanks eliot. On 11 Mar 2014, at 20:51, Eliot Miranda eliot.mira...@gmail.com wrote: and here's one with a better comment that includes examples On Tue, Mar 11, 2014 at 12:19 PM, Eliot Miranda eliot.mira...@gmail.com wrote: Hi Alexandre, IMO the isKindOf:, apart from being ugly, will hurt performance badly. Why not apply aSortBlockOrSymbol to the first element and then choose the block appropriately? e.g. aSortBlockOrSymbol isSymbol ifTrue: [(#(true false) includes: (self first perform: aSortBlockOrSymbol) ifTrue: [[:a :b | (a perform: aSortBlockOrSymbol)]] ifFalse: [[:a :b | (a perform: aSortBlockOrSymbol) (b perform: aSortBlockOrSymbol)]]] ... Nicer to read and faster, no? On Tue, Mar 11, 2014 at 8:17 AM, Alexandre Bergel alexandre.ber...@me.com wrote: hi Uko, For Roassal, we have a #sortedAs: defined on all collections -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= SequenceableCollectionsortedAs: aSortBlockOrSymbol Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Return a new collection. This method does not do a side effect | aSortedCollection aSortBlock | aSortedCollection := SortedCollection new: self size. aSortBlock := aSortBlockOrSymbol isSymbol ifTrue: [ [:a :b | |t1 t2| t1 := (a perform: aSortBlockOrSymbol). t2 := (b perform: aSortBlockOrSymbol). ((t1 isKindOf: Boolean) and: [t2 isKindOf: Boolean]) ifTrue: [ t1 ] ifFalse: [ t1 t2 ] ] ] ifFalse: [ (aSortBlockOrSymbol numArgs = 1) ifTrue: [ [ :v1 :v2 | (aSortBlockOrSymbol value: v1) (aSortBlockOrSymbol value: v2) ] ] ifFalse: [ aSortBlockOrSymbol ] ]. aSortedCollection sortBlock: aSortBlock. aSortedCollection addAll: self. ^ aSortedCollection -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= You can use it for example: (1 to: 4) sortedAs: #odd = a SortedCollection(1 3 2 4) Collection withAllSubclasses sortedAs: #numberOfMethods = a SortedCollection(HashBag IdentityHashBag …) This is really handy. It should be part of Pharo I believe. Cheers, Alexandre On Mar 11, 2014, at 5:19 AM, Yuriy Tymchuk yuriy.tymc...@me.com wrote: Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I’m wrong, but as I’ve told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. -- best, Eliot -- best, Eliot SequenceableCollection-sortedAs.st
Re: [Pharo-dev] Sort by property
HiSince Symbol and Blocks are polymorphic could we not simplify the code to be:SequenceableCollectionsortedAs: aSortBlockOrSymbol "Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlockOrSymbol. The receiver cannot be empty. Answer a new collection. This method does not side effect the receiver. e.g. SequenceableCollection withAllSubclasses sortedAs: #name. SequenceableCollection withAllSubclasses sortedAs: [:class | class methodDict size]." | aSortBlock | aSortBlock := (#(true false ) includes: (aSortBlockOrSymbol value: self first))ifTrue: [[:a :b | aSortBlockOrSymbol value: a]]ifFalse: [[:a :b | (aSortBlockOrSymbol value: a) (aSortBlockOrSymbol value: b)]]. ^ (SortedCollection new: self size) sortBlock: aSortBlock; addAll: self; yourself SequenceableCollection-sortedAs.st Description: Binary data CheersCarloOn 12 Mar 2014, at 12:32 AM, Pharo4Stef pharo4s...@free.fr wrote:Thanks eliot.On 11 Mar 2014, at 20:51, Eliot Miranda eliot.mira...@gmail.com wrote:and here's one with a better comment that includes examplesOn Tue, Mar 11, 2014 at 12:19 PM, Eliot Miranda eliot.mira...@gmail.com wrote: Hi Alexandre, IMO the isKindOf:, apart from being ugly, will hurt performance badly. Why not applyaSortBlockOrSymbol to the first element and then choose the block appropriately? e.g. aSortBlockOrSymbol isSymbol ifTrue: [(#(true false) includes: (self first perform:aSortBlockOrSymbol) ifTrue: [[:a :b |(a perform: aSortBlockOrSymbol)]] ifFalse: [[:a :b |(a perform: aSortBlockOrSymbol) (b perform: aSortBlockOrSymbol)]]] ... Nicer to read and faster, no?On Tue, Mar 11, 2014 at 8:17 AM, Alexandre Bergel alexandre.ber...@me.com wrote: hi Uko, For Roassal, we have a #sortedAs: defined on all collections -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= SequenceableCollectionsortedAs: aSortBlockOrSymbol "Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock." "Return a new collection. This method does not do a side effect" | aSortedCollection aSortBlock | aSortedCollection := SortedCollection new: self size. aSortBlock := aSortBlockOrSymbol isSymbol ifTrue: [ [:a :b | |t1 t2| t1 := (a perform: aSortBlockOrSymbol). t2 := (b perform: aSortBlockOrSymbol). ((t1 isKindOf: Boolean) and: [t2 isKindOf: Boolean]) ifTrue: [ t1 ] ifFalse: [ t1 t2 ] ] ] ifFalse: [ (aSortBlockOrSymbol numArgs = 1) ifTrue: [ [ :v1 :v2 | (aSortBlockOrSymbol value: v1) (aSortBlockOrSymbol value: v2) ] ] ifFalse: [ aSortBlockOrSymbol ] ]. aSortedCollection sortBlock: aSortBlock. aSortedCollection addAll: self. ^ aSortedCollection -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= You can use it for example: (1 to: 4) sortedAs: #odd = a SortedCollection(1 3 2 4) Collection withAllSubclasses sortedAs: #numberOfMethods = a SortedCollection(HashBag IdentityHashBag …) This is really handy. It should be part of Pharo I believe. Cheers, Alexandre On Mar 11, 2014, at 5:19 AM, Yuriy Tymchuk yuriy.tymc...@me.com wrote: Hi guys. This is a thing that I encounter quite often. Eg I have a collection of projects and I want to sort them by creation date. It would be nice to be able to do something like: projects sortByProp: #creationDate or by birth date of the author projects sortByProp: [ :proj | proj author birthDate ] Maybe I’m wrong, but as I’ve told already I encounter it quite often and writing something like projects sortBy: [ :prev :next | prev creationDate = next creationDate ] is boring for me. Cheers. Uko -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. -- best,Eliot -- best,Eliot SequenceableCollection-sortedAs.st
Re: [Pharo-dev] [ANN] RenoirSt 1.0.0 Release for Pharo 3.0
Yes, there seems to be a hype of every improving documentation, blog posts, screen casts and so on. Could this be a sign of a maturing community ? Great work, Gabriel ! On 11 Mar 2014, at 22:06, Pharo4Stef pharo4s...@free.fr wrote: Gabriel your tutorial is really cool :) Stef On 11 Mar 2014, at 21:04, Pharo4Stef pharo4s...@free.fr wrote: Gabriel I would love to write a chapter based on your tutorial for the next book. Is it ok for you? I can do that during a boring meeting. :) Stef On 11 Mar 2014, at 14:13, Gabriel Cotelli g.cote...@gmail.com wrote: Hi, I'm announcing the first official release of RenoirSt, a DSL enabling programmatic cascading style sheet generation for Pharo. For the impatient, you can load it in your 3.0 image evaluating: Gofer it url: 'http://smalltalkhub.com/mc/gcotelli/RenoirSt/main'; configurationOf: 'RenoirSt'; loadStable or download a ready to use image from the Contribution CI Server ( a ConfigurationBrowser option comming soon). Visit the project page and GitHub repository for more information on the supported and planned features, and check-out the online tutorial. I hope you find it useful. Feel free to ask any questions, suggest ideas and improvements, or report bugs (the issue tracker is in GitHub). Gabriel
Re: [Pharo-dev] Touch Events VM changes
I've got a Windows 8 laptop with a touch screen. So, I now have to look how the events are provided. Phil On Tue, Mar 11, 2014 at 12:03 PM, Esteban Lorenzano esteba...@gmail.comwrote: Hi, I agree that we need a unified event model. Now... our vision is to solve that in image side, not in vm (and vm should send the raw events as is). The reason of why we want it in image is easy: image means pharo, and it means more hands (or eyes) over it. Then is easier to maintain :) Anyway, we are slowly working on it (See Igor Ronnie work around OSWindow). But is probably too slow :) Esteban On 11 Mar 2014, at 11:37, J.F. Rick s...@je77.com wrote: As we move from mouse-keyboard devices to touch-based ones, it would be nice if we could unify touch development across the different Pharo platforms (iOS, Android, Windows 8, Linux, etc.), so that we can start to build touch-aware widgets and frameworks. Currently, there's a lot of interest but no unified movement. For instance, I've got a very nice multi-touch 27 computer that I run in Linux. I develop the applications in Pharo but I currently use a hack to get the touch events: I use OSProcess to start the mtdev2tuio application that takes touch input and sends it via TUIO. I then use a UDP socket to read the events on Pharo. If I am to share my work, I need to get beyond the hack. I (or rather Igor as I watched) investigated the possibility of using NativeBoost calls to do the same, but it would not work since mtdev2tuio has to run as superuser, meaning Pharo would have to run as superuser. We came to the conclusion that this must be a VM-level change. I'm not a VM hacker but would like to reach the people who maintain the linux and windows VM to see if this might not be a reasonable addition to the standard VM. There does seem to be standard support for touch events in XFree86, so it shouldn't be too large a change on Linux. I assume that Windows 8 similarly makes touch events available. Is this the right place to ask or is there another mailing list (e.g., the cog-vm)? Cheers, Jeff -- Jochen Jeff Rick, Ph.D. http://www.je77.com/ Skype ID: jochenrick
[Pharo-dev] Making Git and Pharo More Accessible
Two things: - Are the current git workflow options documented anywhere besides our mailing lists? If not, will someone who has been using Git successfully capture their process somewhere more permanent... - Can we (proverbially, not that I'm intending to help ;)) make a git-ready image on the community CI server? TIA - Cheers, Sean -- View this message in context: http://forum.world.st/Making-Git-and-Pharo-More-Accessible-tp4748695.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Touch Events VM changes
I have a pretty decent lineup of devices with touch. The interactions aren't the same on the iPhone as they are on a Galaxy SII phone, not are the same on iPads or on a Nexus7. Magic mouses are also special things. Also my Samsung Windows 8 laptop has a 10 points touch screen. With Windows8.1, I find myself using swipes and touches for a lot of things. And it improves my productivity. Once equipped with a thing like Classic Shell and boot into the desktop right away, Metro apps are really nice little things running in the background and can come fast with a little swipe (cool ones: Skype, Music, PDF reader of a documentation, like a chapter of a Pharo book: swipe: PDF, swipe: Pharo, swiper: PDF... and mouse pointer not moving around). When using my MacBook Pro, I am reaching for the screen and being disappointed to realize it is not touch (Apple, give us touch screens on laptops). Form factors affect the usage patterns as well. But touch is not going displace touchpads or mouses for fine grained control. On the contrary, I tested a Leap motion controller and it felt like crap. Phil On Tue, Mar 11, 2014 at 12:54 PM, J.F. Rick s...@je77.com wrote: Hi Sergi, Based on my experience developing touch interfaces since 2007, I believe in touch. I believe it will be the future of interfaces and I believe it can be better than mouse-keyboard interfaces. That said, it is not there yet. Now is the time to innovate and get it there so that touch interfaces won't be poor replicas of their desktop forebears. Currently, text entry is a real problem for touch exclusive devices, but there is progress being made on that front. We don't have the answer yet but I think it will be a significantly different landscape in five years. In regards to touch vs physical pointers, this is not as large of a problem as people make it out to be. It is just that our widgets tend to be created for mouse-based interfaces and therefore don't transition well to touch. Interfaces designed with touch in mind can be just as smooth (if not smoother) as mouse-based interfaces. You just have to take advantage of what touch does well (faster, more precise routes; multi-touch gestures; bimanual interaction) and stay clear of things it does poorly (precise touch down, covering the target with the finger). Cheers, Jeff On Tue, Mar 11, 2014 at 12:34 PM, Sergi Reyner sergi.rey...@gmail.comwrote: 2014-03-11 10:37 GMT+00:00 J.F. Rick s...@je77.com: As we move from mouse-keyboard devices to touch-based ones I certainly hope that we refers to a small group of people, unless we get onscreen keyboards as good as physical ones, feedback included. The same goes for touch versus physical pointer :) Cheers, Sergi -- Jochen Jeff Rick, Ph.D. http://www.je77.com/ Skype ID: jochenrick
Re: [Pharo-dev] Sort by property
Why do we need one method that takes either a block or symbol? SequenceableCollectionsortedAs: aSortBlockOrSymbol Perhaps sort: can take a block and sortedAs: a symbol?