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
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/PharoBookWorkInProgres... 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/PharoBookWorkInProgres...
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:
Read some cool articles like:
https://medium.com/concerning-pharo/rediscovering-the-ux-of-the-legendary-hp...
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 <hilaire@drgeo.eu> 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
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
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
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
Hi Hilaire, 2016-02-04 13:42 GMT-03:00 Hilaire <hilaire@drgeo.eu>:
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
BTW have a look at http://www.smalltalkhub.com/#!/~hernan/SpecUIAddOns . 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 <hernan.morales@gmail.com>:
Hi Hilaire,
2016-02-04 13:42 GMT-03:00 Hilaire <hilaire@drgeo.eu>:
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
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
http://phyloclasstalk.github.io/ Installers not yet available. Probably next week. Cheers, Hernán 2016-02-05 16:31 GMT-03:00 Hilaire <hilaire@drgeo.eu>:
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
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
Hi Hilaire, Besides using Roassal2 for visualizations, it is pure Spec. Cheers, Hernán 2016-02-06 4:38 GMT-03:00 Hilaire <hilaire@drgeo.eu>:
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
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 <hernan.morales@gmail.com> wrote:
http://phyloclasstalk.github.io/
Installers not yet available. Probably next week. Cheers,
Hernán
2016-02-05 16:31 GMT-03:00 Hilaire <hilaire@drgeo.eu>:
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
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 <serge.stinckwich@gmail.com>:
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 <hernan.morales@gmail.com> wrote:
http://phyloclasstalk.github.io/
Installers not yet available. Probably next week. Cheers,
Hernán
2016-02-05 16:31 GMT-03:00 Hilaire <hilaire@drgeo.eu>:
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
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 :
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.
Hernan
2016-02-05 8:52 GMT-03:00 Hernán Morales Durand <hernan.morales@gmail.com <mailto:hernan.morales@gmail.com>>:
Hi Hilaire,
2016-02-04 13:42 GMT-03:00 Hilaire <hilaire@drgeo.eu <mailto:hilaire@drgeo.eu>>:
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
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 <stepharo@free.fr>:
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 :
BTW have a look at http://www.smalltalkhub.com/#!/~hernan/SpecUIAddOns . 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 <hernan.morales@gmail.com> :
Hi Hilaire,
2016-02-04 13:42 GMT-03:00 Hilaire < <hilaire@drgeo.eu>hilaire@drgeo.eu>:
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
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 <stepharo@free.fr <mailto:stepharo@free.fr>>:
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 :
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.
Hernan
2016-02-05 8:52 GMT-03:00 Hernán Morales Durand <hernan.morales@gmail.com <mailto:hernan.morales@gmail.com>>:
Hi Hilaire,
2016-02-04 13:42 GMT-03:00 Hilaire <hilaire@drgeo.eu <mailto:hilaire@drgeo.eu>>:
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
2016-02-07 5:33 GMT-03:00 stepharo <stepharo@free.fr>:
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 <stepharo@free.fr>:
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 :
BTW have a look at http://www.smalltalkhub.com/#!/~hernan/SpecUIAddOns . 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 < <hernan.morales@gmail.com>hernan.morales@gmail.com>:
Hi Hilaire,
2016-02-04 13:42 GMT-03:00 Hilaire < <hilaire@drgeo.eu>hilaire@drgeo.eu> :
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
On Sun, Feb 7, 2016 at 10:22 AM, Hernán Morales Durand <hernan.morales@gmail.com> wrote:
2016-02-07 5:33 GMT-03:00 stepharo <stepharo@free.fr>:
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/
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
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 <stepharo@free.fr>:
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
I will integrate some of your additions in Pharo (the enhancing of API). Esteban this is just improving Spec API so it does not break anything. Le 7/2/16 10:24, Hernán Morales Durand a écrit :
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 <stepharo@free.fr <mailto:stepharo@free.fr>>:
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
participants (8)
-
Hernán Morales Durand -
Hilaire -
Johan Fabry -
Julien Delplanque -
Serge Stinckwich -
serge.stinckwich@gmail.com -
Stephan Eggermont -
stepharo