[Pharo-dev] Questions about Athens

Alexandre Bergel alexandre.bergel at me.com
Thu Oct 31 19:49:06 EDT 2013


Regarding OpenGL, we intensively use it for Roassal3d, also available on smalltalkhub. Screenshots are available on https://m.facebook.com/ObjectProfile?id=340543479365589&_rdr

Cheers,
Alexandre

> Le 31-10-2013 à 16:01, kilon alios <kilon.alios at gmail.com> a écrit :
> 
> Thank you Alexander and Stephane , I did not know that Roassal use Athens. This certainly will be helpful for me. 
> 
> Stephane, about NBOpenGL , my problem was opengl itself not NBOpenGL , I learned a lot of things true and yeah I did not know Roassal is using NBOpenGL but even if I did as you said opengl is not what I really needed. At the time I did not realize the effort to do vector graphics with opengl and the whole difficulty of learning the API, now I know I need something way more high level for my needs. 
> 
> About Athens tutorial, I dont know such thing, the only thing I know is AthensDemoMorph and the Athens-Examples Package and a video presentation that Igor posted way back in vimeo. So no I dont know of such tutorial. 
> 
> Wow the guy took 62 K euros and left ? Sorry to hear that :( cant believe how people do such things . 
> 
> 
>> On Thu, Oct 31, 2013 at 7:49 PM, Stéphane Ducasse <stephane.ducasse at inria.fr> wrote:
>> Hi 
>> 
>>> I created a new subject 
>>> 
>>> About the problem to recreate it all it takes is a demo := AthensDemoMorph new openInWorld . It opens the morph with the Athens grey box, I save the image , close pharo, open pharo which reloads the image automagically and BOOM Red Box of Doom :) My other tries also are based on AthensDemoMorph since I cant find documentation to do things differently. 
>>> 
>>> So lets get to the questions 
>>> 
>>> 1) You say you have morphs using Athens that don't have this problem, care to explain further ? 
>> 
>> Did you see the tutorial?
>> 
>>> 2) How do I recreate automatically those surfaces ? 
>>> 
>>> 3) Do I need to instruct the image on load to reinitialize those objects ? 
>>> 
>>> 4) If yes How I do that ? 
>>> 
>>> You say its a major problem but yet its not an Athens bug.  I know this is has to do with how image saves live objects and that NB calls are not part of the image hence creating the problem. 
>>> 
>>> 5) Are there ways to avoid the problem ? 
>>> 
>>> 6) Also why there is a Red Box of Doom in the first place ? 
>> 
>>> 
>>> 7) Why the debugger is not triggered as it should be ? 
>> 
>> It is now you should bring the halos and click on debug draw something error
>> 
>>> 
>>> 8) Is that critical a failure of Morphic ? 
>>> 
>>> 9) Why Athens even though is based largely on Cairo , and taking into consideration the intention to extend to other graphical interfaces, not following the Cairo design more closely so we can use the Cairo tutorials ? 
>> 
>> Because Athens is not Cairo. Athens is an API so that we can have multiple graphical back-ends in the future. 
>> 
>> 
>>> 10) Is the Cairo design so prohibiting / limiting for Athens ? Does Cairo do things so differently than other vector based libraries ? 
>> 
>> Cairo does not have an OO design from what I know.
>> 
>> 
>>> 11) How important is Athens to Pharo community , meaning further bug fixes, improvements , tutorials etc ? I hear there is an intention to gradual move Morphic to it. Is this true ? 
>> 
>> Athens is the new canvas and we will rewrite everything to use it. Now Athens will have a default version that is just the default balloon.
>> Now the guy that should have helped us (fernando) left in hurry and we lost the money 62 K Euros of his salary. 
>> Igor has been working more than a year in total on Athens, textEditor and others so we will not give up now. 
>> 
>> 
>>> I really like Athens, I am asking all these questions because I need to make a fast decision whether I will continue to use Pharo or not for my project. Learning OpenGL and using NBOpenGL produced zero results for me.
>> 
>> Did you check Roassal 3d because they forgot to publish the enhancements they did to NBOpenGL
>> 
>>> I was not even able to create a single triangle.
>> 
>> You should look at Roassal 3d because this is working. 
>> 
>>> My gpu driver because of Macos gave me close to zero errors, and Red Box of Doom made it impossible to debug opengl problems. In short close to zero error reporting made it a no go for me. 
>>> 
>>> So I fall back at much simpler solutions because I want to create my own GUI API. I see several solutions for this
>>> 
>>> 1) Pharo Athens
>>> 2) Amber SVG / WebGL based Vector libs like Pixi /  Athens / HTML5 + CSS
>>> 3) Python + PyQT + QT 
>>> 
>>> I rather stay with Pharo. But I already wasted months of doing nothing and going nowhere with NBOpenGL , I am tried of moving in circles.
>> 
>> I'm sure you learned probably a lot.
>> Now for a GUI API may be openGL is not the best to start. What I can tell you is that with Athens we will be able to have the first 
>> mix between 3D and 2D vector graphics.
>> 
>>> I am not frustrated cause I knew when I tried that OpenGL was very hard ( I was warned by several opengl people ) so failure was always an option , but I can no longer justify wasting my time getting nowhere. 
>>> 
>>> I dont need much from a graphic lib all I need is
>>> 
>>> a) Stability . If it crashes regularly its no good
>>> 
>>> b) Speed, if moving graphic elements around slows down (anything above 20%)  dual cores , its no good
>>> 
>>> c) Basic Feature set  like , lines, curves , circles and ellipses , display of raster graphics, simple animations , import export of graphic formats, png , jpg and svg is enough. 
>>> 
>>> Looks like Athens satisfies b and c , I am not so sure about a.
>> 
>> It is stable.
>> 
>>> I am trying to understand Athens code from reading it, once again I am a big failure at understanding code. 
>> 
>> The tutorial is the way to go. Why this is not enough.
>> 
>>> So is there any hope for someone like me , that he is not a very good coder, he is new to Pharo and he has a simple mind to use Athens to make a basic GUI API ?  
>> 
>> Yes just focus on Athens.
>> For example extend the 
>> 
>> 
>> 
>>>> On Thu, Oct 31, 2013 at 6:07 PM, Igor Stasenko <siguctua at gmail.com> wrote:
>>>> 
>>>>> On 31 October 2013 16:40, kilon alios <kilon.alios at gmail.com> wrote:
>>>>> save the image while the morph is displayed, reload the image and in its place there is the big red box with the yellow X , reporting an error with Athens. I have reproduced the error on Windows too with the Athens examples. I assumed my explanation was clear , I hope its clear now. 
>>>> 
>>>> 
>>>> no. not clear. which morph? what class, how you using it etc.
>>>> I have morphs which using Athens for drawing and i can save and load image back and i don't have red squares of death.
>>>>  
>>>>> This means that its impossible to save an image with a morph using Athens displaying and have it reload back when the image is reloaded. 
>>>> The athens-surface, especially cairo surface is valid only within a single session.
>>>> if you boot new image, you must recreate (or stop using) surface you used in previous session.
>>>> Otherwise you will have red box of doom.
>>>> 
>>>> And while i agree that this is pretty major problem (in terms of making your morph to be session-aware
>>>> and in terms of managing external resources) i am far from calling it a bug of Athens of any kind per se.
>>>> 
>>>>  
>>>>>> On Thu, Oct 31, 2013 at 5:05 PM, Stéphane Ducasse <stephane.ducasse at inria.fr> wrote:
>>>>>> 
>>>>>>> On Oct 31, 2013, at 9:55 AM, kilon alios <kilon.alios at gmail.com> wrote:
>>>>>>> 
>>>>>>> yes I am aware of the examples already, I am learning from them. Please note I have found a bug with Athens, which looks to me pretty major. If I save a morph using Athens
>>>>>> 
>>>>>> what do you mean save a morph
>>>>>> 
>>>>>>> and reload the image,
>>>>>> 
>>>>>> what do you mean?
>>>>>> 
>>>>>> 
>>>>>>> I see the red box of doom. For example trying your example from stackoverflow. Are you aware of this bug ?
>>>>>>> 
>>>>>>> 
>>>>>>>> On Thu, Oct 31, 2013 at 2:43 AM, Igor Stasenko <siguctua at gmail.com> wrote:
>>>>>>>> ah, yes , there's also examples in
>>>>>>>> Athens-Examples package.
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On 31 October 2013 01:30, Igor Stasenko <siguctua at gmail.com> wrote:
>>>>>>>>> 
>>>>>>>>>> On 30 October 2013 23:02, kilon alios <kilon.alios at gmail.com> wrote:
>>>>>>>>>> well I just asked if there is any kind of Documentation about Athens . Or should I just read the code and ask questions ? 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> the main source of documentation right now is class comments
>>>>>>>>> and tutorial. 
>>>>>>>>> I've spent quite of a time commenting the central classes of athens,
>>>>>>>>> hope that's helpful.
>>>>>>>>> Of course this does not replacement for a well written docu, and that needs to be done.
>>>>>>>>>  
>>>>>>>>>> 
>>>>>>>>>>> On Wed, Oct 30, 2013 at 11:51 PM, Igor Stasenko <siguctua at gmail.com> wrote:
>>>>>>>>>>> i hope you satisfied with my answer.
>>>>>>>>>>> you welcome to ask more, if you not :)
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> On 30 October 2013 22:32, dimitris chloupis <thekilon at yahoo.co.uk> wrote:
>>>>>>>>>>>> http://stackoverflow.com/questions/19694197/how-to-create-lines-with-athens
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> -- 
>>>>>>>>>>> Best regards,
>>>>>>>>>>> Igor Stasenko.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> -- 
>>>>>>>>> Best regards,
>>>>>>>>> Igor Stasenko.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> -- 
>>>>>>>> Best regards,
>>>>>>>> Igor Stasenko.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> Best regards,
>>>> Igor Stasenko.
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20131031/d765fc08/attachment-0002.html>


More information about the Pharo-dev mailing list