On 26 January 2011 21:58, Eliot Miranda <[email protected]> wrote:
>
>
> On Wed, Jan 26, 2011 at 6:27 AM, Igor Stasenko <[email protected]> wrote:
>>
>> Hello pharoers,
>>
>> the last two days we worked hard with Marcus to incorporate this new
>> stuff into image, and now we're done.
>> All images past #13021 now have non interactive ui manager
>> (NonInteractiveUIManager).
>> We fixed almost all broken tests caused by introducing it (there are
>> only few minor ones left).
>> Probably there could be more infrastructure around that in future
>> (like redirecting Transcript output to some file/stdout while running
>> headless), but first things first.
>>
>
> Is the name right?  I mean, if I connect a listener via stdio support it can
> still be interactive even though there's no head.  Shouldn't it be called
> e.g. HeadlessUIManager or NonGUIManager?

Yeah.. I thought about it.
Well, it is hard to call stdio a UI. Nobody calls basic i/o as UI, and
non-interactive UI is not the same as being able to interact using
basic i/o right?

Maybe HeadlessUIManager is better choice.. if people like it more then
we can rename it..
And how to call ErrorNonInteractive then?
Because actually i named the error first, and then name of UI manager
came from there :)

>>
>> Couple of words, what new stuff gives to you:
>>
>>  - suppose you want to run image headless. Suppose that you probably
>> run an arbirary (or not so) piece of code,
>> which not always clear how well it goes.. and it could lead to
>> unwanted popups, like asking user to confirm something,
>> or even opening a debugger window, actually anything which leads to
>> one unwanted effect: making your image to wait for user's input or
>> other form of intervention,
>> which is completely what you don't wanna see on server image, because
>> it should run fully automated.
>>
>> How it works:
>>
>> UIManager, during image startup, checks if image runs headless, and if
>> so, then it switching to non-interactive mode.
>> The non-interactive mode means that any request to UI manager which
>> normally leads to some user interaction now will trigger an error
>> (ErrorNonInteractive).
>> If you run image headful again, it will switch to usual UI manager
>> back, so don't expect to have this error when running headful image.
>> And be careful when testing/writing your code: image will run using
>> different ui manager depending on startup conditions.
>>
>> (Note: some VMs on some platforms filtering out the VM command line
>> parameters and image can't detect that it runs headless. To prevent
>> that, add extra -headless arg as last one in argument list.
>>
>> For example:
>>
>>   squeak -headless myImage.image myscript.st -headless
>>
>> ).
>>
>> To test if image running headless, a new protocol was introduced:
>>
>> Smalltalk isHeadless
>> and
>> Smallalk isInteractive
>>
>> (which are antonyms).
>>
>>
>> Error handling:
>>
>> In case if there an unhandled error occurs, the default behavior is:
>>  - print stack trace on log
>>  - quit image  ( or save a new version of image and then quit)  - this
>> is controlled by preference, found in 'settings->Headless mode' group.
>>
>> So, sometimes to track the error, you can turn this preference on,
>> then you can open saved instance of image and check with UI & debugger
>> what causing the error.
>> This is what you want to avoid to be default behavior on server,
>> because on server you need 24/7 service available without your
>> intervention :)
>> So, the normal setup for background images now will be to fire a fresh
>> image if current one dies ( and send mail with pharodebug.log contents
>> to root :) )
>>
>> P.S. I hope these changes will make life for setting up headless
>> workflow much easier, because now we can easily track down all issues
>> which you can't see.
>> Because before that by default you having a hanging image, which doing
>> something or not (and you have no idea, because it headless).
>>
>> P.P.S. For squeakers, if you want to harvest the changes, take the
>> changesets from here:
>>
>> http://code.google.com/p/pharo/issues/detail?id=3593
>> http://code.google.com/p/pharo/issues/detail?id=3596
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>
>



-- 
Best regards,
Igor Stasenko AKA sig.

Reply via email to