[Pharo-dev] Use pharo users mailing list
We should use the pharo users mailing list more often. Imagine there are people only subscribed to the users list. They can't see a lot of interesting posts and the users list does not appear to be very lively. At least half of the posts here in the last days I would like to see on the users list. So if your post is not really about the development of pharo or is not a problem with pharo core (external package discussions belong IMHO to the users list as well) then consider to post to the users list. Everyone you like to reach is subscribed there, too. Norbert
Re: [Pharo-dev] Integration Process
I'm working to enhance the submit process, but in another direction. In the mean time, all your recommendations would make our life a lot easier, yes :) Esteban On Sep 23, 2013, at 6:21 AM, Camillo Bruni camillobr...@gmail.com wrote: I spent today 10mins explaining step by step on how to regular Pharo programmers how to create a bugfix for Pharo! THIS IS BAD! There are many more motivated Pharo programmers outside RMoD, and I am sure that quite some of them would actually provide bug fixes. The current bug-report process has a way too steep learning curve. There are a few things we have to change here: 1. make bugs.pharo.org finally work with dots in the email message 2. make bugs.pharo.org automatically send a password reset request (in the worst case we do a redirect/curl on the normal fogbugz site) 3. make the anonymous inbox work on the smalltalkhub 4. reactivate the SLICE submitter in the image So who takes responsibility? I will take care of point 4 during the following Week. Plus I made an 8 minute screencast with all the details of the integration: https://vimeo.com/75183993
Re: [Pharo-dev] Integration Process
On Sep 23, 2013, at 8:32 AM, Esteban Lorenzano esteba...@gmail.com wrote: I'm working to enhance the submit process, but in another direction. In the mean time, all your recommendations would make our life a lot easier, yes :) Isn't all of this orthogonal? Esteban On Sep 23, 2013, at 6:21 AM, Camillo Bruni camillobr...@gmail.com wrote: I spent today 10mins explaining step by step on how to regular Pharo programmers how to create a bugfix for Pharo! THIS IS BAD! There are many more motivated Pharo programmers outside RMoD, and I am sure that quite some of them would actually provide bug fixes. The current bug-report process has a way too steep learning curve. There are a few things we have to change here: 1. make bugs.pharo.org finally work with dots in the email message 2. make bugs.pharo.org automatically send a password reset request (in the worst case we do a redirect/curl on the normal fogbugz site) 3. make the anonymous inbox work on the smalltalkhub 4. reactivate the SLICE submitter in the image So who takes responsibility? I will take care of point 4 during the following Week. Plus I made an 8 minute screencast with all the details of the integration: https://vimeo.com/75183993 signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] Use pharo users mailing list
+1 On 23 Sep 2013, at 08:17, Norbert Hartl norb...@hartl.name wrote: We should use the pharo users mailing list more often. Imagine there are people only subscribed to the users list. They can't see a lot of interesting posts and the users list does not appear to be very lively. At least half of the posts here in the last days I would like to see on the users list. So if your post is not really about the development of pharo or is not a problem with pharo core (external package discussions belong IMHO to the users list as well) then consider to post to the users list. Everyone you like to reach is subscribed there, too. Norbert
Re: [Pharo-dev] Use pharo users mailing list
Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Consider stackoverflow is THE forum for coding, I cant think of a better place to ask questions for smalltalk and pharo , rarely questions left unanswered there and I wont even start to discuss how cool of a website it is. Oh and a minor bonus is a huge advertisement for pharo. But then take my idea with a grain of salt, I don't like mailing lists :) Thank god for forum.world.st :D Norbert Hartl wrote We should use the pharo users mailing list more often. Imagine there are people only subscribed to the users list. They can't see a lot of interesting posts and the users list does not appear to be very lively. At least half of the posts here in the last days I would like to see on the users list. So if your post is not really about the development of pharo or is not a problem with pharo core (external package discussions belong IMHO to the users list as well) then consider to post to the users list. Everyone you like to reach is subscribed there, too. Norbert -- View this message in context: http://forum.world.st/Use-pharo-users-mailing-list-tp4709698p4709702.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
[Pharo-dev] [update 3.0] #30418
30418 - 11661 Small cleanup of dead code https://pharo.fogbugz.com/f/cases/11661 11659 Add basic Morph Viewer for the Inspectors https://pharo.fogbugz.com/f/cases/11659 Diff information: http://smalltalkhub.com/mc/Pharo/Pharo30/main/Tools-MarcusDenker.1264.diff http://smalltalkhub.com/mc/Pharo/Pharo30/main/System-Installers-MarcusDenker.38.diff http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Widgets-MarcusDenker.249.diff http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Inspector-MarcusDenker.94.diff http://smalltalkhub.com/mc/Pharo/Pharo30/main/NECompletion-MarcusDenker.135.diff http://smalltalkhub.com/mc/Pharo/Pharo30/main/MenuRegistration-MarcusDenker.64.diff http://smalltalkhub.com/mc/Pharo/Pharo30/main/Manifest-CriticBrowser-MarcusDenker.118.diff signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] Use pharo users mailing list
Am 23.09.2013 um 08:48 schrieb kilon theki...@yahoo.co.uk: Here is a radical suggestion you probably don't want to hear. why not? Close down Pharo users mailing list, redirect everyone to stackoverflow. Consider stackoverflow is THE forum for coding, I cant think of a better place to ask questions for smalltalk and pharo , rarely questions left unanswered there and I wont even start to discuss how cool of a website it is. I think there is a big difference between a discussion medium and a question-answer site. What I like about this community is the fact that most of the discussions are interesting and have potential to learn something from it. Look at some of the threads. There are often a minimum of 2 replies each making at least 4 or 5 mails of one topic. That is a form of communication that makes sense to me. I would welcome a better way of exchanging ideas than email but I didn't see one, yet. I like stackoverflow as well but it is a poor site for discussing. Discussions happen through the misuse of comments. A lot of the threads posted on pharo users list aren't suited for stackoverflow. So I wouldn't consider stackoverflow a replacement of the users list. Oh and a minor bonus is a huge advertisement for pharo. But then take my idea with a grain of salt, I don't like mailing lists :) Thank god for forum.world.st :D I see. I would like to see that stackoverflow is used more often but I don't see how. The intention of my mail was that there is indeed a using crowd of pharo that isn't interested in the very details of the core development. So I still consider the separation of the lists good. Maybe it is only my lonely view of our world. But as long as we have the two lists I would welcome it if the normal stuff would happen on the users list. My point of view is that there should be first a users list. And in order not to startle newcomers the dev cracks should be moved to their own mailing list :) Norbert Norbert Hartl wrote We should use the pharo users mailing list more often. Imagine there are people only subscribed to the users list. They can't see a lot of interesting posts and the users list does not appear to be very lively. At least half of the posts here in the last days I would like to see on the users list. So if your post is not really about the development of pharo or is not a problem with pharo core (external package discussions belong IMHO to the users list as well) then consider to post to the users list. Everyone you like to reach is subscribed there, too. Norbert -- View this message in context: http://forum.world.st/Use-pharo-users-mailing-list-tp4709698p4709702.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Use pharo users mailing list
I like that idea. At least some of the questions on the users list are not even Pharo specific but regard Smalltalk in general. Those need not be answered by us but can be answered by anyone with a Smalltalk background, be it VW, VA, Squeak… On the other hand (I'm not sure about this, since I don't read the users list) there might be topics like job offers / searches, or more general discussions on that list and moving to SO would kill those (one could argue that such topics would be more suitable on pharo-dev…) since SO is strictly question and answer orientated. Another argument for closing the users list: Marcus wouldn't have to save two lists the next time the servers go down :) Cheers, Max On 23.09.2013, at 08:48, kilon theki...@yahoo.co.uk wrote: Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Consider stackoverflow is THE forum for coding, I cant think of a better place to ask questions for smalltalk and pharo , rarely questions left unanswered there and I wont even start to discuss how cool of a website it is. Oh and a minor bonus is a huge advertisement for pharo. But then take my idea with a grain of salt, I don't like mailing lists :) Thank god for forum.world.st :D Norbert Hartl wrote We should use the pharo users mailing list more often. Imagine there are people only subscribed to the users list. They can't see a lot of interesting posts and the users list does not appear to be very lively. At least half of the posts here in the last days I would like to see on the users list. So if your post is not really about the development of pharo or is not a problem with pharo core (external package discussions belong IMHO to the users list as well) then consider to post to the users list. Everyone you like to reach is subscribed there, too. Norbert -- View this message in context: http://forum.world.st/Use-pharo-users-mailing-list-tp4709698p4709702.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Integration Process
Camillo you are right. Now pay attention that submitting a fix is not integration of a bug fix. On Sep 23, 2013, at 6:21 AM, Camillo Bruni camillobr...@gmail.com wrote: I spent today 10mins explaining step by step on how to regular Pharo programmers how to create a bugfix for Pharo! THIS IS BAD! There are many more motivated Pharo programmers outside RMoD, and I am sure that quite some of them would actually provide bug fixes. The current bug-report process has a way too steep learning curve. There are a few things we have to change here: 1. make bugs.pharo.org finally work with dots in the email message 2. make bugs.pharo.org automatically send a password reset request (in the worst case we do a redirect/curl on the normal fogbugz site) 3. make the anonymous inbox work on the smalltalkhub 4. reactivate the SLICE submitter in the image So who takes responsibility? I will take care of point 4 during the following Week. Plus I made an 8 minute screencast with all the details of the integration: https://vimeo.com/75183993
Re: [Pharo-dev] Use pharo users mailing list
2013/9/23 Stephan Eggermont step...@stack.nl Kilon wrote Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for small languages. Good questions will get closed by clueless people. Good answers will get downvoted because they go against majority views. The ranking system is heavily skewed towards popular languages. Stackoverflow doesn't allow discussions (and interesting questions), which is a major reason to have these lists. To see for yourself, take a look at the questions related to OODBs. This is true, StackOverflow is badly contaminated. Stephan
Re: [Pharo-dev] Use pharo users mailing list
Stephan Eggermont wrote Kilon wrote Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for small languages. Good questions will get closed by clueless people. Good answers will get downvoted because they go against majority views. The ranking system is heavily skewed towards popular languages. Stackoverflow doesn't allow discussions (and interesting questions), which is a major reason to have these lists. To see for yourself, take a look at the questions related to OODBs. Stephan its dead ? I have not see any pharo questions get downvoted or closed so far. But yeah they are biased and they have a bad attitude at times but in the end all sites have these people. Stackoverflow has like any website it pros and its cons. About discussions in general, how many of the threads that are opened in user forum cannot be formulated easily into questions and answers. From what I see its no more than 10% . And taking into account the frequency of posts in the user forum , I would say no more than 1 per month which is hardly a reason to keep a mailing list around. And there are plenty of general questions in stackoverflow here is an example http://stackoverflow.com/questions/18946662/if-pypy-is-6-3-times-faster-than-cpython-why-not-just-use-faster-interpreter http://stackoverflow.com/questions/18946662/if-pypy-is-6-3-times-faster-than-cpython-why-not-just-use-faster-interpreter so I do think the level of tolerance is actually quite high. If you take a look at the comments in that link its clear there is an overall discussion on the matter. Also it beats quote wars we have over here ;) Now for Pharo Dev specific , yes in that case a forum is a must have because obviously discussions are a main topic here to coordinate efforts and code changes. Anyway it was just a suggestion I am fine using the forum ;) -- View this message in context: http://forum.world.st/Use-pharo-users-mailing-list-tp4709698p4709729.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Extending HelpTopic
I take it from the silence , there is no interest in my code :D That's fine I will create my own HelpTopic class and keep it independent from pharo internal libs so I dont have to bother people with slices they don't deem important :) Makes my life easier too ;) -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709730.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Extending HelpTopic
you submitted yesterday... a sunday... and we have a not so big community, and all of us has a lot of tasks and things to do. you should be a bit more patient :) Esteban On Sep 23, 2013, at 10:56 AM, kilon theki...@yahoo.co.uk wrote: I take it from the silence , there is no interest in my code :D That's fine I will create my own HelpTopic class and keep it independent from pharo internal libs so I dont have to bother people with slices they don't deem important :) Makes my life easier too ;) -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709730.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Use pharo users mailing list
Yes, it is dead. The number of answers is getting lower and lower, the questions get more and more detailed. http://stackoverflow.com/questions/18946662/if-pypy-is-6-3-times-faster-than-cpython-why-not-just-use-faster-interpreter Hmm yes, that is a question that needs to be closed. Interesting, but not allowed. That's the difference between a large and a small language. Or rather, it is just arbitrary. Stephan
Re: [Pharo-dev] How to test the same behavior with different data
I played around with a combination of data driven testing and random data generation a while back: * http://www.lshift.net/blog/2011/09/13/checking-squeak-quickly * http://www.squeaksource.com/SqueakCheck/ There is a ConfigurationOf there. It integrates with SUnit by adding a new kind of TestCase that knows how to run theories, identified by pragmas. It also features the recording of a counterexample to your theory by generating a normal test method on the relevant TestCase subclass. I haven't touched the code in a while, but if there's interest I'd be happy to hack on it once more. frank On 22 September 2013 21:43, laurent laffont laurent.laff...@gmail.com wrote: Hi, in phpunit there's a @dataProvider annotation, so one method returns a several data sets for a test method. I'm not sure that's the best design but it's nice to have one unit test result per data set. See http://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.data-providers Translating the example to Pharo that should give something like: TestCase subclass: #DataTest DataTesttestAdd: a to: b shouldAnswer: c dataProvider: #provider self assert: c equals: a + b DataTestprovider ^ { {0. 0. 0}. {1. 0. 1}. {0. 1. 1}. {1. 2. 3} } It may not be to difficult to implement in SUnit. What do you think about this ? Laurent On Sat, Sep 21, 2013 at 1:47 PM, Jan Vrany jan.vr...@fit.cvut.cz wrote: Hi, I actually already thought on this as I have similar problems. So far I just create a bunch of tests, passing the actual set of parameters to a common test method as message arguments. For different framework (not SUnit, but similar spirit), I introduced a notion of parameter, each having a domain. When running test, the runner computes all possible combinations of parameter values and run the test on each such combination. I would like to have something similar in SUnit, but there are some issues. This is the feature I would like to see in SUnit 6.x, but I/we have to finish 5.0 first - I wonder if I ever find a time to do push it :-( On 21/09/13 11:06, Noury Bouraqadi wrote: Hi, Last ESUG I attended the cool katas session organized by Stephan Eggermont and Laurent Laffont. That was a good opportunity to step back and think about my TDD practices . To experiment with the style proposed by Laurent, I started writing tests for a pong. I ended up having groups of nearly identical tests: -they use exactly the same objects, send the same messages, -but they differ only by values. An example, is testing the motion of the ball towards different directions or collisions with obstacles at different locations or speeds. Now, I wonder what is the best way to express those similar tests? In a short discussion before I leave, Stephane told me about tables of values. It seem that there is such a support in the ruby world in the cucumber framework. Do we have anything similar in Smalltalk world? BTW, the full ESUG conference was great. Thanx to local organizers, and all people that contributed to make it a success. Thanx, Noury Ecole des Mines de Douai http://car.mines-douai.fr/noury --
Re: [Pharo-dev] Extending HelpTopic
EstebanLM wrote also, putting your code in review needed would help to reviewers to notice that you submitted something :) On Sep 23, 2013, at 11:07 AM, Esteban Lorenzano lt; estebanlm@ gt; wrote: you submitted yesterday... a sunday... and we have a not so big community, and all of us has a lot of tasks and things to do. you should be a bit more patient :) Esteban On Sep 23, 2013, at 10:56 AM, kilon lt; thekilon@.co gt; wrote: I take it from the silence , there is no interest in my code :D That's fine I will create my own HelpTopic class and keep it independent from pharo internal libs so I dont have to bother people with slices they don't deem important :) Makes my life easier too ;) -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709730.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com. No problemo this is why I submitted this slice to see how the overall process work and gain some experience so when the time comes to fix a pharo bug I can do it properly. yeah this is why I decided to keep code bases separate. I don't see a need for me to wait so long for a review to my code cause I will want to move on eventually. And plus I create more work for you and as you said there too few of you and you already very busy. And I totally understand that and I am here to make your life easier and not harder ;) So its no problem I will continue the effort alone, and ping this list back when I have something substantial to show. -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709735.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
[Pharo-dev] How to find a not defined class in my image?
Hi, I am looking for a way to find out, if I have Classes referenced in my image which are not defined. I do this because I want to check, if my configurationOf is loading all the stuff I want to load. In the code critics browser from world menu, there is Class not referenced but I can not find something like Class referenced but not defined. How do you check this? Regards Sabine -- View this message in context: http://forum.world.st/How-to-find-a-not-defined-class-in-my-image-tp4709737.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Use pharo users mailing list
Troll : Is it more dead than smalltalk or less dead ? :D Excuse me I have just an allergy in the word dead so I could not resist. I remember for 3 days in a row there was some people popping in #smalltalk irc channel asking , why smalltalk is dead, how dead it is, why the corpse still smells and what the autopsy revealed :D. I find people ... hilarious. I totally understand your dislike on stackoverflow and there is no way I would enforce my idea down your throat , I believe in democracy ;) The real thing, not the one people think they have in their countries. Plus its no big deal after all, if google can find it, mission accomplished. Actually I once asked where to post my noobish questions and I was told that pharo-dev was more than fine. Stephan Eggermont wrote Yes, it is dead. The number of answers is getting lower and lower, the questions get more and more detailed. http://stackoverflow.com/questions/18946662/if-pypy-is-6-3-times-faster-than-cpython-why-not-just-use-faster-interpreter Hmm yes, that is a question that needs to be closed. Interesting, but not allowed. That's the difference between a large and a small language. Or rather, it is just arbitrary. Stephan -- View this message in context: http://forum.world.st/Use-pharo-users-mailing-list-tp4709698p4709738.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] How to find a not defined class in my image?
On 23 Sep 2013, at 11:29, Sabine Knöfel sabine.knoe...@gmail.com wrote: Hi, I am looking for a way to find out, if I have Classes referenced in my image which are not defined. I do this because I want to check, if my configurationOf is loading all the stuff I want to load. In the code critics browser from world menu, there is Class not referenced but I can not find something like Class referenced but not defined. How do you check this? Does the global variable Undeclared not do this ? Furthermore, if you open a Transcript during loading, you will get lots of information. Regards Sabine -- View this message in context: http://forum.world.st/How-to-find-a-not-defined-class-in-my-image-tp4709737.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] How to find a not defined class in my image?
Write Undefined in a Workspace and inspect it; if you have undefined classes referenced, they will be listed there and you have a contextual menu entry for searching where they are used. To see that you have progressed (i.e., removed some undefined or updated your configuration), select and do it a workspace: Smalltalk cleanOutUndeclared And inspect again Undefined. Thierry Le 23/09/2013 11:29, Sabine Knöfel a écrit : Hi, I am looking for a way to find out, if I have Classes referenced in my image which are not defined. I do this because I want to check, if my configurationOf is loading all the stuff I want to load. In the code critics browser from world menu, there is Class not referenced but I can not find something like Class referenced but not defined. How do you check this? Regards Sabine -- View this message in context: http://forum.world.st/How-to-find-a-not-defined-class-in-my-image-tp4709737.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com. -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Re: [Pharo-dev] How to find a not defined class in my image?
Thank you, this was exactly what I need. Sabine On Mon, Sep 23, 2013 at 11:41 AM, Goubier Thierry [via Smalltalk] ml-node+s1294792n4709740...@n4.nabble.com wrote: Write Undefined in a Workspace and inspect it; if you have undefined classes referenced, they will be listed there and you have a contextual menu entry for searching where they are used. To see that you have progressed (i.e., removed some undefined or updated your configuration), select and do it a workspace: Smalltalk cleanOutUndeclared And inspect again Undefined. Thierry Le 23/09/2013 11:29, Sabine Knöfel a écrit : Hi, I am looking for a way to find out, if I have Classes referenced in my image which are not defined. I do this because I want to check, if my configurationOf is loading all the stuff I want to load. In the code critics browser from world menu, there is Class not referenced but I can not find something like Class referenced but not defined. How do you check this? Regards Sabine -- View this message in context: http://forum.world.st/How-to-find-a-not-defined-class-in-my-image-tp4709737.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com. -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95 -- If you reply to this email, your message will be added to the discussion below: http://forum.world.st/How-to-find-a-not-defined-class-in-my-image-tp4709737p4709740.html To unsubscribe from How to find a not defined class in my image?, click herehttp://forum.world.st/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=4709737code=c2FiaW5lLmtub2VmZWxAZ21haWwuY29tfDQ3MDk3Mzd8MTA0OTM5MTYx . NAMLhttp://forum.world.st/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml -- View this message in context: http://forum.world.st/How-to-find-a-not-defined-class-in-my-image-tp4709737p4709741.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Use pharo users mailing list
Kilon wrote: Excuse me I have just an allergy in the word dead so I could not resist. I remember for 3 days in a row there was some people popping in #smalltalk irc channel asking , why smalltalk is dead, how dead it is, why the corpse still smells and what the autopsy revealed :D. I find people ... hilarious. That's my disappointment speaking. It was a great idea. I'm an early stackoverflow user with 10K+ reputation. The first year it was pretty good, but I've seen it rapidly detoriate to the level where looking at random new questions doesn't make sense anymore. The result of that is that there is no longer the cross-pollination that made stackoverflow an interesting site. Stephan
Re: [Pharo-dev] Use pharo users mailing list
And you think this affects pharo and smalltalk questions ? because as far I have seen, there is nothing to complain about. Even one of my questions about nbopengl whether i should use it could easily be closed and it did not. Maybe its bad with other languages , but so far it looks fine to me, am I missing something here ? Could you link pharo and smalltalk examples that indicate the problem ? Stephan Eggermont wrote Kilon wrote: Excuse me I have just an allergy in the word dead so I could not resist. I remember for 3 days in a row there was some people popping in #smalltalk irc channel asking , why smalltalk is dead, how dead it is, why the corpse still smells and what the autopsy revealed :D. I find people ... hilarious. That's my disappointment speaking. It was a great idea. I'm an early stackoverflow user with 10K+ reputation. The first year it was pretty good, but I've seen it rapidly detoriate to the level where looking at random new questions doesn't make sense anymore. The result of that is that there is no longer the cross-pollination that made stackoverflow an interesting site. Stephan -- View this message in context: http://forum.world.st/Use-pharo-users-mailing-list-tp4709698p4709745.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] How to find a not defined class in my image?
Hello, Smalltalk at: #MyClassName = raise KeyNotFound Error if MyClassName does not exist = answers MyClassName if the class exists 2013/9/23 Sabine Knöfel sabine.knoe...@gmail.com Hi, I am looking for a way to find out, if I have Classes referenced in my image which are not defined. I do this because I want to check, if my configurationOf is loading all the stuff I want to load. In the code critics browser from world menu, there is Class not referenced but I can not find something like Class referenced but not defined. How do you check this? Regards Sabine -- View this message in context: http://forum.world.st/How-to-find-a-not-defined-class-in-my-image-tp4709737.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Extending HelpTopic
please, do not take it as a disincentive to collaborate, this should be quite the opposite :) I was trying to ask for some patience because when you join into a collaborative community, obviously the times spent on the process will be different than if you work alone. The gain is obvious, but we often lose from mind the price to pay (you do not control all the stages of the process). So, if you submit something, it will be some time to get the feedback (time to people to notice your change, to see it, etc.). Also, I was not talking about Marcus, Stef or me... since we are not the reviewers (that's also a responsibility of everybody in the community): we are just the integrators. So please, continue committing changes to the process... the review will come :) btw... one thing that I usually do when working: I commit slices even if they are not ready. Then I continue submitting slices until work is done... then I move the fix to review needed. That way you can work in big changes and also be preparing a SLICE for the right moment. cheers, Esteban On Sep 23, 2013, at 11:19 AM, kilon theki...@yahoo.co.uk wrote: EstebanLM wrote also, putting your code in review needed would help to reviewers to notice that you submitted something :) On Sep 23, 2013, at 11:07 AM, Esteban Lorenzano lt; estebanlm@ gt; wrote: you submitted yesterday... a sunday... and we have a not so big community, and all of us has a lot of tasks and things to do. you should be a bit more patient :) Esteban On Sep 23, 2013, at 10:56 AM, kilon lt; thekilon@.co gt; wrote: I take it from the silence , there is no interest in my code :D That's fine I will create my own HelpTopic class and keep it independent from pharo internal libs so I dont have to bother people with slices they don't deem important :) Makes my life easier too ;) -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709730.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com. No problemo this is why I submitted this slice to see how the overall process work and gain some experience so when the time comes to fix a pharo bug I can do it properly. yeah this is why I decided to keep code bases separate. I don't see a need for me to wait so long for a review to my code cause I will want to move on eventually. And plus I create more work for you and as you said there too few of you and you already very busy. And I totally understand that and I am here to make your life easier and not harder ;) So its no problem I will continue the effort alone, and ping this list back when I have something substantial to show. -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709735.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Use pharo users mailing list
On 9/23/13, Stephan Eggermont step...@stack.nl wrote: Kilon wrote Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for small languages. There are obstacles but one cannot say that it is seriously unsuitable. Stackoverflow question demand a certain format, typically something like - statement of what you want to accomplish - attempt a solution with code which has problems - question Good questions will get closed by clueless people. Mostly if the form does not fit. And if there are Pharo people (maybe earned in another area) with enough reputation points this may be prevented Good answers will get downvoted because they go against majority views. Why? The ranking system is heavily skewed towards popular languages. It is based on the number of hits which is naturally less in less popular languages. However subcommunities may function well in stackoverflow. the tagging and referencing system is excellent. Stackoverflow doesn't allow discussions (and interesting questions), No, but that is not the aim of the site. It is a question and answer site for _coding_ and maybe _design_ problems to a certain extent. However it allows for wiki pages. Any answer may be turned into a wiki page. which is a major reason to have these lists. List are good in addition. --Hannes To see for yourself, take a look at the questions related to OODBs. Stephan
[Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle
Sven suggested posting this on the list for discussion, so here you go: Maybe this should be discussed on the list, your are going to break API. Note that there is also #sort and #sorted with similar copy behavior. Also, I am not sure that basic operations should use mutexes to protect themselves by default: there is a cost when you are a single threaded user. Even in Java there are synchronized and non-synchronized versions of collections. IMHO, the protection should happen in your app, and basic collections do not have to be thread safe. Sven #shuffle does not use CollectionmutexForPicking as other users of #randomForPicking demonstrate. This can lead to race conditions (found in our application). In addition, there are now #shuffle, #shuffled, #shuffleBy: and #shuffledBy: where #shuffled and #shuffledBy: shuffle a copy and answers that. This is very confusing. I propose a fix where #shuffled and #shuffledBy: are renamed to #copyShuffle and #copyShuffledBy: and moved to the copying protocol. #shuffle and #copyShuffle will use the mutex to prevent race conditions.
Re: [Pharo-dev] Integration Process
On 2013-09-23, at 05:13, Esteban Lorenzano esteba...@gmail.com wrote: On Sep 23, 2013, at 6:21 AM, Camillo Bruni camillobr...@gmail.com wrote: I spent today 10mins explaining step by step on how to regular Pharo programmers how to create a bugfix for Pharo! THIS IS BAD! There are many more motivated Pharo programmers outside RMoD, and I am sure that quite some of them would actually provide bug fixes. The current bug-report process has a way too steep learning curve. There are a few things we have to change here: 1. make bugs.pharo.org finally work with dots in the email message 2. make bugs.pharo.org automatically send a password reset request (in the worst case we do a redirect/curl on the normal fogbugz site) 3. make the anonymous inbox work on the smalltalkhub I would not say anonymous... public, yes :) yes this is what I meant, committing without having to be added manually to the contributors list. signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] [Pharo-users] [ANN] Launching Pharo on Ubuntu
good work! On 2013-09-23, at 09:13, Damien Cassou damien.cas...@gmail.com wrote: For Ubuntu users who are using my PPA (https://launchpad.net/~pharo/+archive/stable/), you can now launch Pharo from either the Ubuntu Dashboard or the terminal (just type 'pharo'). In both cases, you will see the Pharo Launcher from which you can create new images from templates on the web and launch existing images. http://www.smalltalkhub.com/#!/~Pharo/PharoLauncher No need for manual download of zip files, unpacking, and directory management. The launcher does everything for you. Have fun -- Damien Cassou http://damiencassou.seasidehosting.st Success is the ability to go from one failure to another without losing enthusiasm. Winston Churchill pharo-launcher-screenshot.png signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] Use pharo users mailing list
The difference not only lies in the format, but also in the user base. I'm 30+ years old, and I grew up using bulletin boards, newsgroups and mailing list, but there is a big generation of programmers (emphasis in the quotes) that will never subscribe to a mailing list, some don't even know what a mailing list is. They grew up using sites like Yahoo Answers, and expect the same for their programming questions. I guess it is the same that happened in the transition from newsgroups to mailing lists, and as in the bbc to newsgroups, and newsgroups to mailing lists, every new generation seems to me like an order of magnitude bigger. I think BOTH options are okay, it is, a user list and StackOverflow like websites. The SEO of the later is really good. The flattening of the question/answer curve may have to do with the fact that most questions have been answered and they start to repeat. I use StackOverflow and SuperUser on a daily basis. And I do find most of the answers I need. To me the radical choice would be to merge both users and development mailing lists. The separation is okay from an organization point of view, but the volume today is no that big as to justify fragmentation, seems like an early optimization. Regards, Esteban A. Maringolo 2013/9/23 H. Hirzel hannes.hir...@gmail.com: On 9/23/13, Stephan Eggermont step...@stack.nl wrote: Kilon wrote Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for small languages. There are obstacles but one cannot say that it is seriously unsuitable. Stackoverflow question demand a certain format, typically something like - statement of what you want to accomplish - attempt a solution with code which has problems - question Good questions will get closed by clueless people. Mostly if the form does not fit. And if there are Pharo people (maybe earned in another area) with enough reputation points this may be prevented Good answers will get downvoted because they go against majority views. Why? The ranking system is heavily skewed towards popular languages. It is based on the number of hits which is naturally less in less popular languages. However subcommunities may function well in stackoverflow. the tagging and referencing system is excellent. Stackoverflow doesn't allow discussions (and interesting questions), No, but that is not the aim of the site. It is a question and answer site for _coding_ and maybe _design_ problems to a certain extent. However it allows for wiki pages. Any answer may be turned into a wiki page. which is a major reason to have these lists. List are good in addition. --Hannes To see for yourself, take a look at the questions related to OODBs. Stephan
Re: [Pharo-dev] Use pharo users mailing list
Google and a copy of the list in there is fine enough for me. SO is okay but frankly, I do not go there to look for stuff/answer questions, but because my google search sends me there. Where we could have exposure would be on things like infoQ. Regards, --- Philippe Back Dramatic Performance Improvements Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027 Mail:p...@highoctane.be | Web: http://philippeback.eu Blog: http://philippeback.be | Twitter: @philippeback Youtube: http://www.youtube.com/user/philippeback/videos High Octane SPRL rue cour Boisacq 101 | 1301 Bierges | Belgium Pharo Consortium Member - http://consortium.pharo.org/ Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller On Mon, Sep 23, 2013 at 2:33 PM, Esteban A. Maringolo emaring...@gmail.comwrote: The difference not only lies in the format, but also in the user base. I'm 30+ years old, and I grew up using bulletin boards, newsgroups and mailing list, but there is a big generation of programmers (emphasis in the quotes) that will never subscribe to a mailing list, some don't even know what a mailing list is. They grew up using sites like Yahoo Answers, and expect the same for their programming questions. I guess it is the same that happened in the transition from newsgroups to mailing lists, and as in the bbc to newsgroups, and newsgroups to mailing lists, every new generation seems to me like an order of magnitude bigger. I think BOTH options are okay, it is, a user list and StackOverflow like websites. The SEO of the later is really good. The flattening of the question/answer curve may have to do with the fact that most questions have been answered and they start to repeat. I use StackOverflow and SuperUser on a daily basis. And I do find most of the answers I need. To me the radical choice would be to merge both users and development mailing lists. The separation is okay from an organization point of view, but the volume today is no that big as to justify fragmentation, seems like an early optimization. Regards, Esteban A. Maringolo 2013/9/23 H. Hirzel hannes.hir...@gmail.com: On 9/23/13, Stephan Eggermont step...@stack.nl wrote: Kilon wrote Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for small languages. There are obstacles but one cannot say that it is seriously unsuitable. Stackoverflow question demand a certain format, typically something like - statement of what you want to accomplish - attempt a solution with code which has problems - question Good questions will get closed by clueless people. Mostly if the form does not fit. And if there are Pharo people (maybe earned in another area) with enough reputation points this may be prevented Good answers will get downvoted because they go against majority views. Why? The ranking system is heavily skewed towards popular languages. It is based on the number of hits which is naturally less in less popular languages. However subcommunities may function well in stackoverflow. the tagging and referencing system is excellent. Stackoverflow doesn't allow discussions (and interesting questions), No, but that is not the aim of the site. It is a question and answer site for _coding_ and maybe _design_ problems to a certain extent. However it allows for wiki pages. Any answer may be turned into a wiki page. which is a major reason to have these lists. List are good in addition. --Hannes To see for yourself, take a look at the questions related to OODBs. Stephan
Re: [Pharo-dev] Extending HelpTopic
No no no I am not discouraged far from it, just not familiar with the process. For example I had no clue that multiple slices were encouraged, even ones that are WIP. That definetly changes everything. I would love to hear you workflow on this one, for example do you also commit your own changes to smalltalkhub for backup ? Also whats the diffirence between a slice and a regular commit ? Why you advise people not to save the image with their changes (I assume its for testing the slice ) ? I would love to contribute to pharo , I really like this community cause has been more than friendly to me and I love pharo of course since you seem to have very similar goal to what I want to achieve with coding. I started a project on visual live coding in python to find out that pharo was doing already more than I was dreaming of and I left python to code for pharo . Now my project is just to enhance pharo here and there, clean up morphic, create a cool gui that will be easy to use, a nice help system (with documentation of course) and an app/ library store similarly to the Apple app store (but of course free). If some of those ideas can be integrated inside pharo and the community wants them so much the better for me. I also don't mind fixing the occasional bug (not my bugs, I never make bugs only weird features :D ). Also if I can submit my slices , continue to work and resubmit any future slices thats great for me. The problem was never waiting for a review and integration :) I just did not want to be stopped from working because I was waiting for a review. If I can submit multiple slices then no problemo. EstebanLM wrote please, do not take it as a disincentive to collaborate, this should be quite the opposite :) I was trying to ask for some patience because when you join into a collaborative community, obviously the times spent on the process will be different than if you work alone. The gain is obvious, but we often lose from mind the price to pay (you do not control all the stages of the process). So, if you submit something, it will be some time to get the feedback (time to people to notice your change, to see it, etc.). Also, I was not talking about Marcus, Stef or me... since we are not the reviewers (that's also a responsibility of everybody in the community): we are just the integrators. So please, continue committing changes to the process... the review will come :) btw... one thing that I usually do when working: I commit slices even if they are not ready. Then I continue submitting slices until work is done... then I move the fix to review needed. That way you can work in big changes and also be preparing a SLICE for the right moment. cheers, Esteban On Sep 23, 2013, at 11:19 AM, kilon lt; thekilon@.co gt; wrote: EstebanLM wrote also, putting your code in review needed would help to reviewers to notice that you submitted something :) On Sep 23, 2013, at 11:07 AM, Esteban Lorenzano lt; estebanlm@ gt; wrote: you submitted yesterday... a sunday... and we have a not so big community, and all of us has a lot of tasks and things to do. you should be a bit more patient :) Esteban On Sep 23, 2013, at 10:56 AM, kilon lt; thekilon@.co gt; wrote: I take it from the silence , there is no interest in my code :D That's fine I will create my own HelpTopic class and keep it independent from pharo internal libs so I dont have to bother people with slices they don't deem important :) Makes my life easier too ;) -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709730.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com. No problemo this is why I submitted this slice to see how the overall process work and gain some experience so when the time comes to fix a pharo bug I can do it properly. yeah this is why I decided to keep code bases separate. I don't see a need for me to wait so long for a review to my code cause I will want to move on eventually. And plus I create more work for you and as you said there too few of you and you already very busy. And I totally understand that and I am here to make your life easier and not harder ;) So its no problem I will continue the effort alone, and ping this list back when I have something substantial to show. -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709735.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com. -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709763.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] [Pharo-users] [ANN] Launching Pharo on Ubuntu
Thanks :) 2013/9/23 Camillo Bruni camillobr...@gmail.com good work! On 2013-09-23, at 09:13, Damien Cassou damien.cas...@gmail.com wrote: For Ubuntu users who are using my PPA (https://launchpad.net/~pharo/+archive/stable/), you can now launch Pharo from either the Ubuntu Dashboard or the terminal (just type 'pharo'). In both cases, you will see the Pharo Launcher from which you can create new images from templates on the web and launch existing images. http://www.smalltalkhub.com/#!/~Pharo/PharoLauncher No need for manual download of zip files, unpacking, and directory management. The launcher does everything for you. Have fun -- Damien Cassou http://damiencassou.seasidehosting.st Success is the ability to go from one failure to another without losing enthusiasm. Winston Churchill pharo-launcher-screenshot.png -- Best regards, Douaille Erwan douaille.er...@gmail.com
Re: [Pharo-dev] Integration Process
On 2013-09-23, at 05:00, Sven Van Caekenberghe s...@stfx.eu wrote: On 23 Sep 2013, at 06:21, Camillo Bruni camillobr...@gmail.com wrote: Plus I made an 8 minute screencast with all the details of the integration:https://vimeo.com/75183993 Very nice, thank you ! This should be posted on some webpage somewhere, not be hidden on the mailing list. yes, I will put a link on the wiki page. Maybe on the pharo screen cast? Of course, the 'Camillo Bruni Coding Speed' might be a bit too intimidating ;-) :P, yet it takes 7 minutes to explain all the details :( signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] Extending HelpTopic
On Sep 23, 2013, at 2:41 PM, kilon theki...@yahoo.co.uk wrote: No no no I am not discouraged far from it, just not familiar with the process. For example I had no clue that multiple slices were encouraged, even ones that are WIP. That definetly changes everything. I would love to hear you workflow on this one, for example do you also commit your own changes to smalltalkhub for backup ? a slice is just a bunch of packages but this is important for us to know which packages work with which other ones. Also whats the diffirence between a slice and a regular commit ? Why you advise people not to save the image with their changes (I assume its for testing the slice ) ? I would love to contribute to pharo , I really like this community cause has been more than friendly to me and I love pharo of course since you seem to have very similar goal to what I want to achieve with coding. I started a project on visual live coding in python to find out that pharo was doing already more than I was dreaming of and I left python to code for pharo . Now my project is just to enhance pharo here and there, clean up morphic, create a cool gui that will be easy to use, a nice help system (with documentation of course) and an app/ library store similarly to the Apple app store (but of course free). If some of those ideas can be integrated inside pharo and the community wants them so much the better for me. I also don't mind fixing the occasional bug (not my bugs, I never make bugs only weird features :D ). Also if I can submit my slices , continue to work and resubmit any future slices thats great for me. The problem was never waiting for a review and integration :) I just did not want to be stopped from working because I was waiting for a review. If I can submit multiple slices then no problemo. yes EstebanLM wrote please, do not take it as a disincentive to collaborate, this should be quite the opposite :) I was trying to ask for some patience because when you join into a collaborative community, obviously the times spent on the process will be different than if you work alone. The gain is obvious, but we often lose from mind the price to pay (you do not control all the stages of the process). So, if you submit something, it will be some time to get the feedback (time to people to notice your change, to see it, etc.). Also, I was not talking about Marcus, Stef or me... since we are not the reviewers (that's also a responsibility of everybody in the community): we are just the integrators. So please, continue committing changes to the process... the review will come :) btw... one thing that I usually do when working: I commit slices even if they are not ready. Then I continue submitting slices until work is done... then I move the fix to review needed. That way you can work in big changes and also be preparing a SLICE for the right moment. cheers, Esteban On Sep 23, 2013, at 11:19 AM, kilon lt; thekilon@.co gt; wrote: EstebanLM wrote also, putting your code in review needed would help to reviewers to notice that you submitted something :) On Sep 23, 2013, at 11:07 AM, Esteban Lorenzano lt; estebanlm@ gt; wrote: you submitted yesterday... a sunday... and we have a not so big community, and all of us has a lot of tasks and things to do. you should be a bit more patient :) Esteban On Sep 23, 2013, at 10:56 AM, kilon lt; thekilon@.co gt; wrote: I take it from the silence , there is no interest in my code :D That's fine I will create my own HelpTopic class and keep it independent from pharo internal libs so I dont have to bother people with slices they don't deem important :) Makes my life easier too ;) -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709730.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com. No problemo this is why I submitted this slice to see how the overall process work and gain some experience so when the time comes to fix a pharo bug I can do it properly. yeah this is why I decided to keep code bases separate. I don't see a need for me to wait so long for a review to my code cause I will want to move on eventually. And plus I create more work for you and as you said there too few of you and you already very busy. And I totally understand that and I am here to make your life easier and not harder ;) So its no problem I will continue the effort alone, and ping this list back when I have something substantial to show. -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709735.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com. -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709763.html Sent from the Pharo Smalltalk Developers mailing list archive at
Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle
Here is my 100% personal opinion: I don't like the copyShuffle. To me, the rules are quite clear: sort shuffle reverse etc... - perform modification in place sorted shuffled reversed etc... - answer a copy I hope the methods comments are clear. Does PBE tells about these conventions? It would be a good thing. And I don't like to have mutexes in base library, the less we have, the better. If a user is going to modify the same object concurrently, he/she takes care of mutual exclusion. 2013/9/23 Max Leske maxle...@gmail.com Sven suggested posting this on the list for discussion, so here you go: Maybe this should be discussed on the list, your are going to break API. Note that there is also #sort and #sorted with similar copy behavior. Also, I am not sure that basic operations should use mutexes to protect themselves by default: there is a cost when you are a single threaded user. Even in Java there are synchronized and non-synchronized versions of collections. IMHO, the protection should happen in your app, and basic collections do not have to be thread safe. Sven #shuffle does not use CollectionmutexForPicking as other users of #randomForPicking demonstrate. This can lead to race conditions (found in our application). In addition, there are now #shuffle, #shuffled, #shuffleBy: and #shuffledBy: where #shuffled and #shuffledBy: shuffle a copy and answers that. This is very confusing. I propose a fix where #shuffled and #shuffledBy: are renamed to #copyShuffle and #copyShuffledBy: and moved to the copying protocol. #shuffle and #copyShuffle will use the mutex to prevent race conditions.
Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle
On 23 September 2013 14:34, Max Leske maxle...@gmail.com wrote: On 23.09.2013, at 15:20, Frank Shearar frank.shea...@gmail.com wrote: On 23 September 2013 14:17, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com wrote: Here is my 100% personal opinion: I don't like the copyShuffle. To me, the rules are quite clear: sort shuffle reverse etc... - perform modification in place sorted shuffled reversed etc... - answer a copy I hope the methods comments are clear. Does PBE tells about these conventions? It would be a good thing. And I don't like to have mutexes in base library, the less we have, the better. If a user is going to modify the same object concurrently, he/she takes care of mutual exclusion. Especially since locks don't compose. If you _really_ cared about accessing something concurrently, you'd share immutable data structures. I don't quite follow. Could you elaborate? Hopefully it's uncontroversial to assert that locks don't compose. If you only ever have one thread of execution, you don't have any concurrency issues, and locks serve no purpose. If you do have multiple threads of execution, then you have a few choices for sharing data: * you can use a lock around mutable data (but lock-using blocks of code don't compose, so you end up with loads of bugs or deadlocks or nests of locks, or all of the above) * you can share a _copy_ of data. In the latter case, you can share an actual copy, or share a pointer to a structure that can't change. If it can't change, you can't have a reader accidentally reading something from a structure halfway through the writer writing to it. Sharing some immutable chunk of state lets you save the memory taken up by a copy, but also prevents all the race condition things you usually get with shared mutable state. frank frank 2013/9/23 Max Leske maxle...@gmail.com Sven suggested posting this on the list for discussion, so here you go: Maybe this should be discussed on the list, your are going to break API. Note that there is also #sort and #sorted with similar copy behavior. Also, I am not sure that basic operations should use mutexes to protect themselves by default: there is a cost when you are a single threaded user. Even in Java there are synchronized and non-synchronized versions of collections. IMHO, the protection should happen in your app, and basic collections do not have to be thread safe. Sven #shuffle does not use CollectionmutexForPicking as other users of #randomForPicking demonstrate. This can lead to race conditions (found in our application). In addition, there are now #shuffle, #shuffled, #shuffleBy: and #shuffledBy: where #shuffled and #shuffledBy: shuffle a copy and answers that. This is very confusing. I propose a fix where #shuffled and #shuffledBy: are renamed to #copyShuffle and #copyShuffledBy: and moved to the copying protocol. #shuffle and #copyShuffle will use the mutex to prevent race conditions.
Re: [Pharo-dev] Extending HelpTopic
ok thank you for the clarifications :) -- View this message in context: http://forum.world.st/Extending-HelpTopic-tp4709645p4709786.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
[Pharo-dev] Help with reviewing needed
Hi, It would really be helpful if more people would review: https://pharo.fogbugz.com/f/filters/36/Review because if it has to wait for me, it might wait for a very long time. Marcus signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] [NB] Trying to implement a ReadStream on NBExternalAddress
Hi Jan, I think I will add the ByteArray accessor to NBExternalAddress today or tomorrow since I need it as well for another project. Concerning the Streams, I think it is the easiest solution to wrap around a ByteArray. Otherwise you could subclass one of the main stream classes and implement your own primitive methods with FFI to read and write bytes. In the worst case you will have to implement all primitive methods with FFI that you find in the StandardFileStream. On 2013-09-22, at 10:12, Jan van de Sandt jvdsa...@gmail.com wrote: Hello, I'm trying to implement a binary ReadStream that gets its data not from a Smalltalk collection but from some external memory address. I got this address from a library call using NativeBoost. The NBExternalAddress has methods to access bytes, int's and longs but there is no method to get a ByteArray starting at a specified offset and with a specified length. I need a method like this to implement the ReadStreamnext: method efficiently. Is it possible ti implement such a method or are there other ways to implement a ReadStream efficiently? In [1] I read that there was already an idea to implement a nbAddressAt: method. This would also be using in combination with NativeBoost class#memCopy:to:size Regrads, Jan. [1] http://forum.world.st/Pharo-dev-NB-Review-amp-fixes-amp-ideas-td4698514.html signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] Use pharo users mailing list
The one I found curious is that when I go to smalltalk tag http://stackoverflow.com/questions/tagged/pharo+smalltalk http://stackoverflow.com/questions/tagged/pharo+smalltalk Almost all questions for smalltalk are about pharo. Are we by any chance more popular than we think ? :D Or maybe smalltalkers by large don't like stackoverflow. Its strange though. philippeback wrote Google and a copy of the list in there is fine enough for me. SO is okay but frankly, I do not go there to look for stuff/answer questions, but because my google search sends me there. Where we could have exposure would be on things like infoQ. Regards, --- Philippe Back Dramatic Performance Improvements Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027 Mail: phil@ | Web: http://philippeback.eu Blog: http://philippeback.be | Twitter: @philippeback Youtube: http://www.youtube.com/user/philippeback/videos High Octane SPRL rue cour Boisacq 101 | 1301 Bierges | Belgium Pharo Consortium Member - http://consortium.pharo.org/ Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller On Mon, Sep 23, 2013 at 2:33 PM, Esteban A. Maringolo lt; emaringolo@ gt;wrote: The difference not only lies in the format, but also in the user base. I'm 30+ years old, and I grew up using bulletin boards, newsgroups and mailing list, but there is a big generation of programmers (emphasis in the quotes) that will never subscribe to a mailing list, some don't even know what a mailing list is. They grew up using sites like Yahoo Answers, and expect the same for their programming questions. I guess it is the same that happened in the transition from newsgroups to mailing lists, and as in the bbc to newsgroups, and newsgroups to mailing lists, every new generation seems to me like an order of magnitude bigger. I think BOTH options are okay, it is, a user list and StackOverflow like websites. The SEO of the later is really good. The flattening of the question/answer curve may have to do with the fact that most questions have been answered and they start to repeat. I use StackOverflow and SuperUser on a daily basis. And I do find most of the answers I need. To me the radical choice would be to merge both users and development mailing lists. The separation is okay from an organization point of view, but the volume today is no that big as to justify fragmentation, seems like an early optimization. Regards, Esteban A. Maringolo 2013/9/23 H. Hirzel lt; hannes.hirzel@ gt;: On 9/23/13, Stephan Eggermont lt; stephan@ gt; wrote: Kilon wrote Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for small languages. There are obstacles but one cannot say that it is seriously unsuitable. Stackoverflow question demand a certain format, typically something like - statement of what you want to accomplish - attempt a solution with code which has problems - question Good questions will get closed by clueless people. Mostly if the form does not fit. And if there are Pharo people (maybe earned in another area) with enough reputation points this may be prevented Good answers will get downvoted because they go against majority views. Why? The ranking system is heavily skewed towards popular languages. It is based on the number of hits which is naturally less in less popular languages. However subcommunities may function well in stackoverflow. the tagging and referencing system is excellent. Stackoverflow doesn't allow discussions (and interesting questions), No, but that is not the aim of the site. It is a question and answer site for _coding_ and maybe _design_ problems to a certain extent. However it allows for wiki pages. Any answer may be turned into a wiki page. which is a major reason to have these lists. List are good in addition. --Hannes To see for yourself, take a look at the questions related to OODBs. Stephan -- View this message in context: http://forum.world.st/Use-pharo-users-mailing-list-tp4709698p4709785.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Re: [Pharo-dev] Integration Process
Please, this is very well received! I have no clue on how to contribute back, it is not a streamlined process. Thank you Camillo. Esteban A. Maringolo 2013/9/23 Camillo Bruni camillobr...@gmail.com: On 2013-09-23, at 05:13, Esteban Lorenzano esteba...@gmail.com wrote: On Sep 23, 2013, at 6:21 AM, Camillo Bruni camillobr...@gmail.com wrote: I spent today 10mins explaining step by step on how to regular Pharo programmers how to create a bugfix for Pharo! THIS IS BAD! There are many more motivated Pharo programmers outside RMoD, and I am sure that quite some of them would actually provide bug fixes. The current bug-report process has a way too steep learning curve. There are a few things we have to change here: 1. make bugs.pharo.org finally work with dots in the email message 2. make bugs.pharo.org automatically send a password reset request (in the worst case we do a redirect/curl on the normal fogbugz site) 3. make the anonymous inbox work on the smalltalkhub I would not say anonymous... public, yes :) yes this is what I meant, committing without having to be added manually to the contributors list.
Re: [Pharo-dev] Help with reviewing needed
Le 23/09/2013 17:11, Camillo Bruni a écrit : These are all cases with the status Fix Review Needed = load the changes in a fresh 3.0 image Some of the fixes are for 2.0 :) = review the changes = leave feedback in the issue tracker - positive = set the status to Fix to Include - negative = set the status to Work Needed I'm not allowed to set the status to Work Needed (I'm looking at 11628), so maybe reviewing is not for everybody on the mailing-list? Thierry On 2013-09-23, at 12:02, p...@highoctane.be p...@highoctane.be wrote: These are all closed things in Inbox. What's the help about? Phil On Mon, Sep 23, 2013 at 4:08 PM, Marcus Denker marcus.den...@inria.frwrote: Hi, It would really be helpful if more people would review: https://pharo.fogbugz.com/f/filters/36/Review because if it has to wait for me, it might wait for a very long time. Marcus -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Re: [Pharo-dev] Help with reviewing needed
These are all cases with the status Fix Review Needed = load the changes in a fresh 3.0 image = review the changes = leave feedback in the issue tracker - positive = set the status to Fix to Include - negative = set the status to Work Needed On 2013-09-23, at 12:02, p...@highoctane.be p...@highoctane.be wrote: These are all closed things in Inbox. What's the help about? Phil On Mon, Sep 23, 2013 at 4:08 PM, Marcus Denker marcus.den...@inria.frwrote: Hi, It would really be helpful if more people would review: https://pharo.fogbugz.com/f/filters/36/Review because if it has to wait for me, it might wait for a very long time. Marcus signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle
On Sep 23, 2013, at 3:33 , Max Leske maxle...@gmail.com wrote: If a user is going to modify the same object concurrently, he/she takes care of mutual exclusion. Agreed. BUT: the Random object used by these methods is the same one that is used by #atRandom for instance, hence the race condition. There is no way anyone can safely use these methods without the mutex, single threaded or not. Calls to methods using that same Random object can be all over the place and also in the base system. It seems to me an existing Random instance is used in this case mostly* for performance. One could argue that since the Random in this case is used for a bulk operation, for which the object creation cost is largely amortized for collection sizes 20, it's acceptable to instead use Random new by default, which wouldn't suffer from the same race conditions. While still slower than a mutex-protected version for single-threaded code, it would also scale correctly if the users (and vm) are actually multi-threaded. [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffle] bench '208,000 per second.' '222,000 per second.' '223,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleWithMutex] bench '188,000 per second.' '186,000 per second.''184,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleNewRandom] bench '167,000 per second.' '166,000 per second.' '167,000 per second.' Cheers, Henry * Low seed entropy is another issue, but if purely random shuffling is a critical requirement, one shouldn't use the default Random generator anyways... signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle
On Sep 23, 2013, at 3:17 PM, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com wrote: Here is my 100% personal opinion: I don't like the copyShuffle. To me, the rules are quite clear: sort shuffle reverse etc... - perform modification in place sorted shuffled reversed etc... - answer a copy I hope the methods comments are clear. Does PBE tells about these conventions? It would be a good thing. I do not remember. Because probably that we wrote it before. I will log it and see for the next release of PBE. And I don't like to have mutexes in base library, the less we have, the better. If a user is going to modify the same object concurrently, he/she takes care of mutual exclusion. 2013/9/23 Max Leske maxle...@gmail.com Sven suggested posting this on the list for discussion, so here you go: Maybe this should be discussed on the list, your are going to break API. Note that there is also #sort and #sorted with similar copy behavior. Also, I am not sure that basic operations should use mutexes to protect themselves by default: there is a cost when you are a single threaded user. Even in Java there are synchronized and non-synchronized versions of collections. IMHO, the protection should happen in your app, and basic collections do not have to be thread safe. Sven #shuffle does not use CollectionmutexForPicking as other users of #randomForPicking demonstrate. This can lead to race conditions (found in our application). In addition, there are now #shuffle, #shuffled, #shuffleBy: and #shuffledBy: where #shuffled and #shuffledBy: shuffle a copy and answers that. This is very confusing. I propose a fix where #shuffled and #shuffledBy: are renamed to #copyShuffle and #copyShuffledBy: and moved to the copying protocol. #shuffle and #copyShuffle will use the mutex to prevent race conditions.
Re: [Pharo-dev] Help with reviewing needed
These are all closed things in Inbox. What's the help about? Phil On Mon, Sep 23, 2013 at 4:08 PM, Marcus Denker marcus.den...@inria.frwrote: Hi, It would really be helpful if more people would review: https://pharo.fogbugz.com/f/filters/36/Review because if it has to wait for me, it might wait for a very long time. Marcus
Re: [Pharo-dev] Help with reviewing needed
= review the changes = leave feedback in the issue tracker - positive = set the status to Fix to Include - negative = set the status to Work Needed I'm not allowed to set the status to Work Needed (I'm looking at 11628), so maybe reviewing is not for everybody on the mailing-list? Did you click on resolve / edit? signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] Help with reviewing needed
Le 23/09/2013 17:25, Stéphane Ducasse a écrit : On Sep 23, 2013, at 5:23 PM, Goubier Thierry thierry.goub...@cea.fr wrote: Le 23/09/2013 17:11, Camillo Bruni a écrit : These are all cases with the status Fix Review Needed = load the changes in a fresh 3.0 image Some of the fixes are for 2.0 :) = review the changes = leave feedback in the issue tracker - positive = set the status to Fix to Include - negative = set the status to Work Needed I'm not allowed to set the status to Work Needed (I'm looking at 11628), so maybe reviewing is not for everybody on the mailing-list? Strange, you have a fogbugz account I imagine so in that case I do not understand anything. Because normally we all can tag entries. Me not understanding I need to reactivate the issue :( to be able to set it to Work needed :) Sort of done :) Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
[Pharo-dev] [update 2.0] #20419
20419 - 11502 Override Class #setName: https://pharo.fogbugz.com/f/cases/11502 There is a dirty package after this, it will be fixed in 420. Marcus signature.asc Description: Message signed with OpenPGP using GPGMail
[Pharo-dev] [regression reporter]regression occurred
https://ci.inria.fr/pharo/job/Pharo-3.0-Update-Step-2.1-Validation/label=win/524/ 1 regressions found. KernelTests.Classes.ClassTest.testClassRespectsPolymorphismWithTrait
[Pharo-dev] [regression reporter]regression occurred
https://ci.inria.fr/pharo/job/Pharo-3.0-Update-Step-2.1-Validation/label=mac/524/ 1 regressions found. KernelTests.Classes.ClassTest.testClassRespectsPolymorphismWithTrait
Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle
100% agree. Do it right do it fast. We must not turn usage of the library into something fragile for the sake of speed. We already make the code itself fragile more often than not in term of complexity (harder to understand/test/change). Especially, introduction of shared mutable states (global, class vars, singleton or any other form) should ring an alarm in reviewers head (This is some very old Squeak code in this case, so Squeakers are to blame, but we're all in same bath). 2013/9/23 Henrik Johansen henrik.s.johan...@veloxit.no On Sep 23, 2013, at 3:33 , Max Leske maxle...@gmail.com wrote: If a user is going to modify the same object concurrently, he/she takes care of mutual exclusion. Agreed. BUT: the Random object used by these methods is the same one that is used by #atRandom for instance, hence the race condition. There is no way anyone can safely use these methods without the mutex, single threaded or not. Calls to methods using that same Random object can be all over the place and also in the base system. It seems to me an existing Random instance is used in this case mostly* for performance. One could argue that since the Random in this case is used for a bulk operation, for which the object creation cost is largely amortized for collection sizes 20, it's acceptable to instead use Random new by default, which wouldn't suffer from the same race conditions. While still slower than a mutex-protected version for single-threaded code, it would also scale correctly if the users (and vm) are actually multi-threaded. [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffle] bench '208,000 per second.' '222,000 per second.' '223,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleWithMutex] bench '188,000 per second.' '186,000 per second.''184,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleNewRandom] bench '167,000 per second.' '166,000 per second.' '167,000 per second.' Cheers, Henry * Low seed entropy is another issue, but if purely random shuffling is a critical requirement, one shouldn't use the default Random generator anyways...
Re: [Pharo-dev] [update 2.0] #20419
that is 30419 right? On 2013-09-23, at 14:19, Marcus Denker marcus.den...@inria.fr wrote: 20419 - 11502 Override Class #setName: https://pharo.fogbugz.com/f/cases/11502 There is a dirty package after this, it will be fixed in 420. Marcus signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] [update 2.0] #20419
yes, hand made changeset. On Mon, Sep 23, 2013 at 7:24 PM, Camillo Bruni camillobr...@gmail.comwrote: that is 30419 right? On 2013-09-23, at 14:19, Marcus Denker marcus.den...@inria.fr wrote: 20419 - 11502 Override Class #setName: https://pharo.fogbugz.com/f/cases/11502 There is a dirty package after this, it will be fixed in 420. Marcus -- -- Marcus Denker -- den...@acm.org http://www.marcusdenker.de
Re: [Pharo-dev] [Moose-dev] Code functionality assessment
I blogged it:) http://www.moosetechnology.org/news/assessing-ode-with-graphet Cheers, Doru On Mon, Sep 23, 2013 at 7:36 PM, Tudor Girba tu...@tudorgirba.com wrote: Very nice work, Natalia! Doru On Mon, Sep 23, 2013 at 6:12 PM, Natalia Tymchuk natalia.tymc...@unikernel.net wrote: Hello, I wrote another blog post concerning my project on Google Summer of Code, and there's how I assessed the results using Graph-ET. http://nataliatymchuk.blogspot.com/2013/09/code-functionality-assessment.html Best regard, Natalia ___ Moose-dev mailing list moose-...@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev -- www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com Every thing has its own flow
[Pharo-dev] [regression reporter]regression occurred
https://ci.inria.fr/pharo/job/Pharo-3.0-Update-Step-2.1-Validation/label=linux-stable-worker/524/ 1 regressions found. KernelTests.Classes.ClassTest.testClassRespectsPolymorphismWithTrait
Re: [Pharo-dev] [update 2.0] #20419
very good https://ci.inria.fr/pharo-contribution/job/XMLParser/ is green again :) On 2013-09-23, at 14:25, Marcus Denker marcus.den...@inria.fr wrote: yes, hand made changeset. On Mon, Sep 23, 2013 at 7:24 PM, Camillo Bruni camillobr...@gmail.comwrote: that is 30419 right? On 2013-09-23, at 14:19, Marcus Denker marcus.den...@inria.fr wrote: 20419 - 11502 Override Class #setName: https://pharo.fogbugz.com/f/cases/11502 There is a dirty package after this, it will be fixed in 420. Marcus -- -- Marcus Denker -- den...@acm.org http://www.marcusdenker.de signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] Use pharo users mailing list
Hannes wrote: In reply to this post by Stephan Eggermont On 9/23/13, Stephan Eggermont [hidden email] wrote: Kilon wrote Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for small languages. There are obstacles but one cannot say that it is seriously unsuitable. I feel fully qualified to make that statement. Getting voted on by majority views is not exactly what we need. Especially not in a cargo-cult driven profession. Good questions will get closed by clueless people. Mostly if the form does not fit. Nope. there has been a strong change in what is deemed to be an acceptable question on SO in the past years. And not in the right direction. I know several posters here who have been bitten by that. And if there are Pharo people (maybe earned in another area) with enough reputation points this may be prevented That would be nice, but isn't the case. Stackoverflow doesn't work like that. Good answers will get downvoted because they go against majority views. Why? Because stackoverflow is an opinion site, dominated by popularity. Nobody says an answer has to be right. Like I said, take a look at questions on OODBs. The ranking system is heavily skewed towards popular languages. It is based on the number of hits which is naturally less in less popular languages. However subcommunities may function well in stackoverflow. No, not really. It means that members of subcommunities have less rights and power. There is no value in subdividing our community further. Stephan
Re: [Pharo-dev] [Moose-dev] Code functionality assessment
Thanks, Doru. Best, Natalia 23.09.13 20:43, Tudor Girba ???(??): I blogged it:) http://www.moosetechnology.org/news/assessing-ode-with-graphet Cheers, Doru On Mon, Sep 23, 2013 at 7:36 PM, Tudor Girba tu...@tudorgirba.com mailto:tu...@tudorgirba.com wrote: Very nice work, Natalia! Doru On Mon, Sep 23, 2013 at 6:12 PM, Natalia Tymchuk natalia.tymc...@unikernel.net mailto:natalia.tymc...@unikernel.net wrote: Hello, I wrote another blog post concerning my project on Google Summer of Code, and there's how I assessed the results using Graph-ET. http://nataliatymchuk.blogspot.com/2013/09/code-functionality-assessment.html Best regard, Natalia ___ Moose-dev mailing list moose-...@iam.unibe.ch mailto:moose-...@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev -- www.tudorgirba.com http://www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com http://www.tudorgirba.com Every thing has its own flow
Re: [Pharo-dev] Use pharo users mailing list
Hello Stephan On 9/23/13, Stephan Eggermont step...@stack.nl wrote: Hannes wrote: In reply to this post by Stephan Eggermont On 9/23/13, Stephan Eggermont [hidden email] wrote: Kilon wrote Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for small languages. There are obstacles but one cannot say that it is seriously unsuitable. I feel fully qualified to make that statement. http://stackoverflow.com/search?q=Stephan+Eggermont 5 questions, all three years ago? No Pharo question. Or do you use a nick name these days? And where are the closed Pharo stackoverflow questions? Getting voted on by majority views is not exactly what we need. Especially not in a cargo-cult driven profession. And what is Pharo? A closed sect with people who think everybody else is clueless and does not want to operate _the_ open space about programming questions? There are other small communities on stackoverflow. For example XSL-FO, a technology which has been around for a long time, good concepts, has mature tools, is useful but still is not popular. The main thing is not about voting but about the person who asks accepting the answer. And that is often the answer which later on gets votes. The accepted answer is likely the answer which solves the programming problem asked. And the questions are well organized. The existing pool of 283 Pharo questions is a useful resource. More useful that searching through the mailing list archive. http://stackoverflow.com/questions/tagged/pharo Good questions will get closed by clueless people. Mostly if the form does not fit. Nope. there has been a strong change in what is deemed to be an acceptable question on SO in the past years. And not in the right direction. I know several posters here who have been bitten by that. Could you give some examples, please? And if there are Pharo people (maybe earned in another area) with enough reputation points this may be prevented That would be nice, but isn't the case. Stackoverflow doesn't work like that. Good answers will get downvoted because they go against majority views. It depends on which tag set you operate in. I doubt that this applies to a question tagged 'Pharo'. Proper tagging is important to frame the question properly. Why? Because stackoverflow is an opinion site, dominated by popularity. Yes, popular languages and thus the questions about them get a lot of reputation points. But that is not all that important. The important thing is that you can organize programming questions in a good way and solve them nicely. And the content is under a creative common license, thus may he harvested for a FAQ list. Nobody says an answer has to be right. Like I said, take a look at questions on OODBs. We are not talking about OODBs where it is natural that divergent opinions come in but about Smalltalk programming which is a well established mature programming technology, has acceptance of being useful (but only for 'specialists' as the general opinion goes) and thus has a narrow focus. So the subcommunity can operate quite unhampered in stackoverflow :-) The ranking system is heavily skewed towards popular languages. Sure, but is this a problem? There are 1000 million speakers of Chinese and I still did not learn Chinese yet. It is based on the number of hits which is naturally less in less popular languages. However subcommunities may function well in stackoverflow. No, not really. It means that members of subcommunities have less rights and power. There is no value in subdividing our community further. You mean by having questions on stackoverflow and the mailing list? Let me summarize: Nobody forces you to operate on stackoverflow, but I consider both, the mailing list and stackoverflow, as useful. And some cross-referencing might be useful. --Hannes P.S. It is easy to monitor what is happening on stackoverflow regarding 'Pharo' even if you do not want to participate. Just visit http://stackoverflow.com/questions/tagged/pharo from time to time.
Re: [Pharo-dev] SHA1 changed ??
https://pharo.fogbugz.com/f/cases/11664/SHA1-hashStream-should-return-a-ByteArray-of-size-20 with slice On 13 Sep 2013, at 15:38, Sven Van Caekenberghe s...@stfx.eu wrote: Bump. Max ? On 30 Aug 2013, at 13:52, Sven Van Caekenberghe s...@stfx.eu wrote: On 30 Aug 2013, at 13:39, Marcus Denker marcus.den...@inria.fr wrote: On Aug 30, 2013, at 1:35 PM, Esteban Lorenzano esteba...@gmail.com wrote: I'm not aware of such a change... this is probably an error/side effect of something else. This is a side effect of the merging of the two nearly identical but duplicated SHA1 implementations in the image… https://pharo.fogbugz.com/f/cases/5469/SHA1-duplicated-implementations I want to wait for Max to respond/explain. But according to http://en.wikipedia.org/wiki/Sha1 SHA-1 produces a 160-bit (20-byte) hash value. A SHA-1 hash value is typically expressed as a hexadecimal number, 40 digits long. The previous contract of returning a ByteArray of size 20 is more correct than an Integer, although both are mathematically equivalent. It is also very easy to send #hex to a ByteArray to get the most common human representation of such a hash. Esteban On Aug 29, 2013, at 3:05 PM, Sven Van Caekenberghe s...@stfx.eu wrote: Max, Why was the contract of SHA1hashStream: changed ? It used to return a ByteArray like other HashFunction subclasses, now it returns an Integer. I see that you also changed the tests with this assumption. MD5 hashMessage: 'foo'. #[172 189 24 219 76 194 248 92 237 239 101 79 204 196 164 216] SHA1 hashMessage: 'foo'. 68123873083688143418383284816464454849230703155 It broke Zinc-WebSockets in 3.0 and now I will have to do an ugly hack to make the code work on multiple Pharo versions. Can you please explain ? Sven
Re: [Pharo-dev] Use pharo users mailing list
If StackOverflow is dead, what is replacing it? Are people reverting to discussion groups/mail lists? Or different QA sites, like the aforementioned InfoQ? (Alan Kay is right: programming really IS pop culture.) On Mon, Sep 23, 2013 at 9:31 AM, Stephan Eggermont step...@stack.nl wrote: Hannes wrote: In reply to this post by Stephan Eggermont On 9/23/13, Stephan Eggermont [hidden email] wrote: Kilon wrote Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for small languages. There are obstacles but one cannot say that it is seriously unsuitable. I feel fully qualified to make that statement. Getting voted on by majority views is not exactly what we need. Especially not in a cargo-cult driven profession. Good questions will get closed by clueless people. Mostly if the form does not fit. Nope. there has been a strong change in what is deemed to be an acceptable question on SO in the past years. And not in the right direction. I know several posters here who have been bitten by that. And if there are Pharo people (maybe earned in another area) with enough reputation points this may be prevented That would be nice, but isn't the case. Stackoverflow doesn't work like that. Good answers will get downvoted because they go against majority views. Why? Because stackoverflow is an opinion site, dominated by popularity. Nobody says an answer has to be right. Like I said, take a look at questions on OODBs. The ranking system is heavily skewed towards popular languages. It is based on the number of hits which is naturally less in less popular languages. However subcommunities may function well in stackoverflow. No, not really. It means that members of subcommunities have less rights and power. There is no value in subdividing our community further. Stephan
Re: [Pharo-dev] Use pharo users mailing list
P.S. I found your Pharo questions http://stackoverflow.com/search?q=user%3A35306+[pharo] 28 of them. Maybe this is a case http://stackoverflow.com/questions/13788585/smalltalk-binding/13789481#13789481 Smalltalk binding Your answer has 0 points, the accepted anwer given by Hernan has 5 points. On 9/23/13, H. Hirzel hannes.hir...@gmail.com wrote: Hello Stephan On 9/23/13, Stephan Eggermont step...@stack.nl wrote: Hannes wrote: In reply to this post by Stephan Eggermont On 9/23/13, Stephan Eggermont [hidden email] wrote: Kilon wrote Here is a radical suggestion you probably don't want to hear. Close down Pharo users mailing list, redirect everyone to stackoverflow. Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for small languages. There are obstacles but one cannot say that it is seriously unsuitable. I feel fully qualified to make that statement. http://stackoverflow.com/search?q=Stephan+Eggermont 5 questions, all three years ago? No Pharo question. Or do you use a nick name these days? And where are the closed Pharo stackoverflow questions? Getting voted on by majority views is not exactly what we need. Especially not in a cargo-cult driven profession. And what is Pharo? A closed sect with people who think everybody else is clueless and does not want to operate _the_ open space about programming questions? There are other small communities on stackoverflow. For example XSL-FO, a technology which has been around for a long time, good concepts, has mature tools, is useful but still is not popular. The main thing is not about voting but about the person who asks accepting the answer. And that is often the answer which later on gets votes. The accepted answer is likely the answer which solves the programming problem asked. And the questions are well organized. The existing pool of 283 Pharo questions is a useful resource. More useful that searching through the mailing list archive. http://stackoverflow.com/questions/tagged/pharo Good questions will get closed by clueless people. Mostly if the form does not fit. Nope. there has been a strong change in what is deemed to be an acceptable question on SO in the past years. And not in the right direction. I know several posters here who have been bitten by that. Could you give some examples, please? And if there are Pharo people (maybe earned in another area) with enough reputation points this may be prevented That would be nice, but isn't the case. Stackoverflow doesn't work like that. Good answers will get downvoted because they go against majority views. It depends on which tag set you operate in. I doubt that this applies to a question tagged 'Pharo'. Proper tagging is important to frame the question properly. Why? Because stackoverflow is an opinion site, dominated by popularity. Yes, popular languages and thus the questions about them get a lot of reputation points. But that is not all that important. The important thing is that you can organize programming questions in a good way and solve them nicely. And the content is under a creative common license, thus may he harvested for a FAQ list. Nobody says an answer has to be right. Like I said, take a look at questions on OODBs. We are not talking about OODBs where it is natural that divergent opinions come in but about Smalltalk programming which is a well established mature programming technology, has acceptance of being useful (but only for 'specialists' as the general opinion goes) and thus has a narrow focus. So the subcommunity can operate quite unhampered in stackoverflow :-) The ranking system is heavily skewed towards popular languages. Sure, but is this a problem? There are 1000 million speakers of Chinese and I still did not learn Chinese yet. It is based on the number of hits which is naturally less in less popular languages. However subcommunities may function well in stackoverflow. No, not really. It means that members of subcommunities have less rights and power. There is no value in subdividing our community further. You mean by having questions on stackoverflow and the mailing list? Let me summarize: Nobody forces you to operate on stackoverflow, but I consider both, the mailing list and stackoverflow, as useful. And some cross-referencing might be useful. --Hannes P.S. It is easy to monitor what is happening on stackoverflow regarding 'Pharo' even if you do not want to participate. Just visit http://stackoverflow.com/questions/tagged/pharo from time to time.
Re: [Pharo-dev] Help with reviewing needed
Le 23/09/2013 17:27, Camillo Bruni a écrit : = review the changes = leave feedback in the issue tracker - positive = set the status to Fix to Include - negative = set the status to Work Needed I'm not allowed to set the status to Work Needed (I'm looking at 11628), so maybe reviewing is not for everybody on the mailing-list? Did you click on resolve / edit? I did, but in fact I needed to click on Reactivate :) ah yes, sorry :), I a thought about the wrong status... signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] [Moose-dev] Code functionality assessment
Very nice work, Natalia! Doru On Mon, Sep 23, 2013 at 6:12 PM, Natalia Tymchuk natalia.tymc...@unikernel.net wrote: Hello, I wrote another blog post concerning my project on Google Summer of Code, and there's how I assessed the results using Graph-ET. http://nataliatymchuk.blogspot.com/2013/09/code-functionality-assessment.html Best regard, Natalia ___ Moose-dev mailing list moose-...@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-dev] Use pharo users mailing list
On 9/23/13, blake dsblakewat...@gmail.com wrote: If StackOverflow is dead, what is replacing it? Are people reverting to discussion groups/mail lists? Or different QA sites, like the aforementioned InfoQ? (Alan Kay is right: programming really IS pop culture.) And what does this imply? [snip]
Re: [Pharo-dev] [NB] Trying to implement a ReadStream on NBExternalAddress
On 23 September 2013 16:23, Camillo Bruni camillobr...@gmail.com wrote: Hi Jan, I think I will add the ByteArray accessor to NBExternalAddress today or tomorrow since I need it as well for another project. hmm, reading from memory into bytearray can be done with memory copy: inputs: address , offset , size to read newAddress := NBExternalAddress value: address value + offset. buffer := ByteArray new: size. NativeBoost memCopy: newAddress to: buffer size: size. same way, writing, just swap the source and destination: newAddress := NBExternalAddress value: address value + offset. buffer is given from somewhere. NativeBoost memCopy: buffer to: newAddress size: size. but as Jan noted, you cannot tell to write starting at specified offset from/to bytearray, e.g.: copy from: address to: buffer + someOffset neither: copy from: buffer + someOffset to: someAddress this where we need to introduce special 'field address' type, so you can construct it like this: offsetAddress := buffer nbAddressAt: offset. so then you can use it to pass to any function, which expects address, like memory copy or any foreign function. Since objects are moving in memory, we cannot calculate address of field before hand: address := NBExternalAddress value: someObject address + offset. because if GC will happen, after computing such address and its actual use, you will read/write to wrong location. Thus we should keep oop + offset up to the point of passing it to external function, under controllable conditions, that guarantee there's no GC is possible. Concerning the Streams, I think it is the easiest solution to wrap around a ByteArray. Otherwise you could subclass one of the main stream classes and implement your own primitive methods with FFI to read and write bytes. In the worst case you will have to implement all primitive methods with FFI that you find in the StandardFileStream. On 2013-09-22, at 10:12, Jan van de Sandt jvdsa...@gmail.com wrote: Hello, I'm trying to implement a binary ReadStream that gets its data not from a Smalltalk collection but from some external memory address. I got this address from a library call using NativeBoost. The NBExternalAddress has methods to access bytes, int's and longs but there is no method to get a ByteArray starting at a specified offset and with a specified length. I need a method like this to implement the ReadStreamnext: method efficiently. Is it possible ti implement such a method or are there other ways to implement a ReadStream efficiently? In [1] I read that there was already an idea to implement a nbAddressAt: method. This would also be using in combination with NativeBoost class#memCopy:to:size Regrads, Jan. [1] http://forum.world.st/Pharo-dev-NB-Review-amp-fixes-amp-ideas-td4698514.html -- Best regards, Igor Stasenko.
Re: [Pharo-dev] [NB] Trying to implement a ReadStream on NBExternalAddress
On 23 September 2013 21:40, Igor Stasenko siguc...@gmail.com wrote: On 23 September 2013 16:23, Camillo Bruni camillobr...@gmail.com wrote: Hi Jan, I think I will add the ByteArray accessor to NBExternalAddress today or tomorrow since I need it as well for another project. hmm, reading from memory into bytearray can be done with memory copy: inputs: address , offset , size to read newAddress := NBExternalAddress value: address value + offset. buffer := ByteArray new: size. NativeBoost memCopy: newAddress to: buffer size: size. same way, writing, just swap the source and destination: newAddress := NBExternalAddress value: address value + offset. buffer is given from somewhere. NativeBoost memCopy: buffer to: newAddress size: size. but as Jan noted, you cannot tell to write starting at specified offset from/to bytearray, e.g.: copy from: address to: buffer + someOffset neither: copy from: buffer + someOffset to: someAddress this where we need to introduce special 'field address' type, so you can construct it like this: offsetAddress := buffer nbAddressAt: offset. so then you can use it to pass to any function, which expects address, like memory copy or any foreign function. Since objects are moving in memory, we cannot calculate address of field before hand: address := NBExternalAddress value: someObject address + offset. because if GC will happen, after computing such address and its actual use, you will read/write to wrong location. ** after computing and *before* actual use ** Thus we should keep oop + offset up to the point of passing it to external function, under controllable conditions, that guarantee there's no GC is possible. Things would be much simpler if we could have pinning, isnt? :) -- Best regards, Igor Stasenko. -- Best regards, Igor Stasenko.
Re: [Pharo-dev] SHA1 changed ??
Hi Sorry, I was on holidays and didn't see this. On 23.09.2013, at 20:45, Sven Van Caekenberghe s...@stfx.eu wrote: https://pharo.fogbugz.com/f/cases/11664/SHA1-hashStream-should-return-a-ByteArray-of-size-20 with slice On 13 Sep 2013, at 15:38, Sven Van Caekenberghe s...@stfx.eu wrote: Bump. Max ? On 30 Aug 2013, at 13:52, Sven Van Caekenberghe s...@stfx.eu wrote: On 30 Aug 2013, at 13:39, Marcus Denker marcus.den...@inria.fr wrote: On Aug 30, 2013, at 1:35 PM, Esteban Lorenzano esteba...@gmail.com wrote: I'm not aware of such a change... this is probably an error/side effect of something else. This is a side effect of the merging of the two nearly identical but duplicated SHA1 implementations in the image… Yes that's true. Those two classes were nearly identical. I resolved differences by using the latest method versions of differing methods. Therefore it might well be that I changed that method to the way it is today because the current version is the one with the younger timestamp (I think the changes all came from Stef). Cheers, Max https://pharo.fogbugz.com/f/cases/5469/SHA1-duplicated-implementations I want to wait for Max to respond/explain. But according to http://en.wikipedia.org/wiki/Sha1 SHA-1 produces a 160-bit (20-byte) hash value. A SHA-1 hash value is typically expressed as a hexadecimal number, 40 digits long. The previous contract of returning a ByteArray of size 20 is more correct than an Integer, although both are mathematically equivalent. It is also very easy to send #hex to a ByteArray to get the most common human representation of such a hash. Esteban On Aug 29, 2013, at 3:05 PM, Sven Van Caekenberghe s...@stfx.eu wrote: Max, Why was the contract of SHA1hashStream: changed ? It used to return a ByteArray like other HashFunction subclasses, now it returns an Integer. I see that you also changed the tests with this assumption. MD5 hashMessage: 'foo'. #[172 189 24 219 76 194 248 92 237 239 101 79 204 196 164 216] SHA1 hashMessage: 'foo'. 68123873083688143418383284816464454849230703155 It broke Zinc-WebSockets in 3.0 and now I will have to do an ugly hack to make the code work on multiple Pharo versions. Can you please explain ? Sven
Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle
+1 Now I understand the point of max with the name sort/sorted because this is not explicit to me too :) I laways have to think. On Sep 23, 2013, at 6:28 PM, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com wrote: 100% agree. Do it right do it fast. We must not turn usage of the library into something fragile for the sake of speed. We already make the code itself fragile more often than not in term of complexity (harder to understand/test/change). Especially, introduction of shared mutable states (global, class vars, singleton or any other form) should ring an alarm in reviewers head (This is some very old Squeak code in this case, so Squeakers are to blame, but we're all in same bath). 2013/9/23 Henrik Johansen henrik.s.johan...@veloxit.no On Sep 23, 2013, at 3:33 , Max Leske maxle...@gmail.com wrote: If a user is going to modify the same object concurrently, he/she takes care of mutual exclusion. Agreed. BUT: the Random object used by these methods is the same one that is used by #atRandom for instance, hence the race condition. There is no way anyone can safely use these methods without the mutex, single threaded or not. Calls to methods using that same Random object can be all over the place and also in the base system. It seems to me an existing Random instance is used in this case mostly* for performance. One could argue that since the Random in this case is used for a bulk operation, for which the object creation cost is largely amortized for collection sizes 20, it's acceptable to instead use Random new by default, which wouldn't suffer from the same race conditions. While still slower than a mutex-protected version for single-threaded code, it would also scale correctly if the users (and vm) are actually multi-threaded. [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffle] bench '208,000 per second.' '222,000 per second.' '223,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleWithMutex] bench '188,000 per second.' '186,000 per second.''184,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleNewRandom] bench '167,000 per second.' '166,000 per second.' '167,000 per second.' Cheers, Henry * Low seed entropy is another issue, but if purely random shuffling is a critical requirement, one shouldn't use the default Random generator anyways...
Re: [Pharo-dev] [Moose-dev] Code functionality assessment
+1 ! Stef On Sep 23, 2013, at 7:36 PM, Tudor Girba tu...@tudorgirba.com wrote: Very nice work, Natalia! Doru On Mon, Sep 23, 2013 at 6:12 PM, Natalia Tymchuk natalia.tymc...@unikernel.net wrote: Hello, I wrote another blog post concerning my project on Google Summer of Code, and there's how I assessed the results using Graph-ET. http://nataliatymchuk.blogspot.com/2013/09/code-functionality-assessment.html Best regard, Natalia ___ Moose-dev mailing list moose-...@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle
The reason why I don't like the explicit copy, is because this is the default behaviour. In place mutation is an (evil) exception. I'm personnally fine with current conventions: - sort, shuffle, reverse, replace: are imperative, thus you are telling collection, sort yourself ! - sorted clearly sounds as a sorted copy for me. If ever a change was to be made, I would much prefer this to happen on opposite naming, sort - inPlaceSort, or sortYourself :) It's like telling the programmer, hey - a stateful mutation is really what you want, is it? 2013/9/23 Stéphane Ducasse stephane.duca...@inria.fr +1 Now I understand the point of max with the name sort/sorted because this is not explicit to me too :) I laways have to think. On Sep 23, 2013, at 6:28 PM, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com wrote: 100% agree. Do it right do it fast. We must not turn usage of the library into something fragile for the sake of speed. We already make the code itself fragile more often than not in term of complexity (harder to understand/test/change). Especially, introduction of shared mutable states (global, class vars, singleton or any other form) should ring an alarm in reviewers head (This is some very old Squeak code in this case, so Squeakers are to blame, but we're all in same bath). 2013/9/23 Henrik Johansen henrik.s.johan...@veloxit.no On Sep 23, 2013, at 3:33 , Max Leske maxle...@gmail.com wrote: If a user is going to modify the same object concurrently, he/she takes care of mutual exclusion. Agreed. BUT: the Random object used by these methods is the same one that is used by #atRandom for instance, hence the race condition. There is no way anyone can safely use these methods without the mutex, single threaded or not. Calls to methods using that same Random object can be all over the place and also in the base system. It seems to me an existing Random instance is used in this case mostly* for performance. One could argue that since the Random in this case is used for a bulk operation, for which the object creation cost is largely amortized for collection sizes 20, it's acceptable to instead use Random new by default, which wouldn't suffer from the same race conditions. While still slower than a mutex-protected version for single-threaded code, it would also scale correctly if the users (and vm) are actually multi-threaded. [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffle] bench '208,000 per second.' '222,000 per second.' '223,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleWithMutex] bench '188,000 per second.' '186,000 per second.''184,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleNewRandom] bench '167,000 per second.' '166,000 per second.' '167,000 per second.' Cheers, Henry * Low seed entropy is another issue, but if purely random shuffling is a critical requirement, one shouldn't use the default Random generator anyways...
Re: [Pharo-dev] [NB] Trying to implement a ReadStream on NBExternalAddress
Isn't Eliot just implementing this feature, having a segment of non relocatable objects? 2013/9/23 Igor Stasenko siguc...@gmail.com On 23 September 2013 21:40, Igor Stasenko siguc...@gmail.com wrote: On 23 September 2013 16:23, Camillo Bruni camillobr...@gmail.com wrote: Hi Jan, I think I will add the ByteArray accessor to NBExternalAddress today or tomorrow since I need it as well for another project. hmm, reading from memory into bytearray can be done with memory copy: inputs: address , offset , size to read newAddress := NBExternalAddress value: address value + offset. buffer := ByteArray new: size. NativeBoost memCopy: newAddress to: buffer size: size. same way, writing, just swap the source and destination: newAddress := NBExternalAddress value: address value + offset. buffer is given from somewhere. NativeBoost memCopy: buffer to: newAddress size: size. but as Jan noted, you cannot tell to write starting at specified offset from/to bytearray, e.g.: copy from: address to: buffer + someOffset neither: copy from: buffer + someOffset to: someAddress this where we need to introduce special 'field address' type, so you can construct it like this: offsetAddress := buffer nbAddressAt: offset. so then you can use it to pass to any function, which expects address, like memory copy or any foreign function. Since objects are moving in memory, we cannot calculate address of field before hand: address := NBExternalAddress value: someObject address + offset. because if GC will happen, after computing such address and its actual use, you will read/write to wrong location. ** after computing and *before* actual use ** Thus we should keep oop + offset up to the point of passing it to external function, under controllable conditions, that guarantee there's no GC is possible. Things would be much simpler if we could have pinning, isnt? :) -- Best regards, Igor Stasenko. -- Best regards, Igor Stasenko.
[Pharo-dev] slow RPackageOrganizer packageNamed:
@Esteban what is the reason we have to do a case-ignored check for looking up a package in #packageNamed:? seems unnecessary slow to me :/, maybe we can add a #packageNamedIgoreCase: ? signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle
Nicolas Cellier wrote: 100% agree. Do it right do it fast. Do it right + modern cpu speed improvements do it fast + painful debugging plus in the future, system speed improvements may depend entirely on multi-core/multi-threaded operation. cheers -ben We must not turn usage of the library into something fragile for the sake of speed. We already make the code itself fragile more often than not in term of complexity (harder to understand/test/change). Especially, introduction of shared mutable states (global, class vars, singleton or any other form) should ring an alarm in reviewers head (This is some very old Squeak code in this case, so Squeakers are to blame, but we're all in same bath). 2013/9/23 Henrik Johansen henrik.s.johan...@veloxit.no On Sep 23, 2013, at 3:33 , Max Leske maxle...@gmail.com wrote: If a user is going to modify the same object concurrently, he/she takes care of mutual exclusion. Agreed. BUT: the Random object used by these methods is the same one that is used by #atRandom for instance, hence the race condition. There is no way anyone can safely use these methods without the mutex, single threaded or not. Calls to methods using that same Random object can be all over the place and also in the base system. It seems to me an existing Random instance is used in this case mostly* for performance. One could argue that since the Random in this case is used for a bulk operation, for which the object creation cost is largely amortized for collection sizes 20, it's acceptable to instead use Random new by default, which wouldn't suffer from the same race conditions. While still slower than a mutex-protected version for single-threaded code, it would also scale correctly if the users (and vm) are actually multi-threaded. [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffle] bench '208,000 per second.' '222,000 per second.' '223,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleWithMutex] bench '188,000 per second.' '186,000 per second.''184,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleNewRandom] bench '167,000 per second.' '166,000 per second.' '167,000 per second.' Cheers, Henry * Low seed entropy is another issue, but if purely random shuffling is a critical requirement, one shouldn't use the default Random generator anyways...
Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle
Nicolas Cellier wrote: The reason why I don't like the explicit "copy", is because this is the default behaviour. In place mutation is an (evil) exception. I'm personnally fine with current conventions: - sort, shuffle, reverse, replace: are imperative, thus you are telling collection, sort yourself ! - sorted clearly sounds as a sorted copy for me. If ever a change was to be made, I would much prefer this to happen on opposite naming, sort - inPlaceSort, or sortYourself :) It's like telling the programmer, hey - a stateful mutation is really what you want, is it? Conventions should encourage good programming practice. Although it makes perfect sense on hearing it, I was explicitly not aware of the convention between 'sort' and 'sorted'. For me, the small difference in letters used between the two doesn't provide a wide enough distinction. Also, regarding not mutating state, I guess I knew that in the back of my head, but it has not generally been an explicit concern of mine while programming. Convention should encourage good programming. So I like the suggestion of inPlaceSort sortYourself. As well as being more intention revealing, the less desirable methods are made less attractive by using a longer name. Perhaps another naming convention could be mutatedSort, or mutSort as a hint that the programmer should consider using these in conjunction with mutexes, or at own risk. cheers -ben 2013/9/23 Stphane Ducasse stephane.duca...@inria.fr +1 Now I understand the point of max with the name sort/sorted because this is not explicit to me too :) I laways have to think. On Sep 23, 2013, at 6:28 PM, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com wrote: 100% agree. Do it right do it fast. We must not turn usage of the library into something fragile for the sake of speed. We already make the code itself fragile more often than not in term of complexity (harder to understand/test/change). Especially, introduction of shared mutable states (global, class vars, singleton or any other form) should ring an alarm in reviewers head (This is some very old Squeak code in this case, so Squeakers are to blame, but we're all in same bath). 2013/9/23 Henrik Johansen henrik.s.johan...@veloxit.no On Sep 23, 2013, at 3:33 , Max Leske maxle...@gmail.com wrote: If a user is going to modify the same object concurrently, he/she takes care of mutual exclusion. Agreed. BUT: the Random object used by these methods is the same one that is used by #atRandom for instance, hence the race condition. There is no way anyone can safely use these methods without the mutex, single threaded or not. Calls to methods using that same Random object can be all over the place and also in the base system. It seems to me an existing Random instance is used in this case mostly* for performance. One could argue that since the Random in this case is used for a bulk operation, for which the object creation cost is largely amortized for collection sizes 20, it's acceptable to instead use Random new by default, which wouldn't suffer from the same race conditions. While still slower than a mutex-protected version for single-threaded code, it would also scale correctly if the users (and vm) are actually multi-threaded. [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffle] bench '208,000 per second.' '222,000 per second.' '223,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleWithMutex] bench '188,000 per second.' '186,000 per second.''184,000 per second.' [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleNewRandom] bench '167,000 per second.' '166,000 per second.' '167,000 per second.' Cheers, Henry * Low seed entropy is another issue, but if purely random shuffling is a critical requirement, one shouldn't use the default Random generator anyways...
[Pharo-dev] Pharo Wiki cleanup
In my attempt to make the contribution process for Pharo a bit simpler I cleaned up the fogbugz wikis which where left a bit unmaintained. There are now 5 important top-level categories: Welcome Page:https://pharo.fogbugz.com/default.asp?W41 Documentation: https://pharo.fogbugz.com/default.asp?W69 Changelog: https://pharo.fogbugz.com/default.asp?W2 Wishlist:https://pharo.fogbugz.com/default.asp?W50 Responsibilities:https://pharo.fogbugz.com/default.asp?W66 I removed old cruft that was documenting long gone features of ancient pharo versions ;). I would be more than happy to get some feedback and improve these websites gradually. signature.asc Description: Message signed with OpenPGP using GPGMail