Spec doc

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Spec doc

HilaireFernandes
Hello

I want to evaluate the use of Spec for desktop application.

What are the recommended spec reading?

Is Spec feature complete enough to develop application with complex GUI?
(very subjective question)

Is it intended to remain compatible with future release and modification
of the underneath graphic system?

Thanks

Hilaire
--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

Julien Delplanque
Hi,

On 04/02/16 17:42, Hilaire wrote:
> Hello
>
> I want to evaluate the use of Spec for desktop application.
>
> What are the recommended spec reading?
I suppose this link: http://spec.st/docs/home/
and the examples in 'Spec-Examples' package.
>
> Is Spec feature complete enough to develop application with complex GUI?
> (very subjective question)
I can not really answer this since I only begin with Spec but, right now,
I have difficulties with drag and drop between lists but it may be my fault.
>
> Is it intended to remain compatible with future release and modification
> of the underneath graphic system?
>
> Thanks
>
> Hilaire

Julien


Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

jfabry
In reply to this post by HilaireFernandes
Hello Hilaire,

I think a mail of Sven of last year will answer most of your questions, I quote it below.

In addition to that mail:
- Spec is the standard UI builder for Pharo so it is reasonably complete and should be supported in the future.
- The book Sven talks about is very much a work in progress, the URL for now is https://ci.inria.fr/pharo-contribution/view/Books/job/PharoBookWorkInProgress/lastSuccessfulBuild/artifact/book-result/Spec/

Here is the original mail by Sven:

> There is an excellent presentation by Johan Fabry did during the last Pharo Days, 'Using Spec to Build a UI'. *MUST WATCH* (the video is not yet fully public, but soon will be, the link should work though):
>
>  http://youtu.be/OL23s9ZUIR0?list=PL4actYd6bfnz98ngrKALwwStl3C3odEKG
>
> The slides are also not yet available, but soon will be (the talk is much better that the slides on their own).
>
>
> This draft chapter 'Spec: a framework for describing user interfaces' for an upcoming book:
>
>  https://ci.inria.fr/pharo-contribution/view/Books/job/PharoBookWorkInProgress/lastSuccessfulBuild/artifact/Spec/Spec.pier.html
>
>
> Look in the image.
>
> Browse the hierarchy below AbstractWidgetModel in the category Spec-Core-Widgets in Pharo 4, look at the protocols called 'protocol' & 'protocol-events' mainly. Look for references to each class. Trace senders of methods until you arrive at examples. Study the examples, play with them, change them.
>
> The UI of most tools in Pharo is also implemented using Spec. Browse the hierarchy below ComposableModel to find them. (Komitter, Versionner, Critics, Metacello, the old Eye Inspectors, ..). Watch and learn.
>
>
> The cool Spec website:
>
>  http://spec.st
>
>
> Read some cool articles like:
>
> https://medium.com/concerning-pharo/rediscovering-the-ux-of-the-legendary-hp-35-scientific-pocket-calculator-d1d497ece999
>
> See the section 'HP35CalculatorModel' for the Spec part.
>
>
> The following papers (some older ones refer to API that has changed):
>
> 'Seamless Composition and Reuse of Customizable User Interfaces with Spec'
>
>  http://rmod.lille.inria.fr/archives/papers/Ryse13a-SCICO-Spec.pdf
>
> 'Spec - A Framework for the Specification and Reuse of UIs and their Models'
>
>  http://rmod.lille.inria.fr/archives/papers/Ryse12b-Spec-IWST12-Final.pdf
>
> 'Spec – Technical Report'
>
>  http://rmod.lille.inria.fr/archives/reports/Ryse12a-SpecTechReport.pdf
>
>
> Use the image to build a couple of simple UIs using Spec. You will be surprised to learn that it is not that difficult. Just go with the flow, don't try to enforce your world view on it, wait until you are further along.


> On Feb 4, 2016, at 13:42, Hilaire <[hidden email]> wrote:
>
> Hello
>
> I want to evaluate the use of Spec for desktop application.
>
> What are the recommended spec reading?
>
> Is Spec feature complete enough to develop application with complex GUI?
> (very subjective question)
>
> Is it intended to remain compatible with future release and modification
> of the underneath graphic system?
>
> Thanks
>
> Hilaire
> --
> Dr. Geo
> http://drgeo.eu
>
>
>



---> Save our in-boxes! http://emailcharter.org <---

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -  University of Chile


Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

Stephan Eggermont-3
In reply to this post by HilaireFernandes
On 04-02-16 17:42, Hilaire wrote:
> Hello
>
> I want to evaluate the use of Spec for desktop application.
>
> What are the recommended spec reading?
>
> Is Spec feature complete enough to develop application with complex GUI?
> (very subjective question)

You will probably have to encapsulate a few more Morphic classes and add
some behaviors to the spec models. In PharoLauncher you can already see
a few extensions and combinations. In PharoLauncher there is a single
session called PhlCommandContext and commands that operate on that
session. You might need to add better form layout.

> Is it intended to remain compatible with future release and modification
> of the underneath graphic system?

Yes.

Stephan


Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

stepharo
In reply to this post by HilaireFernandes
Hilaire

Spec is not at the level I would like. I feel concerned about it and sad
as well.
Now I do not have the time to improve it.
What would be is that people provide some snippet showing their use and
that we collect
that into the draft.

Stef

Le 4/2/16 17:42, Hilaire a écrit :

> Hello
>
> I want to evaluate the use of Spec for desktop application.
>
> What are the recommended spec reading?
>
> Is Spec feature complete enough to develop application with complex GUI?
> (very subjective question)
>
> Is it intended to remain compatible with future release and modification
> of the underneath graphic system?
>
> Thanks
>
> Hilaire


Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

hernanmd
In reply to this post by HilaireFernandes
Hi Hilaire,

2016-02-04 13:42 GMT-03:00 Hilaire <[hidden email]>:
Hello

I want to evaluate the use of Spec for desktop application.

What are the recommended spec reading?


In this case, the best is to read source code in the image.
 
Is Spec feature complete enough to develop application with complex GUI?
(very subjective question)


Besides all good intentions and nice innocent feelings, Spec is not ready yet for professional UI development. However you can lower your ambitions by building simpler UI components. The lack of a UI builder is not helping at all.

Hernán
 
Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

hernanmd
Repository contains behaviors I had to add while developing a desktop application.

Hernan


2016-02-05 8:52 GMT-03:00 Hernán Morales Durand <[hidden email]>:
Hi Hilaire,

2016-02-04 13:42 GMT-03:00 Hilaire <[hidden email]>:
Hello

I want to evaluate the use of Spec for desktop application.

What are the recommended spec reading?


In this case, the best is to read source code in the image.
 
Is Spec feature complete enough to develop application with complex GUI?
(very subjective question)


Besides all good intentions and nice innocent feelings, Spec is not ready yet for professional UI development. However you can lower your ambitions by building simpler UI components. The lack of a UI builder is not helping at all.

Hernán
 

Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

HilaireFernandes
Thanks. Do you have screenshots of the application to share?

Hilaire

Le 05/02/2016 18:55, Hernán Morales Durand a écrit :
> BTW have a look at http://www.smalltalkhub.com/#!/~hernan/SpecUIAddOns
> <http://www.smalltalkhub.com/#%21/%7Ehernan/SpecUIAddOns> .
> Repository contains behaviors I had to add while developing a desktop
> application.

--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

hernanmd
Installers not yet available. Probably next week.
Cheers,

Hernán

2016-02-05 16:31 GMT-03:00 Hilaire <[hidden email]>:
Thanks. Do you have screenshots of the application to share?

Hilaire

Le 05/02/2016 18:55, Hernán Morales Durand a écrit :
> BTW have a look at http://www.smalltalkhub.com/#!/~hernan/SpecUIAddOns
> <http://www.smalltalkhub.com/#%21/%7Ehernan/SpecUIAddOns> .
> Repository contains behaviors I had to add while developing a desktop
> application.

--
Dr. Geo
http://drgeo.eu



Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

HilaireFernandes
Thanks for the link Hernán! It looks nice.

Are you mixing spec with other widgetery or is pure spec widget composition?

Hilaire

--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

SergeStinckwich
In reply to this post by hernanmd
Really interesting tool !
Is it possible to query GBIF portal from your tool ?
Regards

Sent from my iPhone

On 6 févr. 2016, at 00:45, Hernán Morales Durand <[hidden email]> wrote:

Installers not yet available. Probably next week.
Cheers,

Hernán

2016-02-05 16:31 GMT-03:00 Hilaire <[hidden email]>:
Thanks. Do you have screenshots of the application to share?

Hilaire

Le 05/02/2016 18:55, Hernán Morales Durand a écrit :
> BTW have a look at http://www.smalltalkhub.com/#!/~hernan/SpecUIAddOns
> <http://www.smalltalkhub.com/#%21/%7Ehernan/SpecUIAddOns> .
> Repository contains behaviors I had to add while developing a desktop
> application.

--
Dr. Geo
http://drgeo.eu



Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

hernanmd
Hi Serge,

It could be interesting to add a GBIF API for a future release, however the GBIF dataset is oriented to taxonomies and name resolution (of already assigned genetic data), and we do not put much focus on taxonomy but a determining phylogeography, origins of domestic breeds, etc. of a few well-defined species.
Regards,

Hernán



2016-02-06 9:59 GMT-03:00 <[hidden email]>:
Really interesting tool !
Is it possible to query GBIF portal from your tool ?
Regards

Sent from my iPhone

On 6 févr. 2016, at 00:45, Hernán Morales Durand <[hidden email]> wrote:

Installers not yet available. Probably next week.
Cheers,

Hernán

2016-02-05 16:31 GMT-03:00 Hilaire <[hidden email]>:
Thanks. Do you have screenshots of the application to share?

Hilaire

Le 05/02/2016 18:55, Hernán Morales Durand a écrit :
> BTW have a look at http://www.smalltalkhub.com/#!/~hernan/SpecUIAddOns
> <http://www.smalltalkhub.com/#%21/%7Ehernan/SpecUIAddOns> .
> Repository contains behaviors I had to add while developing a desktop
> application.

--
Dr. Geo
http://drgeo.eu




Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

hernanmd
In reply to this post by HilaireFernandes
Hi Hilaire,

Besides using Roassal2 for visualizations, it is pure Spec.
Cheers,

Hernán

2016-02-06 4:38 GMT-03:00 Hilaire <[hidden email]>:
Thanks for the link Hernán! It looks nice.

Are you mixing spec with other widgetery or is pure spec widget composition?

Hilaire

--
Dr. Geo
http://drgeo.eu



Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

stepharo
In reply to this post by hernanmd
Hernan

why did you push such extensions in the main spec version inside the image?
I do not get the rationale of not doing it. Especially since we always welcome
enhancements.

Stef

Le 5/2/16 18:55, Hernán Morales Durand a écrit :
Repository contains behaviors I had to add while developing a desktop application.

Hernan


2016-02-05 8:52 GMT-03:00 Hernán Morales Durand <[hidden email]>:
Hi Hilaire,

2016-02-04 13:42 GMT-03:00 Hilaire <[hidden email]>:
Hello

I want to evaluate the use of Spec for desktop application.

What are the recommended spec reading?


In this case, the best is to read source code in the image.
 
Is Spec feature complete enough to develop application with complex GUI?
(very subjective question)


Besides all good intentions and nice innocent feelings, Spec is not ready yet for professional UI development. However you can lower your ambitions by building simpler UI components. The lack of a UI builder is not helping at all.

Hernán
 


Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

hernanmd
As always I don't have time to open, follow and check issues. It is faster (for me) if I have them isolated.
But my repos are always open and anyone can feel free to ask me about the extensions.
Sorry for this.

Hernán


2016-02-06 16:45 GMT-03:00 stepharo <[hidden email]>:
Hernan

why did you push such extensions in the main spec version inside the image?
I do not get the rationale of not doing it. Especially since we always welcome
enhancements.

Stef

Le 5/2/16 18:55, Hernán Morales Durand a écrit :
Repository contains behaviors I had to add while developing a desktop application.

Hernan


2016-02-05 8:52 GMT-03:00 Hernán Morales Durand <[hidden email]>:
Hi Hilaire,

2016-02-04 13:42 GMT-03:00 Hilaire <[hidden email][hidden email]>:
Hello

I want to evaluate the use of Spec for desktop application.

What are the recommended spec reading?


In this case, the best is to read source code in the image.
 
Is Spec feature complete enough to develop application with complex GUI?
(very subjective question)


Besides all good intentions and nice innocent feelings, Spec is not ready yet for professional UI development. However you can lower your ambitions by building simpler UI components. The lack of a UI builder is not helping at all.

Hernán
 



Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

stepharo


Le 6/2/16 21:44, Hernán Morales Durand a écrit :
As always I don't have time to open, follow and check issues. It is faster (for me) if I have them isolated.
But my repos are always open and anyone can feel free to ask me about the extensions.
Sorry for this.
I cannot believe that it takes you that much time to open a bug entry and package your changes
compared with getting impacted the next teim we will do a pass on spec

Now you are telling us that do not know what you did to do that.
This is a bit unfair when I see the COUNTLESS hours I spend writing docs and improving Pharo.

Stef

Hernán


2016-02-06 16:45 GMT-03:00 stepharo <[hidden email]>:
Hernan

why did you push such extensions in the main spec version inside the image?
I do not get the rationale of not doing it. Especially since we always welcome
enhancements.

Stef

Le 5/2/16 18:55, Hernán Morales Durand a écrit :
Repository contains behaviors I had to add while developing a desktop application.

Hernan


2016-02-05 8:52 GMT-03:00 Hernán Morales Durand <[hidden email]>:
Hi Hilaire,

2016-02-04 13:42 GMT-03:00 Hilaire <[hidden email]>:
Hello

I want to evaluate the use of Spec for desktop application.

What are the recommended spec reading?


In this case, the best is to read source code in the image.
 
Is Spec feature complete enough to develop application with complex GUI?
(very subjective question)


Besides all good intentions and nice innocent feelings, Spec is not ready yet for professional UI development. However you can lower your ambitions by building simpler UI components. The lack of a UI builder is not helping at all.

Hernán
 




Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

stepharo
In reply to this post by hernanmd
Hi hernan

some feedback/questions while waiting for my kids...

=============
"protocol: *SpecUIAddOns"
includesNameBeginsWith: aString
     " Answer whether the receiver begins with aString. "

     ^ self asLowercase = aString first asLowercase


does not look like doing what it says.


=====================================
I do not get

specModalParent
     " Receiver cannot be modal parent, answer a default (morphic world) "

     ^ [ self currentWorld ]
     on: Error
     do: [ : ex | UIManager default currentWorld ]


=====================================

In searchableTree

either use tree or self tree

"protocol: *SpecUIAddOns"
autoMultiSelection: aBoolean

     self tree autoMultiSelection: aBoolean



It was interested to see that you added a lot of methods

methods
     self xxxmodel methods

I was against them.
Now the point is

if we ban such idiom

remove: anItem
     self listModel remove: anItem

then (beside exposing the model which would be ok for me if we consider
it as a port)

we have the problem of encapsulating more complex behavior
such

removeAllItems

     self listModel removeAll.
     self updateList

So probably that

remove: anItem
     self listModel remove: anItem

is better


Stef



Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

hernanmd
In reply to this post by stepharo

2016-02-07 5:33 GMT-03:00 stepharo <[hidden email]>:


Le 6/2/16 21:44, Hernán Morales Durand a écrit :
As always I don't have time to open, follow and check issues. It is faster (for me) if I have them isolated.
But my repos are always open and anyone can feel free to ask me about the extensions.
Sorry for this.
I cannot believe that it takes you that much time to open a bug entry and package your changes
compared with getting impacted the next teim we will do a pass on spec


When I am coding I am concentrated in building features for my application, I cannot stop 5 minutes every time I find missing or bug in methods in Spec, Metacello, Glamour (which is *very* often), or other core packages.

On the other side opening an entry is more than saying "this doesn't work", there is a context of usage you have to explain, you have to search for previously opened similar entries, you have to try to reproduce the exact steps (not always possible), describe them in an undestandable way for the reader, and if you propose a fix sometimes you have to explain again, and check for regressions.... you all know the right steps.

So in this case, I have packaged my Spec extensions (which needs to be reviewed anyway) and uploaded to SmalltalkHub under MIT license. I am sorry to hear that is not enough for you. If anyone really wish to review extensions in Spec please welcome - because they would probably also contains bugs - I cannot do more for Pharo now and I have to work for my employer which is asking me everyday things completely far far away from Pharo (you know I do not want to get fired :).

Now you are telling us that do not know what you did to do that.
This is a bit unfair when I see the COUNTLESS hours I spend writing docs and improving Pharo.


Yes, and I think most of us sincerely appreciate your efforts. And I also believe many of us have our own battles. Actually I had to "fight" every week for Pharo because having people telling Python/R has implemented X (which is crappy argument) is not easy.

Hernán

 
Stef

Hernán


2016-02-06 16:45 GMT-03:00 stepharo <[hidden email]>:
Hernan

why did you push such extensions in the main spec version inside the image?
I do not get the rationale of not doing it. Especially since we always welcome
enhancements.

Stef

Le 5/2/16 18:55, Hernán Morales Durand a écrit :
Repository contains behaviors I had to add while developing a desktop application.

Hernan


2016-02-05 8:52 GMT-03:00 Hernán Morales Durand <[hidden email][hidden email]>:
Hi Hilaire,

2016-02-04 13:42 GMT-03:00 Hilaire <[hidden email][hidden email]>:
Hello

I want to evaluate the use of Spec for desktop application.

What are the recommended spec reading?


In this case, the best is to read source code in the image.
 
Is Spec feature complete enough to develop application with complex GUI?
(very subjective question)


Besides all good intentions and nice innocent feelings, Spec is not ready yet for professional UI development. However you can lower your ambitions by building simpler UI components. The lack of a UI builder is not helping at all.

Hernán
 





Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

hernanmd
In reply to this post by stepharo
Thanks, I will check later because it's 6 a.m. and I have to sleep :)
Cheers,

Hernán

2016-02-07 6:13 GMT-03:00 stepharo <[hidden email]>:
Hi hernan

some feedback/questions while waiting for my kids...

=============
"protocol: *SpecUIAddOns"
includesNameBeginsWith: aString
    " Answer whether the receiver begins with aString. "

    ^ self asLowercase = aString first asLowercase


does not look like doing what it says.


=====================================
I do not get

specModalParent
    " Receiver cannot be modal parent, answer a default (morphic world) "

    ^ [ self currentWorld ]
    on: Error
    do: [ : ex | UIManager default currentWorld ]


=====================================

In searchableTree

either use tree or self tree

"protocol: *SpecUIAddOns"
autoMultiSelection: aBoolean

    self tree autoMultiSelection: aBoolean



It was interested to see that you added a lot of methods

methods
    self xxxmodel methods

I was against them.
Now the point is

if we ban such idiom

remove: anItem
    self listModel remove: anItem

then (beside exposing the model which would be ok for me if we consider it as a port)

we have the problem of encapsulating more complex behavior
such

removeAllItems

    self listModel removeAll.
    self updateList

So probably that

remove: anItem
    self listModel remove: anItem

is better


Stef




Reply | Threaded
Open this post in threaded view
|

Re: Spec doc

SergeStinckwich
In reply to this post by hernanmd
On Sun, Feb 7, 2016 at 10:22 AM, Hernán Morales Durand
<[hidden email]> wrote:

>
> 2016-02-07 5:33 GMT-03:00 stepharo <[hidden email]>:
>>
>>
>>
>> Le 6/2/16 21:44, Hernán Morales Durand a écrit :
>>
>> As always I don't have time to open, follow and check issues. It is faster
>> (for me) if I have them isolated.
>> But my repos are always open and anyone can feel free to ask me about the
>> extensions.
>> Sorry for this.
>>
>> I cannot believe that it takes you that much time to open a bug entry and
>> package your changes
>> compared with getting impacted the next teim we will do a pass on spec
>>
>
> When I am coding I am concentrated in building features for my application,
> I cannot stop 5 minutes every time I find missing or bug in methods in Spec,
> Metacello, Glamour (which is *very* often), or other core packages.
>
> On the other side opening an entry is more than saying "this doesn't work",
> there is a context of usage you have to explain, you have to search for
> previously opened similar entries, you have to try to reproduce the exact
> steps (not always possible), describe them in an undestandable way for the
> reader, and if you propose a fix sometimes you have to explain again, and
> check for regressions.... you all know the right steps.
>
> So in this case, I have packaged my Spec extensions (which needs to be
> reviewed anyway) and uploaded to SmalltalkHub under MIT license. I am sorry
> to hear that is not enough for you. If anyone really wish to review
> extensions in Spec please welcome - because they would probably also
> contains bugs - I cannot do more for Pharo now and I have to work for my
> employer which is asking me everyday things completely far far away from
> Pharo (you know I do not want to get fired :).
>
>> Now you are telling us that do not know what you did to do that.
>> This is a bit unfair when I see the COUNTLESS hours I spend writing docs
>> and improving Pharo.
>>
>
> Yes, and I think most of us sincerely appreciate your efforts. And I also
> believe many of us have our own battles. Actually I had to "fight" every
> week for Pharo because having people telling Python/R has implemented X
> (which is crappy argument) is not easy.

We are on the same boat Hernan :-) I heard the same crap.
This is why this is important to play cooperatively between us and
report bugs upstream if possible.

Thank you for your effort for pushing the use of Pharo in such directions !

I will have a look to your work about phylogenetics.
With BioSmalltalk, SciSmalltalk and Kendrick, I think that we are
pushing hard Pharo in the domain of biology/epidemiology modeling.
We should try to share as much as possible what we are doing.

Regards,
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/

12