That's part of the mess and why the CECP ecosystem just sucks.
Banksia GUI released
Moderator: Ras
-
Ras
- Posts: 2782
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: Banksia GUI released
Rasmus Althoff
https://www.ct800.net
https://www.ct800.net
-
phhnguyen
- Posts: 1543
- Joined: Wed Apr 21, 2010 4:58 am
- Location: Australia
- Full name: Nguyen Hong Pham
Re: Banksia GUI released
Dear HGM and Ras,
Please please no a new holy war CECP vs UCI here. This topic should be about/supporting BanksiaGUI only. BSG has supported them both anyway!
Thank all a lot
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
The most features chess GUI, based on opensource Banksia - the chess tournament manager
-
Ras
- Posts: 2782
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: Banksia GUI released
The question is whether Banksia should go for a good user experience and encapsulate the CECP oddities, or let them spill out to the user. HGM favours shifting over everything to the user which I consider bad UI design while I think the GUI should deal with it as well as possible.
What's your take?
Rasmus Althoff
https://www.ct800.net
https://www.ct800.net
-
phhnguyen
- Posts: 1543
- Joined: Wed Apr 21, 2010 4:58 am
- Location: Australia
- Full name: Nguyen Hong Pham
Re: Banksia GUI released
Sorry, it is hard to answer clearly. Frankly speaking, I didn't think much and I didn't support fully CECP - only version 2 and just (hopefully) enough for running. It is somewhat as your words "just about damage control" but to fix what I have: whenever there are requests or bug reports I will work on them to support/fix.Ras wrote: ↑Wed May 27, 2020 7:27 amThe question is whether Banksia should go for a good user experience and encapsulate the CECP oddities, or let them spill out to the user. HGM favours shifting over everything to the user which I consider bad UI design while I think the GUI should deal with it as well as possible.
What's your take?
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
The most features chess GUI, based on opensource Banksia - the chess tournament manager
-
swissman
- Posts: 30
- Joined: Thu Mar 12, 2020 2:06 pm
- Full name: Kurt Utzinger
Re: Banksia GUI released
Thank you very much. The GUI works fine. One only question: Is there no mode where the chess program analyses the current board position without making a move. This option is the one I use most of the time when using a chess GUI and studying games.
-
phhnguyen
- Posts: 1543
- Joined: Wed Apr 21, 2010 4:58 am
- Location: Australia
- Full name: Nguyen Hong Pham
Re: Banksia GUI released
- Let engine play for one side (menu -> File -> Game setup) and then set time control to Infinite
- Click on button Play (on the control toolbar) to un-pause
The selected engine will start computing but won't make any move.
The limit is that it computes for the last position only but it can update to the new position when users play move (manually).
I will add later a new feature for analyzing any position.
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
The most features chess GUI, based on opensource Banksia - the chess tournament manager
-
hgm
- Posts: 28530
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Banksia GUI released
This is not intended to be a CECP vs UCI war, but a discussion of whether Banksia, supporting both, should implement extensive work-arounds to hide engine defects. And it is not my fault that the alleged need for this is argued more on prejudice then on fact.
It is of course your decision to make, but I would consider it sad if you were convinced by false arguments to implement a 'solution' to a non-existing problem, which would then help causing that very problem in future engines, by masking the fault that would cause it for engine developers. And I don't think it is the GUI's task to test an engine for every conceivable defect. If you change the hash setting, does it really change the size of its memory use? Does it not use more threads than you specified in the Threads option? Would it react to 'stop' while thinking? Or to 'isready'? Does it support 'searchmoves'? Doesn't it spontaneously terminate a ponder search when it sees a mate? Does it really report the score in centi-Pawn, and is the sign correct? Aren't the mating distances off?
All that could be tested in advance, and for many problems work-arounds could be devised. Don't do it!
If you really want to have set of engines that make a mess of their protocol, try the UCCI engines.
It is of course your decision to make, but I would consider it sad if you were convinced by false arguments to implement a 'solution' to a non-existing problem, which would then help causing that very problem in future engines, by masking the fault that would cause it for engine developers. And I don't think it is the GUI's task to test an engine for every conceivable defect. If you change the hash setting, does it really change the size of its memory use? Does it not use more threads than you specified in the Threads option? Would it react to 'stop' while thinking? Or to 'isready'? Does it support 'searchmoves'? Doesn't it spontaneously terminate a ponder search when it sees a mate? Does it really report the score in centi-Pawn, and is the sign correct? Aren't the mating distances off?
All that could be tested in advance, and for many problems work-arounds could be devised. Don't do it!
If you really want to have set of engines that make a mess of their protocol, try the UCCI engines.
-
Ras
- Posts: 2782
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: Banksia GUI released
The problem is that "?" and analysis support is optional with CECP. The result is that each engine behaves differently and is allowed to do so. This violates a basic UI design principle - consistency. I suggest you'd read up on UI design e.g. at the Nielsen Norman Group with regard to fundamental concepts like consistency, discoverability and affordability.
In UCI, the support for "stop" is about 100%. What is messy in practice is the lack of "searchmoves" support although that's mandatory. That's actual engine defects and should be fixed. Although a feature test would also be a good idea in practice, like my test positions and only including moves that don't lead to the mate in 2.
Rasmus Althoff
https://www.ct800.net
https://www.ct800.net
-
hgm
- Posts: 28530
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Banksia GUI released
Well, I also would not recommend a GUI to try to find out in advance whether searchmoves works in UCI engines. And certainly not to implement an automatic work-around if it doesn't. If the user excludes a move, and it turns out the engine searches it any way (which is very easy to see from the "info move" commands UCI engines like to bombard the GUI with), you can just show the a message: "move exclusion seems to be defective in this engine".
Like with the CECP "?" command you can just display the message "this engine refuses to be hurried" in response to the user operating "move now", when there is no response within, say, 100msec. In any case, leave no misunderstanding that it is a problem of the engine.
That is not any less 'consistent' than sometimes greying out a menu item, and sometimes not. (And what would you do for consistency if the user used the acceleratior key for the command? How would you make that 'consistent'?) You will never be able to hide the fact that some engines can do things others cannot, unless you are prepared to make it impossible for any engine to do the thing.
Like with the CECP "?" command you can just display the message "this engine refuses to be hurried" in response to the user operating "move now", when there is no response within, say, 100msec. In any case, leave no misunderstanding that it is a problem of the engine.
That is not any less 'consistent' than sometimes greying out a menu item, and sometimes not. (And what would you do for consistency if the user used the acceleratior key for the command? How would you make that 'consistent'?) You will never be able to hide the fact that some engines can do things others cannot, unless you are prepared to make it impossible for any engine to do the thing.
-
swissman
- Posts: 30
- Joined: Thu Mar 12, 2020 2:06 pm
- Full name: Kurt Utzinger
Re: Banksia GUI released
Many thanks for these explanations. In this way it works perfectly.phhnguyen wrote: ↑Wed May 27, 2020 12:03 pm- Let engine play for one side (menu -> File -> Game setup) and then set time control to Infinite
- Click on button Play (on the control toolbar) to un-pause
The selected engine will start computing but won't make any move.
The limit is that it computes for the last position only but it can update to the new position when users play move (manually).
I will add later a new feature for analyzing any position.
Kind regards
swissman