[Pharo-project] SPy VM

2013-04-17 Thread Yuriy Tymchuk
Did you know that there is smalltalk vm in PyPy? 
https://bitbucket.org/pypy/lang-smalltalk


Re: [Pharo-project] A demo video

2013-04-10 Thread Yuriy Tymchuk
Now we have to do a 3D stuff. It's better for marketing

On 10 квіт. 2013, at 18:35, Clément Bera  wrote:

> Yeah the video is really cool. 
> 
> Please guys tweet about it :)
> 
> 
> 2013/4/10 Nicolas Petton 
> Awesome!!
> 
> Nico
> 
> On Apr 10, 2013, at 4:20 PM, Esteban Lorenzano  wrote:
> 
>> Hi,
>> 
>> I made a small video to show how work the “life environment” we pharoers 
>> (and every smalltalker) always talk. That adictive little thing I like to 
>> call: “Immediate feedback experience”. 
>> You can see the video here (in the same old ugly english you all know me :)
>> 
>> http://www.youtube.com/embed/Hu_C0ldSqrs
>> 
>> Cheers, 
>> Esteban
> 
> 
> 
> -- 
> Clément Béra
> Mate Virtual Machine Engineer
> Bâtiment B 40, avenue Halley 59650 Villeneuve d'Ascq



[Pharo-project] FAST presentation video on youtube

2013-04-08 Thread Yuriy Tymchuk
Hi,

uploaded mine to http://youtu.be/dRr3WHOD3x4

Cheers.
Uko



Re: [Pharo-project] Good news !

2013-04-08 Thread Yuriy Tymchuk
Stef, Igor,

I've heard that you will be in some university soon :), it's a good possibility 
to promote GSoC projects, especially FAST-related ones ;)

Uko


On 8 квіт. 2013, at 21:56, Janko Mivšek  wrote:

> Dne 08. 04. 2013 20:54, piše Damien Cassou:
>> On Mon, Apr 8, 2013 at 8:49 PM, Serge Stinckwich
>>  wrote:
>>> Our Organization Application for "ESUG (European Smalltalk User
>>> Group)" in Google Summer of Code 2013 has been accepted !
>> 
>> 
>> that's great. Do you know how many slots we got?
> 
> We will know that later, somewhere in the May in the middle of voting
> period. For now we really need to get a good pool of mentors and of
> course students. Student proposal deadline is 3.May, so we have a month
> only for all that.
> 
> Therefore start promoting Smalltalk GSoC around universities ASAP!
> 
> Janko
> 
> 
>> 
>> --
>> Damien Cassou
>> http://damiencassou.seasidehosting.st
>> 
>> "Success is the ability to go from one failure to another without
>> losing enthusiasm."
>> Winston Churchill
>> 
>> 
> 
> -- 
> Janko Mivšek
> Smalltalk GSoC Admin Team
> http://gsoc2013.esug.org
> 




[Pharo-project] Photos from Pharoconf and Moose day on G+

2013-04-08 Thread Yuriy Tymchuk
Hi,

https://plus.google.com/events/crhg5httv7iserrrqv5tulaevhc
https://plus.google.com/events/cbi42b525e96tp1gj2bjr9bolns

Uko



Re: [Pharo-project] One SlideShare, One Youtube channel for Pharo?

2013-04-06 Thread Yuriy Tymchuk
The only problem is with the quota for free users

On 6 квіт. 2013, at 10:33, Max Leske  wrote:

> +1
> 
> And I like Vimeo more :)
> 
> On 06.04.2013, at 10:28, Yuriy Tymchuk  wrote:
> 
>> It will be cool to use some service, that allows 'groups'. For example on 
>> vimeo you can create a Pharo group and then include there videos of the 
>> users. This way you do not have to re-uppload content that is already there, 
>> and people get their credit.
>> 
>> uko
>> 
>> On 6 квіт. 2013, at 09:48, Stéphane Ducasse  
>> wrote:
>> 
>>> Hi guys
>>> 
>>> I would love to have one 
>>> - slideshare for pharo presentations reachable from the web site.
>>> 
>>> 
>>> http://www.slideshare.net/search/slideshow?searchfrom=header&q=pharo
>>> 
>>> - videos conference/presentation on Youtube
>>> 
>>> http://www.youtube.com/results?search_query=pharo+st&oq=pharo+st&gs_l=youtube.1.0.35i39j0i10l9.10476.10844.0.12212.3.3.0.0.0.0.294.431.2j0j1.3.0...0.0...1ac.1.tZ4dv4ReBZc
>>> 
>>> 
>>> - "lectures" 
>>> 
>>> http://www.jarober.com/blog/blogView?content=st4u_pharo is wonderful :)
>>> http://www.jarober.com/blog/blogView?content=st4u_tools 
>>> http://www.jarober.com/blog/blogView?content=st4u_pharo_net 
>>> 
>>> http://www.pharocasts.com
>>> 
>>> What do you think?
>>> Does anybody want to take the lead for that?
>>> 
>>> 
>> 
>> 
> 
> 




Re: [Pharo-project] One SlideShare, One Youtube channel for Pharo?

2013-04-06 Thread Yuriy Tymchuk
It will be cool to use some service, that allows 'groups'. For example on vimeo 
you can create a Pharo group and then include there videos of the users. This 
way you do not have to re-uppload content that is already there, and people get 
their credit.

uko

On 6 квіт. 2013, at 09:48, Stéphane Ducasse  wrote:

> Hi guys
> 
> I would love to have one 
>   - slideshare for pharo presentations reachable from the web site.
> 
>   
> http://www.slideshare.net/search/slideshow?searchfrom=header&q=pharo
> 
>   - videos conference/presentation on Youtube
>   
> http://www.youtube.com/results?search_query=pharo+st&oq=pharo+st&gs_l=youtube.1.0.35i39j0i10l9.10476.10844.0.12212.3.3.0.0.0.0.294.431.2j0j1.3.0...0.0...1ac.1.tZ4dv4ReBZc
> 
> 
>   - "lectures" 
> 
>   http://www.jarober.com/blog/blogView?content=st4u_pharo is wonderful :)
>   http://www.jarober.com/blog/blogView?content=st4u_tools 
>   http://www.jarober.com/blog/blogView?content=st4u_pharo_net 
> 
>   http://www.pharocasts.com
> 
> What do you think?
> Does anybody want to take the lead for that?
> 
> 




Re: [Pharo-project] icons in Nautilus?

2013-03-30 Thread Yuriy Tymchuk
Maybe we should write somewhere an explanation to all icons?

Is it possible to do it in help?

uko


On 30 бер. 2013, at 22:44, Benjamin  
wrote:

> The first one means the package is empty
> 
> the second one that this package is a probably monticello package (no 
> classes, only extensions)
> 
> Ben
> 
> On Mar 30, 2013, at 5:09 PM, Alexandre Bergel  wrote:
> 
>> Hi!
>> 
>> I am just wondering what these icons means in Nautilus
>> 
>>  ??
>> 
>>  a method extension that is not 
>> properly packaged?
>> 
>> Cheers,
>> Alexandre
>> -- 
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>> 
>> 
>> 
> 



Re: [Pharo-project] Suggestion about Phexample and StateSpecs(Mocketry) integration

2013-03-27 Thread Yuriy Tymchuk
If you can write step by step instruction what to show, I can do it. Right now 
all my time is used to prepare my own presentation, so I can't do it myself.

uko


On 27 бер. 2013, at 18:41, Denis Kudriashov  wrote:

> 2013/3/27 Tudor Girba 
> Perhaps Mocketry would be a good topic for a "Show us your projects" session. 
> Then we can try to go into a couple of more details.
> 
> 
> Unfortunately I can't participate conference this year
>  
> Cheers,
> Doru
> 
> 
> On Mar 27, 2013, at 12:42 AM, Yuriy Tymchuk  wrote:
> 
> > Sounds good to me.
> >
> > On 26 бер. 2013, at 23:00, Camillo Bruni  wrote:
> >
> >>
> >> On 2013-03-26, at 19:45, Denis Kudriashov  wrote:
> >>
> >>> 2013/3/26 Yuriy Tymchuk 
> >>>
> >>>> Ok, and what if we will change behavior a bit so if no definitions were
> >>>> found it will send the incoming message to enclosed object? This way it
> >>>> will work like phexample but will also allow to define some fancy DSL.
> >>>>
> >>>
> >>> We can copy all phexample syntax methods into single class inside
> >>> StateSpecs package but replace implementation with pragmas approach. So
> >>> anybody can browse implementors like usual and it will not required any
> >>> special cases.
> >>>
> >>> How I can influence your interest, guys? I can provide cleaning, comments,
> >>> improvements to StateSpecs. I opened for your requirements.
> >>> Phexample become quite popular and can be part of Pharo sometimes.
> >>> Mocketry/StateSpecs used by people too.
> >>> It would be bad if this packages can't be used together.
> >>
> >> sorry for starting the whole rant :) I am veery busy at least until 
> >> tomorrow
> >>
> >> Yuriy we can discuss that after tomorrow?
> >> I would as well appreciate some common solution to avoid the selector 
> >> clash.
> >>
> >>
> >>
> >>>> On 26 бер. 2013, at 07:46, Denis Kudriashov  wrote:
> >>>>
> >>>> Hello
> >>>> 2013/3/26 Camillo Bruni 
> >>>>
> >>>>> Definitely StateSpec looks more mature and can be used in a more 
> >>>>> flexible
> >>>>> way.
> >>>>> But I am not a big fan of the pragma magic. Why?
> >>>>> It breaks all tools for me :/. If I see a message send I want to be able
> >>>>> to:
> >>>>> - browse it, so I can see who implements it?
> >>>>> - debug it directly to get to the real method.
> >>>>>
> >>>>> SateSpec does indeed help writing readable code by allowing almost
> >>>>> grammatically
> >>>>> correct sentences. However I don't think this is the way to program. I 
> >>>>> am
> >>>>> a big
> >>>>> fan of stupid english:
> >>>>>
> >>>>> `foo should isKindOf: Bar` vs. `foo should be an instance of: Bar`
> >>>>>
> >>>>> If I want to figure out how the first one works, I can simply browse the
> >>>>> implementors of #should and/or #isKindOf: where is the StateSpec version
> >>>>> I am
> >>>>> lost. I have to rely on "contains string literal" to get the sources, 
> >>>>> for
> >>>>> me
> >>>>> that is very strange.
> >>>>>
> >>>>
> >>>> I think main thing you want is easilly explore all available should
> >>>> syntax. And StateSpecs can be easilly adopted for such task. We can just
> >>>> move all methods with syntax pragmas to single class. So you can open 
> >>>> this
> >>>> class and see what available.
> >>>>
> >>>> To get implementors of some "should expression" you should use senders
> >>>> search of syntax words instead of implementors. Syntax words in 
> >>>> StateSpecs
> >>>> is just method literals ( , #() is just
> >>>> array of symbols).
> >>>>
> >>>> Interesting that StateSpecs has more explicit syntax system. How you can
> >>>> explore in Phexample expression:
> >>>>
> >>>> object should be true
> >>>> ?
> >>>>
> >>>> You have separate PheMatcher>>be and PheMatcher&

Re: [Pharo-project] More GSoC ideas wanted, 3 days left ....

2013-03-27 Thread Yuriy Tymchuk
Hi,
one more idea here:


Title: Tree models visualization

Level: intermediate

Possible mentor: Usman Bhatti

Possible second mentor: Yuriy Tymchuk

Description: Moose platform (http://www.moosetechnology.org) does very good job 
for data analysis. Recent FAST extension allows one to model an AST for a 
source code. The idea behind this project is to develop an interactive tree 
visualization that will gradually improve analysis of the underlying model.

Technical Details: Roassal graphical visualization engine will be used to 
visualize tree models. One of a use cases are abstract syntax trees. In 
particular FAST implementation for Smalltalk. Tree visualization should improve 
model understanding and incorporate interaction. Upon creation of the 
visualization, development of a supporting framework is welcome. This way when 
FAST will be extended to model another languages visualization for them could 
be introduced in an easy way. Main issues when working with large tree 
visualization:
- for source trees different nodes have different meanings,
- size of the model often makes visualization difficult to analyze.
- adding interactivity in the visualization to annotate interesting entities, 
analyze them individually/independently. 
 

Benefits to the Student:
- learn Roassal visualization engine
- learn about software modeling
- learn about model representation

Benefits to the Community: result can be used in Moose for AST visualizations 
as well as all other models that conform to tree hierarchy, this will greatly 
improve their analysis.


On 26 бер. 2013, at 12:36, Janko Mivšek  wrote:

> Dear Pharoers,
> 
> Ideas are slowly coming, 14 so far, but this is way below the 30+ in
> previous years. So, stretch your brain, come with some more ideas, which
> will be interesting for potential students and of course useful for our
> community. Students you are again welcome to propose such idea by your
> own. One student idea for now!
> 
> Ideas so far: http://gsoc2013.esug.org/ideas
> 
> To propose an idea just respond to this post by fulfilling this idea
> template:
> 
>  Title:
> 
>  Level: (beginner, intermediate, advanced)
> 
>  Possible mentor: (if already known)
> 
>  Possible second mentor: (if already known)
> 
>  Description
> 
>  Technical Details
> 
>  Benefits to the Student
> 
>  Benefits to the Community
> 
> Best regards
> Serge and Janko,
> your this year GSoC admins
> 
> 
> -- 
> Janko Mivšek
> Aida/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
> 




Re: [Pharo-project] More GSoC ideas wanted, 3 days left ....

2013-03-27 Thread Yuriy Tymchuk
You are welcome, and thank you. One more question: why SciSmalltalk isn't 
present among the ideas?

Yuiry


On 27 бер. 2013, at 13:56, Janko Mivšek  wrote:

> Yuriy, thanks for your explanation, I now understand the intent of your
> idea better. Good luck with it!
> 
> Janko
> 
> Dne 26. 03. 2013 20:24, piše Yuriy Tymchuk:
>> Hi Janko,
>> 
>> To be honest, you are touching Java only by parsing it's code. Yes, it's 
>> shifted towards Java because there is a lot of Java code that is ready to be 
>> analyzed, but all work is done in Smalltalk. Moreover you have to keep model 
>> generic, and this means that you have to work also with a Smalltalk model 
>> and probably tweak it. This is a great opportunity for student to compare 
>> languages and indeed see how much simpler Smalltalk is. That's how I see it.
>> 
>> Regards
>> Yuriy
>> 
>> 
>> On 26 бер. 2013, at 19:56, Janko Mivšek  wrote:
>> 
>>> Privet Yuriy,
>>> 
>>> Idea included, just that I'm wondering a bit if this one is a bit too
>>> Java and not much Smalltalk specific. Would you explain a bit more?
>>> Also, what others think?
>>> 
>>> Best regards
>>> Janko
>>> 
>>> 
>>> Dne 26. 03. 2013 15:56, piše Yuriy Tymchuk:
>>>> Title: FAST Java Model
>>>> 
>>>> Level: intermediate
>>>> 
>>>> Possible mentor: Nikolas Anquetil
>>>> 
>>>> Possible second mentor: Yuriy Tymchuk
>>>> 
>>>> Description: For in depth source code analysis a support of abstract
>>>> syntax trees is required. FAST is an abstract syntax tree extension for
>>>> FAMIX meta-model that is used by Moose technology. The goal of this
>>>> project is to create a Java version of FAST.
>>>> 
>>>> Technical Details: As programming languages are different, their AST
>>>> representations are different too. FAST model aims for creation of as
>>>> generic as possible core that can be extended for different languages.
>>>> Also the structure of a model allows creation of generic algorithms like
>>>> symbol resolution, metrics calculation and rule checking that will work
>>>> for any language. A prototype of FAST for Smalltalk is already
>>>> implemented by Yuriy Tymchuk as well as couple of nodes for Java. During
>>>> the project a student will implement the rest of the Java model, and
>>>> improve some parts of PetitJava parser that is used by FAST.
>>>> 
>>>> Benefits to the Student: The student will gain a deep understanding of
>>>> a Java syntax and abstract syntax tree model. He will also learn about
>>>> PetitParser framework, and gain knowledge about software modeling and
>>>> analysis.
>>>> 
>>>> Benefits to the Community: Community will get a FAST model for Java
>>>> that can be used for software assessment with Moose. Also this model can
>>>> be used later in PhD projects such as automation of source code
>>>> translation form C++ to Java.
>>>> 
>>>> On 26 бер. 2013, at 12:36, Janko Mivšek >>> <mailto:janko.miv...@eranova.si>> wrote:
>>>> 
>>>>> Dear Pharoers,
>>>>> 
>>>>> Ideas are slowly coming, 14 so far, but this is way below the 30+ in
>>>>> previous years. So, stretch your brain, come with some more ideas, which
>>>>> will be interesting for potential students and of course useful for our
>>>>> community. Students you are again welcome to propose such idea by your
>>>>> own. One student idea for now!
>>>>> 
>>>>> Ideas so far: http://gsoc2013.esug.org/ideas
>>>>> 
>>>>> To propose an idea just respond to this post by fulfilling this idea
>>>>> template:
>>>>> 
>>>>> Title:
>>>>> 
>>>>> Level: (beginner, intermediate, advanced)
>>>>> 
>>>>> Possible mentor: (if already known)
>>>>> 
>>>>> Possible second mentor: (if already known)
>>>>> 
>>>>> Description
>>>>> 
>>>>> Technical Details
>>>>> 
>>>>> Benefits to the Student
>>>>> 
>>>>> Benefits to the Community
>>>>> 
>>>>> Best regards
>>>>> Serge and Janko,
>>>>> your this year GSoC admins
> 
> -- 
> Janko Mivšek
> Smalltalk GSoC Admin Team
> http://gsoc2013.esug.org
> 




Re: [Pharo-project] Suggestion about Phexample and StateSpecs(Mocketry) integration

2013-03-26 Thread Yuriy Tymchuk
Sounds good to me.

On 26 бер. 2013, at 23:00, Camillo Bruni  wrote:

> 
> On 2013-03-26, at 19:45, Denis Kudriashov  wrote:
> 
>> 2013/3/26 Yuriy Tymchuk 
>> 
>>> Ok, and what if we will change behavior a bit so if no definitions were
>>> found it will send the incoming message to enclosed object? This way it
>>> will work like phexample but will also allow to define some fancy DSL.
>>> 
>> 
>> We can copy all phexample syntax methods into single class inside
>> StateSpecs package but replace implementation with pragmas approach. So
>> anybody can browse implementors like usual and it will not required any
>> special cases.
>> 
>> How I can influence your interest, guys? I can provide cleaning, comments,
>> improvements to StateSpecs. I opened for your requirements.
>> Phexample become quite popular and can be part of Pharo sometimes.
>> Mocketry/StateSpecs used by people too.
>> It would be bad if this packages can't be used together.
> 
> sorry for starting the whole rant :) I am veery busy at least until tomorrow
> 
> Yuriy we can discuss that after tomorrow?
> I would as well appreciate some common solution to avoid the selector clash.
> 
> 
> 
>>> On 26 бер. 2013, at 07:46, Denis Kudriashov  wrote:
>>> 
>>> Hello
>>> 2013/3/26 Camillo Bruni 
>>> 
>>>> Definitely StateSpec looks more mature and can be used in a more flexible
>>>> way.
>>>> But I am not a big fan of the pragma magic. Why?
>>>> It breaks all tools for me :/. If I see a message send I want to be able
>>>> to:
>>>> - browse it, so I can see who implements it?
>>>> - debug it directly to get to the real method.
>>>> 
>>>> SateSpec does indeed help writing readable code by allowing almost
>>>> grammatically
>>>> correct sentences. However I don't think this is the way to program. I am
>>>> a big
>>>> fan of stupid english:
>>>> 
>>>> `foo should isKindOf: Bar` vs. `foo should be an instance of: Bar`
>>>> 
>>>> If I want to figure out how the first one works, I can simply browse the
>>>> implementors of #should and/or #isKindOf: where is the StateSpec version
>>>> I am
>>>> lost. I have to rely on "contains string literal" to get the sources, for
>>>> me
>>>> that is very strange.
>>>> 
>>> 
>>> I think main thing you want is easilly explore all available should
>>> syntax. And StateSpecs can be easilly adopted for such task. We can just
>>> move all methods with syntax pragmas to single class. So you can open this
>>> class and see what available.
>>> 
>>> To get implementors of some "should expression" you should use senders
>>> search of syntax words instead of implementors. Syntax words in StateSpecs
>>> is just method literals ( , #() is just
>>> array of symbols).
>>> 
>>> Interesting that StateSpecs has more explicit syntax system. How you can
>>> explore in Phexample expression:
>>> 
>>> object should be true
>>> ?
>>> 
>>> You have separate PheMatcher>>be and PheMatcher>>true methods and there is
>>> no places in code where you can see that this messages can and should be
>>> used together.
>>> But with StateSpecs you should put pragma with explicit expression like:
>>> 
>>> Equal>>true: anObject
>>>   
>>>   ^self return: (IdentitySpec pattern: true)
>>> 
>>> So with StateSpecs you have full syntax expression at one place which can
>>> be easy explored.
>>> And for example to support Phexample mesage #beTrue you should just add
>>> another pragma:
>>> 
>>> Equal>>true: anObject
>>>   
>>>   
>>>   ^self return: (IdentitySpec pattern: true)
>>> 
>>> So with Phexample you can browse implementors of "single word should
>>> expressions". But with Phexample if you browse implementors of #be like
>>> messages you have no idea how it can be used.
>>> In StateSpecs you should use senders. And with StateSpecs if you browse
>>> "any syntax word implementors" by senders seach you will see all possible
>>> usage cases. And if I move all methods with syntax pragmas to single class
>>> you can easilly see all possible expressions in one place.
>>> 
>>> `foo should isKindOf: Bar` vs. `foo should be an instance of: Bar`
>>>> 
>>> 
>>> With StateSpecs it should be
>>> 
>>> foo should be a kind of: Bar
>>> 
>>> And as I said before It is simple task to support all Phexample
>>> expressions by StateSpecs pragmas
>>> 
>>> Best regards,
>>> Denis
>>> 
>>> 
>>> 
> 
> 




Re: [Pharo-project] More GSoC ideas wanted, 3 days left ....

2013-03-26 Thread Yuriy Tymchuk
Hi Janko,

To be honest, you are touching Java only by parsing it's code. Yes, it's 
shifted towards Java because there is a lot of Java code that is ready to be 
analyzed, but all work is done in Smalltalk. Moreover you have to keep model 
generic, and this means that you have to work also with a Smalltalk model and 
probably tweak it. This is a great opportunity for student to compare languages 
and indeed see how much simpler Smalltalk is. That's how I see it.

Regards
Yuriy


On 26 бер. 2013, at 19:56, Janko Mivšek  wrote:

> Privet Yuriy,
> 
> Idea included, just that I'm wondering a bit if this one is a bit too
> Java and not much Smalltalk specific. Would you explain a bit more?
> Also, what others think?
> 
> Best regards
> Janko
> 
> 
> Dne 26. 03. 2013 15:56, piše Yuriy Tymchuk:
>> Title: FAST Java Model
>> 
>> Level: intermediate
>> 
>> Possible mentor: Nikolas Anquetil
>> 
>> Possible second mentor: Yuriy Tymchuk
>> 
>> Description: For in depth source code analysis a support of abstract
>> syntax trees is required. FAST is an abstract syntax tree extension for
>> FAMIX meta-model that is used by Moose technology. The goal of this
>> project is to create a Java version of FAST.
>> 
>> Technical Details: As programming languages are different, their AST
>> representations are different too. FAST model aims for creation of as
>> generic as possible core that can be extended for different languages.
>> Also the structure of a model allows creation of generic algorithms like
>> symbol resolution, metrics calculation and rule checking that will work
>> for any language. A prototype of FAST for Smalltalk is already
>> implemented by Yuriy Tymchuk as well as couple of nodes for Java. During
>> the project a student will implement the rest of the Java model, and
>> improve some parts of PetitJava parser that is used by FAST.
>> 
>> Benefits to the Student: The student will gain a deep understanding of
>> a Java syntax and abstract syntax tree model. He will also learn about
>> PetitParser framework, and gain knowledge about software modeling and
>> analysis.
>> 
>> Benefits to the Community: Community will get a FAST model for Java
>> that can be used for software assessment with Moose. Also this model can
>> be used later in PhD projects such as automation of source code
>> translation form C++ to Java.
>> 
>> On 26 бер. 2013, at 12:36, Janko Mivšek > <mailto:janko.miv...@eranova.si>> wrote:
>> 
>>> Dear Pharoers,
>>> 
>>> Ideas are slowly coming, 14 so far, but this is way below the 30+ in
>>> previous years. So, stretch your brain, come with some more ideas, which
>>> will be interesting for potential students and of course useful for our
>>> community. Students you are again welcome to propose such idea by your
>>> own. One student idea for now!
>>> 
>>> Ideas so far: http://gsoc2013.esug.org/ideas
>>> 
>>> To propose an idea just respond to this post by fulfilling this idea
>>> template:
>>> 
>>> Title:
>>> 
>>> Level: (beginner, intermediate, advanced)
>>> 
>>> Possible mentor: (if already known)
>>> 
>>> Possible second mentor: (if already known)
>>> 
>>> Description
>>> 
>>> Technical Details
>>> 
>>> Benefits to the Student
>>> 
>>> Benefits to the Community
>>> 
>>> Best regards
>>> Serge and Janko,
>>> your this year GSoC admins
>>> 
>>> 
>>> -- 
>>> Janko Mivšek
>>> Aida/Web
>>> Smalltalk Web Application Server
>>> http://www.aidaweb.si
>>> 
>> 
> 
> -- 
> Janko Mivšek
> Aida/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
> 




Re: [Pharo-project] More GSoC ideas wanted, 3 days left ....

2013-03-26 Thread Yuriy Tymchuk

On 26 бер. 2013, at 12:36, Janko Mivšek  wrote:
> 
> Ideas so far: http://gsoc2013.esug.org/ideas
> 

And we should change the year in the heading to 2013 (now it's Ideas for 
Smalltalk GSoC 2012 projects)


Re: [Pharo-project] More GSoC ideas wanted, 3 days left ....

2013-03-26 Thread Yuriy Tymchuk
Title: FAST Java Model

 Level: intermediate

 Possible mentor: Nikolas Anquetil

 Possible second mentor: Yuriy Tymchuk

 Description: For in depth source code analysis a support of abstract syntax 
trees is required. FAST is an abstract syntax tree extension for FAMIX 
meta-model that is used by Moose technology. The goal of this project is to 
create a Java version of FAST.

 Technical Details: As programming languages are different, their AST 
representations are different too. FAST model aims for creation of as generic 
as possible core that can be extended for different languages. Also the 
structure of a model allows creation of generic algorithms like symbol 
resolution, metrics calculation and rule checking that will work for any 
language. A prototype of FAST for Smalltalk is already implemented by Yuriy 
Tymchuk as well as couple of nodes for Java. During the project a student will 
implement the rest of the Java model, and improve some parts of PetitJava 
parser that is used by FAST.

 Benefits to the Student: The student will gain a deep understanding of a Java 
syntax and abstract syntax tree model. He will also learn about PetitParser 
framework, and gain knowledge about software modeling and analysis.

 Benefits to the Community: Community will get a FAST model for Java that can 
be used for software assessment with Moose. Also this model can be used later 
in PhD projects such as automation of source code translation form C++ to Java.

On 26 бер. 2013, at 12:36, Janko Mivšek  wrote:

> Dear Pharoers,
> 
> Ideas are slowly coming, 14 so far, but this is way below the 30+ in
> previous years. So, stretch your brain, come with some more ideas, which
> will be interesting for potential students and of course useful for our
> community. Students you are again welcome to propose such idea by your
> own. One student idea for now!
> 
> Ideas so far: http://gsoc2013.esug.org/ideas
> 
> To propose an idea just respond to this post by fulfilling this idea
> template:
> 
>  Title:
> 
>  Level: (beginner, intermediate, advanced)
> 
>  Possible mentor: (if already known)
> 
>  Possible second mentor: (if already known)
> 
>  Description
> 
>  Technical Details
> 
>  Benefits to the Student
> 
>  Benefits to the Community
> 
> Best regards
> Serge and Janko,
> your this year GSoC admins
> 
> 
> -- 
> Janko Mivšek
> Aida/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
> 



Re: [Pharo-project] Suggestion about Phexample and StateSpecs(Mocketry) integration

2013-03-26 Thread Yuriy Tymchuk
Ok, and what if we will change behavior a bit so if no definitions were found 
it will send the incoming message to enclosed object? This way it will work 
like phexample but will also allow to define some fancy DSL.

On 26 бер. 2013, at 07:46, Denis Kudriashov  wrote:

> Hello
> 2013/3/26 Camillo Bruni 
> Definitely StateSpec looks more mature and can be used in a more flexible way.
> But I am not a big fan of the pragma magic. Why?
> It breaks all tools for me :/. If I see a message send I want to be able to:
> - browse it, so I can see who implements it?
> - debug it directly to get to the real method.
> 
> SateSpec does indeed help writing readable code by allowing almost 
> grammatically
> correct sentences. However I don't think this is the way to program. I am a 
> big
> fan of stupid english:
> 
> `foo should isKindOf: Bar` vs. `foo should be an instance of: Bar`
> 
> If I want to figure out how the first one works, I can simply browse the
> implementors of #should and/or #isKindOf: where is the StateSpec version I am
> lost. I have to rely on "contains string literal" to get the sources, for me
> that is very strange.
> 
> I think main thing you want is easilly explore all available should syntax. 
> And StateSpecs can be easilly adopted for such task. We can just move all 
> methods with syntax pragmas to single class. So you can open this class and 
> see what available.
> 
> To get implementors of some "should expression" you should use senders search 
> of syntax words instead of implementors. Syntax words in StateSpecs is just 
> method literals ( , #() is just array of 
> symbols).
> 
> Interesting that StateSpecs has more explicit syntax system. How you can 
> explore in Phexample expression:
> 
> object should be true
> ?
> 
> You have separate PheMatcher>>be and PheMatcher>>true methods and there is no 
> places in code where you can see that this messages can and should be used 
> together.
> But with StateSpecs you should put pragma with explicit expression like:
> 
> Equal>>true: anObject 
> 
> ^self return: (IdentitySpec pattern: true)
> 
> So with StateSpecs you have full syntax expression at one place which can be 
> easy explored.
> And for example to support Phexample mesage #beTrue you should just add 
> another pragma:
> 
> Equal>>true: anObject 
> 
> 
> ^self return: (IdentitySpec pattern: true)
> 
> So with Phexample you can browse implementors of "single word should 
> expressions". But with Phexample if you browse implementors of #be like 
> messages you have no idea how it can be used. 
> In StateSpecs you should use senders. And with StateSpecs if you browse "any 
> syntax word implementors" by senders seach you will see all possible usage 
> cases. And if I move all methods with syntax pragmas to single class you can 
> easilly see all possible expressions in one place.
> 
> `foo should isKindOf: Bar` vs. `foo should be an instance of: Bar`
> 
> With StateSpecs it should be 
> 
> foo should be a kind of: Bar
> 
> And as I said before It is simple task to support all Phexample expressions 
> by StateSpecs pragmas
> 
> Best regards,
> Denis
> 



Re: [Pharo-project] Suggestion about Phexample and StateSpecs(Mocketry) integration

2013-03-25 Thread Yuriy Tymchuk
I think that we can implement all basic messages like isTrue, isKindOf: , so 
you'll be able to write it and browse it. Also people will be able to decide in 
what form they want to write tests. I think that it's nice to have such 
flexible tool as StateSpec

Надіслано з iPhone

25 бер. 2013 о 22:28 Camillo Bruni  написав(ла):

> 
> On 2013-03-25, at 21:24, Denis Kudriashov  wrote:
> 
>> Hello
>> 
>> I think you read about Mocketry and know that It provides same "should
>> syntax" DSL like project Phexample.
>> 
>> There is problem between two projects. We both implement #should message in
>> Object class. So when somebody want Phexample Mocketry become broken and
>> vice versa.
>> 
>> In the past I actually only read about Phexample tests reusage idea with
>> #given message. And I didn't know that It provides "should syntax" too.
>> Now I read about it and look at code (thank's Yuriy Tymchuk) and I have
>> some suggestions about it.
>> 
>> First few words about state of Mocketry project.
>> 
>> Mocketry is not based on SSpec (I was google such wrong opinion). It is
>> just implement SSpec idea about executable specifications and "should
>> syntax".
>> And specifications part with DSL was extracted from Mocketry to StateSpecs
>> project. So Mocketry is only about mocks and behaviour specs.
>> 
>> Idea of executable specifications is not about replacement "assert syntax"
>> with "should syntax". It is about building reusable first class objects
>> which can validate domain objects. For example there are EqualitySpec,
>> ElementsCountSpec, ClassSpec. All this specs present "valid state" of
>> objects. They know how to validate objects.
>> State specs can be used in tests, UI and any other domain where you want
>> put descriptions about what it mean "valid object".
>> I start use StateSpecs in Presenty to build object editor. With specs I put
>> requirements on model aspects.
>> I am sure Magritte provides something similar in description objects.
>> 
>> So StateSpecs solve very general problem: how to describe validation rules
>> for objects and how to make such descriptions reusable.
>> To make it convenient and readable StateSpecs provides two kind of DSL:
>> 
>> - should syntax to immediately check object state
>> - first class words to create spec instances with more readable way:
>> Instance of: SomeClass, Equal to: #some, Containing item: arrayItem and
>> others
>> 
>> First option can be used in tests instead #assert: expressions. Last can be
>> used in mock message arguments.
>> 
>> StateSpecs provide very simple way to extend it DSL based on pragmas:
>> 
>> Instance of: aClass
>>  
>>  ^ClassSpec for: aClass
>> 
>> Equal to: anObject
>>  
>>  
>>  ^self return: (EqualitySpec pattern: anObject)
>> 
>> Containing item: anObject
>>  
>>  ^ElementContainmentSpec requiredElement: anObject
>> 
>> And with this you can write:
>> 
>> object should be an instance of: SomeClass
>> object should equal: #some
>> object should be equal: #some
>> array should include: item.
>> 
>> So with such approach both kind of DSL extended at one place.
>> 
>> Ok. Now my main suggestion. Let's Phexample use StateSpecs for "should
>> syntax".
>> I can provide all "should protocol" of Phexample in StateSpecs. So it will
>> be transparent for current users. It just few extra pragmas and classes in
>> StateSpecs-DSL package. Maybe it is already done by Yuriy Tymchuk.
>> With such integration both projects will just improved.
>> 
>> What do you think?
> 
> humm I have ambigous feelings about that.
> Definitely StateSpec looks more mature and can be used in a more flexible way.
> But I am not a big fan of the pragma magic. Why?
> It breaks all tools for me :/. If I see a message send I want to be able to:
> - browse it, so I can see who implements it?
> - debug it directly to get to the real method.
> 
> SateSpec does indeed help writing readable code by allowing almost 
> grammatically
> correct sentences. However I don't think this is the way to program. I am a 
> big
> fan of stupid english:
> 
> `foo should isKindOf: Bar` vs. `foo should be an instance of: Bar`
> 
> If I want to figure out how the first one works, I can simply browse the
> implementors of #should and/or #isKindOf: where is the StateSpec version I am
> lost. I have to rely on "contains string literal" to get the sources, for me
> that is very strange.
> 
> So personally I would go for the simple solution that doesn't introduce yet
> another indirection meta-level using the pragmas.
> 
> For me, complex DSLs only work if you write the proper debugging tools for it.
> 
> Sorry for so much negative energy :) but you can try to convince me otherwise 
> :)
> 
> 
> 
>