On Tue, Dec 3, 2013 at 3:46 PM, kilon alios <[email protected]> wrote:

> You are correct but so is Igor. Managing external resources has to do with
> VM and Nativeboost itself and not with Athens. This could happen with any
> other library.
>
> Session aware code is actually very easy to do and its explained
> Athens-Tutorial package in AthensViewMorph>>checkSession . Its just 2 lines
> of code.
>
> In step2 method there is a relevant comment
>
> "IMPORTANT NOTE:
> the surface which we will create at this step will be used in later steps.
>  This means that if you resize the window (changing the view size), you
> may need to recreate surface.
> Also, since surface uses external resources, quitting an image and
> restarting it, will also require to
>  create a new surface, because the one from previous session will be no
> longer accessible.
> "
>

Ok. Tx. That's very useful info. I'll have a look.


>
> but there is no mention to check the checkSession method for an example
> how sessions can be handled. I think this deserves a separate step by
> itself with a nice example. Igor you want me to give me commit rights to
> Athens repo to add that myself ?
>

And if you add the example to Athens, please let me know.


>
>
> On Tue, Dec 3, 2013 at 4:21 PM, Usman Bhatti <[email protected]>wrote:
>
>>
>> On Tue, Dec 3, 2013 at 2:29 PM, Igor Stasenko <[email protected]> wrote:
>>
>>>
>>>
>>>
>>> On 3 December 2013 14:18, Usman Bhatti <[email protected]> wrote:
>>>
>>>> Igor,
>>>>
>>>> I had a look at Athens demo to understand how to manage sessions and
>>>> surfaces because Roassal uses AthensSurface and there is a defensive
>>>> mechanism in place in Roassal to initialize the surface in case it is not
>>>> done. In the meantime, I have discovered that the red rectangle bug is
>>>> present in Athens demos as well.
>>>>
>>>> So, to reproduce.
>>>> AthensFlakeDemo new openInWorld
>>>> save image
>>>> open image
>>>>
>>>
>>>> I tested in Moose 5.0.
>>>>
>>>> 1. Should I open a bug entry in Pharo?
>>>>
>>>> only if you intend to fix it. because this demo was not intended to be
>>> 'fully featured, end-user compatible
>>> and fool-proof demo'. it just a demo to show animation and discard it,
>>> but if you insist this is a bug,
>>> feel free to fix it.
>>>
>>
>> Unfortunately, I wont have time for this. For me it would have been good,
>> had Athens provided an example of session management as a good client so
>> that example-oriented people like me could understand easily. Because,
>> otherwise, I'll have to look at the code of NativeBoost and that adds to
>> the level of complexity because I would do things with trial and error.
>>
>>
>>>
>>>
>>>> 2. With my superficial knowledge of Athens, my guess is that the
>>>> session management can be done in Athens so that Roassal (and other tools
>>>> built on top of Athens) do not need to do it. May be it is the case already
>>>> but the demos are not using it then.
>>>>
>>>> I disagree.
>>>
>> Because then, files can also open/close and delete themselves
>>> automatically, so you will be left only to do reading and writing...
>>> Resource management is an application-level responsibility, not
>>> framework level.
>>> I cannot predict in Athens, how often one wants to create/destroy or
>>> (re)use surfaces, and therefore i cannot
>>> create and dispose them when i see fit within framework.
>>> Correct me if i wrong.
>>>
>>
>> I think this doesn't compare to file handling because there are many
>> types of operations possible on files and that are application-specific.
>> Here resource management is actually exception-handling: I should not give
>> to my client a surface that does not exist any more. Now, of course, if
>> there is some application-level intelligence is involved, we cannot put
>> that in the framework.
>>
>> But I would understand the absence of such a mechanism in the framework
>> but then a tutorial should explain to novices/first-timers how to do it.
>>
>> Usman
>>
>>
>>
>>
>>>
>>>
>>>> Usman
>>>>
>>>>
>>>>
>>>> On Mon, Dec 2, 2013 at 5:14 PM, Usman Bhatti <[email protected]>wrote:
>>>>
>>>>> Hello Igor,
>>>>>
>>>>> Moose 5.0 is using Athens as default canvas for Roassal and we have
>>>>> bug with Roassal that seems to be related to Athens.
>>>>> http://code.google.com/p/moose-technology/issues/detail?id=1019
>>>>>
>>>>> I think it is related to the fact that we create a surface in the OS
>>>>> with Athens and once we quit the image, the surface is destroyed as well.
>>>>> So, when image is restarted with the visualization trying to use the
>>>>> surface, we get the error.
>>>>>
>>>>> Could you point to what possibly can be done to avoid this error?
>>>>> Merely checking the existence of an appropriate drawing surface in Athens
>>>>> every time visualization is drawn, would it suffice?
>>>>>
>>>>> regards,
>>>>>
>>>>> Usman
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko.
>>>
>>
>>
>

Reply via email to