Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
January 2013
- 52 participants
- 321 messages
Re: [Pharo-users] Phaas - anyone interested in setting up Pharo as a Service?
by Esteban Lorenzano
you could use cloudfoundry for that :)
http://www.cloudfoundry.org/
Esteban
On Jan 26, 2013, at 12:25 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
>
> On Jan 25, 2013, at 10:02 PM, Andy Burnett wrote:
>
>> We would love to develop more of our ideas in Pharo, but we are completely allergic to doing sys admin. We don't want to deal with anything below the Pharo application level. What I would ideally like to see if something like Heroku, or similar, but for Pharo. However, just wishing won't make it happen, so I am wondering if there is anyone out there who is thinking about this, and whether there are enough of us to constitute are market.
>
> It would be so great!
>
> This is a big orthogonal but I know that laurent laffont worked on Harbor. The idea was to provide a better Seaside hosting in the same that you could install it in an easier manner on your machine.
>
> I imagine that the work done by nicolas P and mariano/esteban around mongo, fuel⦠fit perfectly.
>
>>
>> Our requirements are pretty simple. We need a way of uploading an image, and some standard for of persistence. At this point, we would be perfectly happy to make compromises by agreeing that it had to be e.g. Mongo or whatever (although ideally it would be gemstone). We just want to make some progress on this.
>>
>> Personally, I think lots of bits are coming together.
>
> Yes me too.
>
>> We now have various persistence options, websockets (both in Zinc and Aida-web), OAuth ( in both places again), and lots of other exciting elements. We just want a really simple way to take advantage of them.
>>
>> Does anyone else feel this need?
>
>
Jan. 26, 2013
Re: [Pharo-users] How do i list the execution order of statements inside a method?
by Stéphane Ducasse
On Jan 26, 2013, at 8:25 AM, mircea wrote:
> Thanks for the bump in that direction. Your help is appreciated.
>
> Q: I just downloaded Pharo by Example, in an attempt to start somewhere... and at chapter 6.2 The Browser, the Kernel package seems to have changed entirely in Pharo 1.4. There are almost no similarities, from what i can gather it's been completely rewritten way beyond refactoring, the patterns are different.
No it did not change that much (unfortunately).
What are you looking for.
> It's like being a two-eyed man in a dark room with no flashlight. Your eyes are there, but without the flashlight there might as well be no room.
>
> Without previous knowledge of how this AST is implemented my best bet is do the "architectural plan" example i gave Dale H.
(Point>>#x) parseTree explore
will show you the tree then you can navigate in it.
> Print all the methods on small pieces of paper and try to understand the thing as a whole first. Then focus on understanding the patterns and reason behind their use.
>
Do you know what is a visitor?
If not you should read the pattern because on a AST you can pass a visitor and it can produce many different shapes
>
>
> Pe 25.01.2013, la 22:58, Jesus Nuñez [via Smalltalk] <[hidden email]> a scris:
>
>> Check out Moose and friends (Roasal, PetitParser, .. ) it may help in give shapes to your ideas; moreover most of what you describe at implementation level is already there. Hope this helps.
>>
>> Without any warranties of being a good answer,
>>
>> Jesus
>>
>>
>> 2013/1/25 mircea <<a href="x-msg://7/user/SendEmail.jtp?type=node&node=4665437&i=0" target="_top" rel="nofollow" link="external">[hidden email]>
>> Here goes,
>>
>> I recently explained to someone else all of this in a rather lengthy e-mail. I'll trim it down and post it here. It's still long⦠take your time, maybe a cup of coffee.
>> I chose the example which is not technical as it illustrates very well what we are trying to achieve and everyone reading this can relate. On request i can provide other examples.
>>
>> --
>> An example would be "playing imaginary chess" vs "normal(real world) chess" vs "a type of chess not invented yet".
>> And the relationship of chess to the player. People play chess "for" something, and that something i will describe below.
>>
>> Imaginary chess:
>> Everyone can agree that playing chess without the board and pieces in front of you is harder that normal chess. Not only that, but everyone can agree that having the power to imagine the chessboard and all it pieces bears little importance on how well you play.
>>
>> In "Imaginary chess" you have to have two things to play 1. "the power to imagine all the pieces on the board and the board itself" and 2. "know the rules/conventions of chess"
>>
>> Normal chess:
>> Normal chess is "normal" since it's what you can do in the real world to "help" everyone play chess. In normal chess this first step above is eliminated by the "existence" of embodied things which house all the "rules" needed to "imagine" and NOW all you have to know are 2. "the rules/convetions" to play. We can confidently say that the popularity of chess was helped tremendously by the creation of the chess board and pieces.
>>
>> Type of chess not invented yet:
>> How would "a type of chess not invented yet" look like. Well you have to transfer the 2. rules and conventions of chess so they are in front of the player. Somehow when i'm about to move a piece, for example, and i touch it⦠all the possible positions that piece can go to or attack will light up.
>> This type of chess knows the rules "for me". Now i can come to the board and without knowing anything, i can move and find out the rules. Eventually i notice patterns, all the pawns move the same and so on.
>>
>> One can say that this will not make you a good player BUT someone who does not know chess can sit at this board "alone" and move pieces around, and in time, figure out the rules⦠since the board will not let him move illegally. He does not need "training" from some other person to play.
>>
>> SO⦠here we arrive at the purpose of chess, why play it? Is it 1. To gain the power of imagining the board and pieces. OR 2. To know the conventions/rules of the game? or 3. Be a good player.
>>
>> We can all agree the purpose is 3. Be a good player.
>>
>> When all the conventions/rules of chess can be computed for any position of any piece on the board one can say that the burden of knowledge of the player has been lifted. All he needs to do is actually play and become good. The system will let him make mistakes but it will not let him make irrelevant mistakes.
>>
>> This type of chess can be built on a computer, and some chess software "i imagine already have this "feature"" in them. I wouldn't know i'm not a chess fan⦠but it was a good example.
>> --
>>
>>
>> What does this have to do with smalltalk.
>> To "code" you need three things:
>>
>> 1. The power to imagine the entire system. - get this and you are at Imaginary chess level (few people can do it)
>> 2. Know the rules and conventions. - get 1. and this and you are at Normal chess level (anyone who knows how to read the rules can do it)
>> 3. Become good at playing. get 1. 2. and this and you are New type of chess level⦠simple interactions with the system gives you feedback you are not allowed to make irrelevant mistakes (forgetting a . at the end of a statement, mistyping a variable name etc⦠all this is made impossible)
>>
>> Right now we are ALMOST at the level of "normal" chess. We don't have to imagine the pieces of code, we can easily write them out on screen. I don't have to remember hundreds of lines of code, i don't have to model tens of objects in my head, i just write them down. Then why almost at "normal chess level"? The rules and conventions of smalltalk are simple so why not there yet. The problem is number of types of pieces. Chess only has a few but a useful app has much more types of objects.
>>
>> What i, as a player, don't know, is how people before me played so far. I go into the code for the AST for example. I have no idea and no way of finding out what's the state "of the chess board". I would like to move, i would like to play but without the "creator" of the pieces, even i'm know the smalltalk rules and conventions i'm stuck making irrelevant mistakes.
>> Also this is not chess you can't standardize the pieces BUT from our early studies we found that patterns are more limited in number. And it is on patterns we need to concentrate. (more on this on request, but is not detailed here, conclusion is 90% of patterns are very simple and are reused, most are just mutated compositions of simple patterns, 5% are unique and really cool⦠la 5% are very strange)
>>
>> Continuing from the example "chess" paradigm above if i want to ease my way into things all i have to do is find how to embody this knowledge into "stuff" that is in front of me, on screen. A couple of us here, in my group, have done this before in other fields, and we know the steps needed.
>>
>> We deloped a way to "materializing" the patterns via the rules and conventions smalltalk has, into things on the computer screen. This way you get a richer view at your objects, one that let's your mind concentrate on playing.
>>
>> With this i hope to get smalltak and the world "ide" to "normal chess" level so that more people can play.
>>
>> Right now i am at the level of getting all the rules and conventions of smalltalk into specially crafted visual objects on screen. *
>>
>> After this is done. This visual pattern will be like a fingerprint for a certain method, giving instant visual feedback of what is going on inside (is the method long or short in it's implementation⦠does it access a variable⦠does it actually call some other⦠etc)
>>
>> Next level will be the development of a "weird" navigation system that let's you "walk" through code and see lines of code (statements) as multiple of these visual method fingerprints in one go. The uniqueness of the visual field in front of you will give you a sense of where you are in the code, what the code does⦠it's relation to other objects etcâ¦
>>
>>
>> That's it⦠normal chess levelâ¦
>> Next level is about patterns and is more abstract at this point, since all i can hope is that we have the same imagine in all of our brains, but i can't be sure since the image in front of me is missing, so it's safer to just build that first.
>>
>>
>>
>>
>> Pe 25.01.2013, la 14:34, Stéphane Ducasse [via Smalltalk] <[hidden email]> a scris:
>>
>>> Mircea you should explain us what you are trying to achieve.
>>>
>>>
>>> On Jan 25, 2013, at 8:58 AM, Mircea SamoilÄ wrote:
>>>
>>> > This is good. So to get this "execution order" and no run-time errors... i would need to get behind the complier and before the code actually runs. I don't want it to bump up errors but rather just "mark" the code, in a manner similar to code highlighting but not at the character/word level but at language level.
>>> >
>>> > Mark unary, binary and keyword and have get execution pattern visible out of this.
>>> >
>>> > Q1. Is there anywhere i can read more on this? How is this done? How i would be able to
>>> >
>>> > Q2. You mentioned Pharo 3.0 and i can see there is a 2.0 beta⦠i guess this functionality would be way off in the future?
>>> >
>>> > Q3. This is not a question⦠but a request⦠since it seems you know what you are talking about, please bump me in the right direction!
>>> >
>>> >
>>> > Pe 25.01.2013, la 13:39, Marcus Denker <<a href="<a href="x-msg://180/user/SendEmail.jtp?type=node&amp;node=4665334&amp;i=0">x-msg://180/user/SendEmail.jtp?type=node&node=4665334&i=0" target="_top" rel="nofollow" link="external">[hidden email]> a scris:
>>> >
>>>
>>> >>>
>>> >>>
>>> >>> Question 1: Would "invalid" code compile anyway and i would get the execution order inspecting the AST, as errors would pop up at "run time"?
>>> >>>
>>> >> Depending on which kind. Everything that is syntactically correct is compiled and then run. This can lead to runtime errors, e.g. when a method
>>> >> is called that does not exist (other languages would catch that due to static typing at compile time).
>>> >>
>>> >>> Question 2: Or⦠invalid code does not compile and i don't get to the stage where AST gives me anything useful (when using copy pasted code from anywhere) so i have to code some kind of smalltalk "text" parser and search for the patterns myself?
>>> >>>
>>> >> The good news is that the RBParser can compile even syntactically incorrect code.
>>> >> (Camillo added this):
>>> >>
>>> >> RBParser parseFaultyExpression: '1 +'
>>> >>
>>> >> Im 3.0, we will use this for syntax highlighting (instead of the special parser now used).
>>> >>
>>> >> But one fun experiment would be to extend the compiler (and the AST Interpreter) to actually
>>> >> do the right thing: compile code for the correct part and raise an error at runtime for the
>>> >> RBParseErrorNode. :-)
>>> >>
>>> >> Marcus
>>> >
>>>
>>> If you reply to this email, your message will be added to the discussion below:
>>> http://forum.world.st/How-do-i-list-the-execution-order-of-statements-insid…
>>> To unsubscribe from How do i list the execution order of statements inside a method?, click here.
>>> NAML
>>
>>
>> View this message in context: Re: How do i list the execution order of statements inside a method?
>> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>>
>>
>>
>> If you reply to this email, your message will be added to the discussion below:
>> http://forum.world.st/How-do-i-list-the-execution-order-of-statements-insid…
>> To unsubscribe from How do i list the execution order of statements inside a method?, click here.
>> NAML
>
>
> View this message in context: Re: How do i list the execution order of statements inside a method?
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Jan. 26, 2013
Re: [Pharo-users] How do i list the execution order of statements inside a method?
by mircea
Thanks for the bump in that direction. Your help is appreciated.
Q: I just downloaded Pharo by Example, in an attempt to start somewhere... and at chapter 6.2 The Browser, the Kernel package seems to have changed entirely in Pharo 1.4. There are almost no similarities, from what i can gather it's been completely rewritten way beyond refactoring, the patterns are different.
It's like being a two-eyed man in a dark room with no flashlight. Your eyes are there, but without the flashlight there might as well be no room.
Without previous knowledge of how this AST is implemented my best bet is do the "architectural plan" example i gave Dale H.
Print all the methods on small pieces of paper and try to understand the thing as a whole first. Then focus on understanding the patterns and reason behind their use.
Pe 25.01.2013, la 22:58, Jesus Nuñez [via Smalltalk] <ml-node+s1294792n4665437h52(a)n4.nabble.com> a scris:
> Check out Moose and friends (Roasal, PetitParser, .. ) it may help in give shapes to your ideas; moreover most of what you describe at implementation level is already there. Hope this helps.
>
> Without any warranties of being a good answer,
>
> Jesus
>
>
> 2013/1/25 mircea <[hidden email]>
> Here goes,
>
> I recently explained to someone else all of this in a rather lengthy e-mail. I'll trim it down and post it here. It's still long⦠take your time, maybe a cup of coffee.
> I chose the example which is not technical as it illustrates very well what we are trying to achieve and everyone reading this can relate. On request i can provide other examples.
>
> --
> An example would be "playing imaginary chess" vs "normal(real world) chess" vs "a type of chess not invented yet".
> And the relationship of chess to the player. People play chess "for" something, and that something i will describe below.
>
> Imaginary chess:
> Everyone can agree that playing chess without the board and pieces in front of you is harder that normal chess. Not only that, but everyone can agree that having the power to imagine the chessboard and all it pieces bears little importance on how well you play.
>
> In "Imaginary chess" you have to have two things to play 1. "the power to imagine all the pieces on the board and the board itself" and 2. "know the rules/conventions of chess"
>
> Normal chess:
> Normal chess is "normal" since it's what you can do in the real world to "help" everyone play chess. In normal chess this first step above is eliminated by the "existence" of embodied things which house all the "rules" needed to "imagine" and NOW all you have to know are 2. "the rules/convetions" to play. We can confidently say that the popularity of chess was helped tremendously by the creation of the chess board and pieces.
>
> Type of chess not invented yet:
> How would "a type of chess not invented yet" look like. Well you have to transfer the 2. rules and conventions of chess so they are in front of the player. Somehow when i'm about to move a piece, for example, and i touch it⦠all the possible positions that piece can go to or attack will light up.
> This type of chess knows the rules "for me". Now i can come to the board and without knowing anything, i can move and find out the rules. Eventually i notice patterns, all the pawns move the same and so on.
>
> One can say that this will not make you a good player BUT someone who does not know chess can sit at this board "alone" and move pieces around, and in time, figure out the rules⦠since the board will not let him move illegally. He does not need "training" from some other person to play.
>
> SO⦠here we arrive at the purpose of chess, why play it? Is it 1. To gain the power of imagining the board and pieces. OR 2. To know the conventions/rules of the game? or 3. Be a good player.
>
> We can all agree the purpose is 3. Be a good player.
>
> When all the conventions/rules of chess can be computed for any position of any piece on the board one can say that the burden of knowledge of the player has been lifted. All he needs to do is actually play and become good. The system will let him make mistakes but it will not let him make irrelevant mistakes.
>
> This type of chess can be built on a computer, and some chess software "i imagine already have this "feature"" in them. I wouldn't know i'm not a chess fan⦠but it was a good example.
> --
>
>
> What does this have to do with smalltalk.
> To "code" you need three things:
>
> 1. The power to imagine the entire system. - get this and you are at Imaginary chess level (few people can do it)
> 2. Know the rules and conventions. - get 1. and this and you are at Normal chess level (anyone who knows how to read the rules can do it)
> 3. Become good at playing. get 1. 2. and this and you are New type of chess level⦠simple interactions with the system gives you feedback you are not allowed to make irrelevant mistakes (forgetting a . at the end of a statement, mistyping a variable name etc⦠all this is made impossible)
>
> Right now we are ALMOST at the level of "normal" chess. We don't have to imagine the pieces of code, we can easily write them out on screen. I don't have to remember hundreds of lines of code, i don't have to model tens of objects in my head, i just write them down. Then why almost at "normal chess level"? The rules and conventions of smalltalk are simple so why not there yet. The problem is number of types of pieces. Chess only has a few but a useful app has much more types of objects.
>
> What i, as a player, don't know, is how people before me played so far. I go into the code for the AST for example. I have no idea and no way of finding out what's the state "of the chess board". I would like to move, i would like to play but without the "creator" of the pieces, even i'm know the smalltalk rules and conventions i'm stuck making irrelevant mistakes.
> Also this is not chess you can't standardize the pieces BUT from our early studies we found that patterns are more limited in number. And it is on patterns we need to concentrate. (more on this on request, but is not detailed here, conclusion is 90% of patterns are very simple and are reused, most are just mutated compositions of simple patterns, 5% are unique and really cool⦠la 5% are very strange)
>
> Continuing from the example "chess" paradigm above if i want to ease my way into things all i have to do is find how to embody this knowledge into "stuff" that is in front of me, on screen. A couple of us here, in my group, have done this before in other fields, and we know the steps needed.
>
> We deloped a way to "materializing" the patterns via the rules and conventions smalltalk has, into things on the computer screen. This way you get a richer view at your objects, one that let's your mind concentrate on playing.
>
> With this i hope to get smalltak and the world "ide" to "normal chess" level so that more people can play.
>
> Right now i am at the level of getting all the rules and conventions of smalltalk into specially crafted visual objects on screen. *
>
> After this is done. This visual pattern will be like a fingerprint for a certain method, giving instant visual feedback of what is going on inside (is the method long or short in it's implementation⦠does it access a variable⦠does it actually call some other⦠etc)
>
> Next level will be the development of a "weird" navigation system that let's you "walk" through code and see lines of code (statements) as multiple of these visual method fingerprints in one go. The uniqueness of the visual field in front of you will give you a sense of where you are in the code, what the code does⦠it's relation to other objects etcâ¦
>
>
> That's it⦠normal chess levelâ¦
> Next level is about patterns and is more abstract at this point, since all i can hope is that we have the same imagine in all of our brains, but i can't be sure since the image in front of me is missing, so it's safer to just build that first.
>
>
>
>
> Pe 25.01.2013, la 14:34, Stéphane Ducasse [via Smalltalk] <[hidden email]> a scris:
>
>> Mircea you should explain us what you are trying to achieve.
>>
>>
>> On Jan 25, 2013, at 8:58 AM, Mircea SamoilÄ wrote:
>>
>> > This is good. So to get this "execution order" and no run-time errors... i would need to get behind the complier and before the code actually runs. I don't want it to bump up errors but rather just "mark" the code, in a manner similar to code highlighting but not at the character/word level but at language level.
>> >
>> > Mark unary, binary and keyword and have get execution pattern visible out of this.
>> >
>> > Q1. Is there anywhere i can read more on this? How is this done? How i would be able to
>> >
>> > Q2. You mentioned Pharo 3.0 and i can see there is a 2.0 beta⦠i guess this functionality would be way off in the future?
>> >
>> > Q3. This is not a question⦠but a request⦠since it seems you know what you are talking about, please bump me in the right direction!
>> >
>> >
>> > Pe 25.01.2013, la 13:39, Marcus Denker <<a href="x-msg://180/user/SendEmail.jtp?type=node&node=4665334&i=0" target="_top" rel="nofollow" link="external">[hidden email]> a scris:
>> >
>>
>> >>>
>> >>>
>> >>> Question 1: Would "invalid" code compile anyway and i would get the execution order inspecting the AST, as errors would pop up at "run time"?
>> >>>
>> >> Depending on which kind. Everything that is syntactically correct is compiled and then run. This can lead to runtime errors, e.g. when a method
>> >> is called that does not exist (other languages would catch that due to static typing at compile time).
>> >>
>> >>> Question 2: Or⦠invalid code does not compile and i don't get to the stage where AST gives me anything useful (when using copy pasted code from anywhere) so i have to code some kind of smalltalk "text" parser and search for the patterns myself?
>> >>>
>> >> The good news is that the RBParser can compile even syntactically incorrect code.
>> >> (Camillo added this):
>> >>
>> >> RBParser parseFaultyExpression: '1 +'
>> >>
>> >> Im 3.0, we will use this for syntax highlighting (instead of the special parser now used).
>> >>
>> >> But one fun experiment would be to extend the compiler (and the AST Interpreter) to actually
>> >> do the right thing: compile code for the correct part and raise an error at runtime for the
>> >> RBParseErrorNode. :-)
>> >>
>> >> Marcus
>> >
>>
>>
>> If you reply to this email, your message will be added to the discussion below:
>> http://forum.world.st/How-do-i-list-the-execution-order-of-statements-insid…
>> To unsubscribe from How do i list the execution order of statements inside a method?, click here.
>> NAML
>
>
> View this message in context: Re: How do i list the execution order of statements inside a method?
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>
>
> If you reply to this email, your message will be added to the discussion below:
> http://forum.world.st/How-do-i-list-the-execution-order-of-statements-insid…
> To unsubscribe from How do i list the execution order of statements inside a method?, click here.
> NAML
--
View this message in context: http://forum.world.st/How-do-i-list-the-execution-order-of-statements-insid…
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Jan. 26, 2013
Re: [Pharo-users] Phaas - anyone interested in setting up Pharo as a Service?
by Stéphane Ducasse
On Jan 25, 2013, at 10:02 PM, Andy Burnett wrote:
> We would love to develop more of our ideas in Pharo, but we are completely allergic to doing sys admin. We don't want to deal with anything below the Pharo application level. What I would ideally like to see if something like Heroku, or similar, but for Pharo. However, just wishing won't make it happen, so I am wondering if there is anyone out there who is thinking about this, and whether there are enough of us to constitute are market.
It would be so great!
This is a big orthogonal but I know that laurent laffont worked on Harbor. The idea was to provide a better Seaside hosting in the same that you could install it in an easier manner on your machine.
I imagine that the work done by nicolas P and mariano/esteban around mongo, fuel⦠fit perfectly.
>
> Our requirements are pretty simple. We need a way of uploading an image, and some standard for of persistence. At this point, we would be perfectly happy to make compromises by agreeing that it had to be e.g. Mongo or whatever (although ideally it would be gemstone). We just want to make some progress on this.
>
> Personally, I think lots of bits are coming together.
Yes me too.
> We now have various persistence options, websockets (both in Zinc and Aida-web), OAuth ( in both places again), and lots of other exciting elements. We just want a really simple way to take advantage of them.
>
> Does anyone else feel this need?
Jan. 26, 2013
Re: [Pharo-users] Phaas - anyone interested in setting up Pharo as a Service?
by Bernat Romagosa
I'd be so happy if something like this existed. However, I'm not sure there
are enough Pharo webdevs to make a service like that profitable...
But yes, I do feel this need! I'm sick of configuring VPSes with their
apache virtual hosts, DBs, etc.
2013/1/26 Andy Burnett <andy.burnett(a)knowinnovation.com>
> We would love to develop more of our ideas in Pharo, but we are completely
> allergic to doing sys admin. We don't want to deal with anything below the
> Pharo application level. What I would ideally like to see if something like
> Heroku, or similar, but for Pharo. However, just wishing won't make it
> happen, so I am wondering if there is anyone out there who is thinking
> about this, and whether there are enough of us to constitute are market.
>
> Our requirements are pretty simple. We need a way of uploading an image,
> and some standard for of persistence. At this point, we would be perfectly
> happy to make compromises by agreeing that it had to be e.g. Mongo or
> whatever (although ideally it would be gemstone). We just want to make some
> progress on this.
>
> Personally, I think lots of bits are coming together. We now have various
> persistence options, websockets (both in Zinc and Aida-web), OAuth ( in
> both places again), and lots of other exciting elements. We just want a
> really simple way to take advantage of them.
>
> Does anyone else feel this need?
>
--
Bernat Romagosa.
Jan. 26, 2013
Phaas - anyone interested in setting up Pharo as a Service?
by Andy Burnett
We would love to develop more of our ideas in Pharo, but we are completely
allergic to doing sys admin. We don't want to deal with anything below the
Pharo application level. What I would ideally like to see if something like
Heroku, or similar, but for Pharo. However, just wishing won't make it
happen, so I am wondering if there is anyone out there who is thinking
about this, and whether there are enough of us to constitute are market.
Our requirements are pretty simple. We need a way of uploading an image,
and some standard for of persistence. At this point, we would be perfectly
happy to make compromises by agreeing that it had to be e.g. Mongo or
whatever (although ideally it would be gemstone). We just want to make some
progress on this.
Personally, I think lots of bits are coming together. We now have various
persistence options, websockets (both in Zinc and Aida-web), OAuth ( in
both places again), and lots of other exciting elements. We just want a
really simple way to take advantage of them.
Does anyone else feel this need?
Jan. 26, 2013
Re: [Pharo-users] Spec: how to select contents of TextModel on focus
by Sean P. DeNigris
Benjamin Van Ryseghem-2 wrote
> Can't you force the use of readSelectionBlock during the navigation ?
I thought about this for a while and realized I don't know what that means
:) Would you give a little more info? e.g. where to look...
--
View this message in context: http://forum.world.st/Spec-how-to-select-contents-of-TextModel-on-focus-tp4…
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Jan. 25, 2013
Re: [Pharo-users] How do i list the execution order of statements inside a method?
by Jesus Nuñez
Check out Moose and friends (Roasal, PetitParser, .. ) it may help in give
shapes to your ideas; moreover most of what you describe at implementation
level is already there. Hope this helps.
Without any warranties of being a good answer,
Jesus
2013/1/25 mircea <mircea(a)unom.ro>
> Here goes,
>
> I recently explained to someone else all of this in a rather lengthy
> e-mail. I'll trim it down and post it here. It's s*till long⦠take your
> time, maybe a cup of coffee.*
> I chose the example which is not technical as it illustrates very well
> what we are trying to achieve and everyone reading this can relate. On
> request i can provide other examples.
>
> *--*
> An example would be* "playing imaginary chess"* vs *"normal(real world)
> chess"* vs *"a type of chess not invented yet".*
> And the relationship of chess to the player. People play chess "for"
> something, and that something i will describe below.
>
> *Imaginary chess:*
> Everyone can agree that playing chess without the board and pieces in
> front of you is harder that normal chess. Not only that, but everyone can
> agree that having the power to imagine the chessboard and all it pieces
> bears *little* importance on how well you play.
>
> In "Imaginary chess" you have to have two things to play 1. "the power to
> imagine all the pieces on the board and the board itself" and 2. "know the
> rules/conventions of chess"
>
> *Normal chess:*
> Normal chess is "normal" since it's what you can do in the real world to
> "help" everyone play chess. In normal chess this first step above is
> eliminated by the "existence" of embodied things which house all the
> "rules" needed to "imagine" and NOW all you have to know are 2. "the
> rules/convetions" to play. We can confidently say that the popularity of
> chess was helped tremendously by the creation of the chess board and pieces.
>
> *Type of chess not invented yet:*
> How would "a type of chess not invented yet" look like. Well you have to
> transfer the 2. rules and conventions of chess so they are in front of the
> player. Somehow when i'm about to move a piece, for example, and i touch
> it⦠all the possible positions that piece can go to or attack will light up.
> This type of chess knows the rules "for me". Now i can come to the board
> and without knowing anything, i can move and find out the rules. Eventually
> i notice patterns, all the pawns move the same and so on.
>
> *One can say that this will not make you a good player* BUT someone who
> does not know chess can *sit at this board "alone" and move pieces
> around, and in time, figure out the rules*⦠since the board will not let
> him move illegally. He does not need "training" from some other person to
> play.
>
> SO⦠here we arrive at the purpose of chess, why play it? Is it 1. To gain
> the power of imagining the board and pieces. OR 2. To know the
> conventions/rules of the game? or 3. Be a good player.
>
> We can all agree the purpose is 3. Be a good player.
>
> When all the conventions/rules of chess can be computed for any position
> of any piece on the board one can say that the *burden of knowledge of
> the player has been lifted.* All he needs to do is actually play and *become
> good.* The system *will let him make mistakes* but it *will not let him
> make irrelevant mistakes*.
>
> This type of chess can be built on a computer, and some chess software "i
> imagine already have this "feature"" in them. I wouldn't know i'm not a
> chess fan⦠but it was a good example.
> *--*
>
>
> *What does this have to do with smalltalk. *
> To "code" you need three things:
>
> 1. The power to imagine the entire system. - get this and you are at
> Imaginary chess level (few people can do it)
> 2. Know the rules and conventions. - get 1. and this and you are at Normal
> chess level (anyone who knows how to read the rules can do it)
> 3. Become good at playing. get 1. 2. and this and you are New type of
> chess level⦠simple interactions with the system gives you feedback you are
> not allowed to make irrelevant mistakes (forgetting a . at the end of a
> statement, mistyping a variable name etc⦠all this is made impossible)
>
> Right now we are *ALMOST* at the level of "normal" chess. We don't have
> to imagine the pieces of code, we can easily write them out on screen. I
> don't have to remember hundreds of lines of code, i don't have to model
> tens of objects in my head, i just write them down. Then why almost* *at
> "normal chess level"? The rules and conventions of smalltalk are simple so
> why not there yet. The problem is *number of types of pieces. *Chess only
> has a few but a useful app has much more types of objects.
>
> What i, as a player, don't know, is how people before me played so far. I
> go into the code for the AST for example. I have no idea and no way of
> finding out what's the state "of the chess board". I would like to move, i
> would like to play but without the "creator" of the pieces, even i'm know
> the smalltalk rules and conventions i'm stuck *making irrelevant mistakes.
> *
> Also this is not chess you can't standardize the pieces BUT from our early
> studies we found that patterns are more limited in number. And it is on
> patterns we need to concentrate. (more on this on request, but is not
> detailed here, conclusion is 90% of patterns are very simple and are
> reused, most are just mutated compositions of simple patterns, 5% are
> unique and really cool⦠la 5% are very strange)
> *
> *
> Continuing from the example "chess" paradigm above if i want to ease my
> way into things all i have to do is find how to embody this knowledge into
> "stuff" that is in front of me, on screen. A couple of us here, in my
> group, have done this before in other fields, and we know the steps needed.
>
> We deloped a way to "materializing" the patterns via the rules and
> conventions smalltalk has, into things on the computer screen. This way you
> get a *richer* view at your objects, one that let's your mind concentrate
> on playing.
>
> With this i hope to get smalltak and the world "ide" to "normal chess"
> level so that more people can play.
>
> *Right now* i am at the level of getting all the rules and conventions of
> smalltalk into specially crafted visual objects on screen. *
>
> After this is done. This visual pattern will be like a fingerprint for a
> certain method, giving instant visual feedback of what is going on inside
> (is the method long or short in it's implementation⦠does it access a
> variable⦠does it actually call some other⦠etc)
>
> Next level will be the development of a "weird" navigation system that
> let's you "walk" through code and see lines of code (statements) as
> multiple of these visual method fingerprints in one go. The uniqueness of
> the visual field in front of you will give you a sense of where you are in
> the code, what the code does⦠it's relation to other objects etcâ¦
>
>
> That's it⦠normal chess levelâ¦
> Next level is about patterns and is more abstract at this point, since all
> i can hope is that we have the same imagine in all of our brains, but i
> can't be sure since the image in front of me is missing, so it's safer to
> just build that first.
>
>
>
>
> Pe 25.01.2013, la 14:34, Stéphane Ducasse [via Smalltalk] <[hidden email]<http://user/SendEmail.jtp?type=node&node=4665354&i=0>>
> a scris:
>
> Mircea you should explain us what you are trying to achieve.
>
>
> On Jan 25, 2013, at 8:58 AM, Mircea SamoilÄ wrote:
>
> > This is good. So to get this "execution order" and no run-time errors...
> i would need to get behind the complier and before the code actually runs.
> I don't want it to bump up errors but rather just "mark" the code, in a
> manner similar to code highlighting but not at the character/word level but
> at language level.
> >
> > Mark unary, binary and keyword and have get execution pattern visible
> out of this.
> >
> > Q1. Is there anywhere i can read more on this? How is this done? How i
> would be able to
> >
> > Q2. You mentioned Pharo 3.0 and i can see there is a 2.0 beta⦠i guess
> this functionality would be way off in the future?
> >
> > Q3. This is not a question⦠but a request⦠since it seems you know what
> you are talking about, please bump me in the right direction!
> >
> >
> > Pe 25.01.2013, la 13:39, Marcus Denker <<a
> href="x-msg://180/user/SendEmail.jtp?type=node&node=4665334&i=0"
> target="_top" rel="nofollow" link="external">[hidden email]> a scris:
> >
> >>>
> >>>
> >>> Question 1: Would "invalid" code compile anyway and i would get the
> execution order inspecting the AST, as errors would pop up at "run time"?
> >>>
> >> Depending on which kind. Everything that is syntactically correct is
> compiled and then run. This can lead to runtime errors, e.g. when a method
> >> is called that does not exist (other languages would catch that due to
> static typing at compile time).
> >>
> >>> Question 2: Or⦠invalid code does not compile and i don't get to the
> stage where AST gives me anything useful (when using copy pasted code from
> anywhere) so i have to code some kind of smalltalk "text" parser and search
> for the patterns myself?
> >>>
> >> The good news is that the RBParser can compile even syntactically
> incorrect code.
> >> (Camillo added this):
> >>
> >> RBParser parseFaultyExpression: '1 +'
> >>
> >> Im 3.0, we will use this for syntax highlighting (instead of the
> special parser now used).
> >>
> >> But one fun experiment would be to extend the compiler (and the AST
> Interpreter) to actually
> >> do the right thing: compile code for the correct part and raise an
> error at runtime for the
> >> RBParseErrorNode. :-)
> >>
> >> Marcus
> >
>
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
>
> http://forum.world.st/How-do-i-list-the-execution-order-of-statements-insid…
> To unsubscribe from How do i list the execution order of statements
> inside a method?, click here.
> NAML<http://forum.world.st/template/NamlServlet.jtp?macro=macro_viewer&id=instan…>
>
>
>
> ------------------------------
> View this message in context: Re: How do i list the execution order of
> statements inside a method?<http://forum.world.st/How-do-i-list-the-execution-order-of-statements-insid…>
> Sent from the Pharo Smalltalk Users mailing list archive<http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html>at Nabble.com.
>
Jan. 25, 2013
Re: [Pharo-users] Memory Leak with Zodiac?
by Sven Van Caekenberghe
Good, I am happy I could help.
It would always be interesting to read a blog post or article describing your application, one day.
On 25 Jan 2013, at 18:13, Chris <cpmbailey(a)btinternet.com> wrote:
> On 24/01/2013 12:55, Sven Van Caekenberghe wrote:
>> On 24 Jan 2013, at 13:37, CHRIS BAILEY <cpmbailey(a)btinternet.com> wrote:
>>
>>> --- On Thu, 24/1/13, Sven Van Caekenberghe <sven(a)stfx.eu> wrote:
>>>
>>>> From: Sven Van Caekenberghe <sven(a)stfx.eu>
>>>> Subject: Re: [Pharo-users] Memory Leak with Zodiac?
>>>> To: "A friendly place where any question about pharo is welcome" <pharo-users(a)lists.gforge.inria.fr>
>>>> Date: Thursday, 24 January, 2013, 10:41
>>>> Hi Chris,
>>>>
>>>> On 24 Jan 2013, at 11:02, CHRIS BAILEY <cpmbailey(a)btinternet.com>
>>>> wrote:
>>>>
>>>>> I'm having a little trouble with a possible memory leak
>>>> with Zodiac. I'm running Pharo 1.4 Summer on Centos
>>>> 6.3/Fedora 18 for deploy/dev. The plugin is using
>>>> libssl.so.0.9.8, and I also seem to have another version
>>>> kicking about which uses libssl.so.6 and am not really sure
>>>> where I got that from. It may be an older one from the http://code.google.com/p/squeakssl/ site. Both have the
>>>> same effect, i.e. when running 100 timesRepeat: [ ZnClient
>>>> new url: 'https://www.google.com'; get ] VIRT and RES memory both
>>>> go up about 70mb, but just using http doesn't accumulate
>>>> any. I tried it in Pharo 2.0 which was the same, but the new
>>>> NBCog doesn't include the libSqueaKSSL.so so I was only
>>>> copying it over.
>>>>> Has anyone used it successfully in the same
>>>> environment? I'll try it on Ubuntu when I get a chance.
>>>>> Thanks
>>>>> Chris
>>>> Thanks for testing this ;-)
>>>>
>>>> Note that although ZnClient is most often used to do just
>>>> one request, it was also designed to be reused to do
>>>> multiple request to the same host:port. Even when not taking
>>>> care of resource cleanup, for casual use #close to the
>>>> socket will eventually be sent where necessary due to
>>>> finalization. Helping a bit makes for better performance.
>>>>
>>>> Either one of the following would be better:
>>>>
>>>> 100 timesRepeat: [ ZnClient new beOneShot; get: 'https://www.google.com' ].
>>>>
>>>> 100 timesRepeat: [ ZnClient new get: 'https://www.google.com'; close ].
>>>>
>>>> | client |
>>>> client := ZnClient new.
>>>> 100 timesRepeat: [ client get: 'https://www.google.com' ].
>>>> client close.
>>>>
>>>> Now, Zodiac TLS/SSL Streams are more resource intensive:
>>>> they create ZdcPluginSSLSession instances which represent
>>>> native native data structures from the OS's SSL libraries.
>>>> These are only cleaned up when #destroy is sent, which is
>>>> one by ZdcSecureSocketStream>>#close. I didn't write
>>>> any explicit code to do this by finalization, so that
>>>> probably does not happen. Maybe we should experiment with
>>>> adding a #finalize to ZdcPluginSSLSession as an equivalent
>>>> to #destroy.
>>>>
>>>> It would be cool if you could test again. Hopefully memory
>>>> consumption improves.
>>> Hi Sven, thanks for the quick reply.
>>>
>>> Sorry, I didn't consider that when I reproduced it with the simplest example I could think of! I'm actually using it in the context of a single ZnClient being held open for an entire Seaside session which talks to an external web service. I therefore only send a close when the session ends. What solution would you recommend, as it is quite easy currently to run the image out of memory before the session gets unregistered.
>> That is more a question about Seaside session management, which would be similar to managing database connections. My Seaside knowledge is rusty, but if I remember correctly, you can arrange for a method to be called on your custom Seaside session object whenever a session expires, there you could do some cleanup. Making sure sessions are expired quickly enough is also tuneable in various ways.
>>
>> What I have done in some projects is to have a single small pool of ZnClients ready to talk to a specific service. Each session then calls out to the pool to access the external service over HTTP(S). Of course, you have to be careful with multithreaded access, but also with timeouts, resource starvation, failures and cleanup, unwanted state sharing or caching, etc..
>>
>> Or you could just try to be aggressive in closing the HTTP(S) clients after each use. There is not much point in keep those connections open for more than a couple of seconds as the other end will close them anyway.
> Thanks for that, I've just gone with closing it each time and it works fine now :-) I've had DBXConnections and the http version of ZnClient working fine with one instance for the session, and such that it gets closed at unregister but they don't accumulate any memory when used and left open. Each call was generating about 1mb so it was very easy to run out of memory even with quite strict session cleanup.
>
> Chris
>
Jan. 25, 2013
Re: [Pharo-users] Pharo 2.0 - System Error Handling Failed
by Sean P. DeNigris
mmimica wrote
> Seriously, you think chaning the label will help?
Yes.
http://en.wikipedia.org/wiki/Linguistic_determinism
I believe that everything counts. If nothing else, a sense of order and
beauty will keep me inspired to keep playing and contributing.
--
View this message in context: http://forum.world.st/Pharo-2-0-System-Error-Handling-Failed-tp4664742p4665…
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Jan. 25, 2013