Banksia GUI released

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
Ras
Posts: 2782
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Banksia GUI released

Post by Ras »

hgm wrote: Thu May 21, 2020 3:36 pmAnd that most engines do not implement Move Now should just be common knowledge; the CECP specs define it as an optional command.
That's part of the mess and why the CECP ecosystem just sucks.
Rasmus Althoff
https://www.ct800.net
User avatar
phhnguyen
Posts: 1543
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Banksia GUI released

Post by phhnguyen »

Ras wrote: Tue May 26, 2020 11:49 pm
hgm wrote: Thu May 21, 2020 3:36 pmAnd that most engines do not implement Move Now should just be common knowledge; the CECP specs define it as an optional command.
That's part of the mess and why the CECP ecosystem just sucks.
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 :D
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
User avatar
Ras
Posts: 2782
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Banksia GUI released

Post by Ras »

phhnguyen wrote: Wed May 27, 2020 12:45 amPlease please no a new holy war CECP vs UCI here.
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
User avatar
phhnguyen
Posts: 1543
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Banksia GUI released

Post by phhnguyen »

Ras wrote: Wed May 27, 2020 7:27 am
phhnguyen wrote: Wed May 27, 2020 12:45 amPlease please no a new holy war CECP vs UCI here.
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?
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.
https://banksiagui.com
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

Post by swissman »

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.
User avatar
phhnguyen
Posts: 1543
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Banksia GUI released

Post by phhnguyen »

swissman wrote: Wed May 27, 2020 11:47 am 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.
- 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
User avatar
hgm
Posts: 28530
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Banksia GUI released

Post by hgm »

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.
User avatar
Ras
Posts: 2782
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Banksia GUI released

Post by Ras »

hgm wrote: Wed May 27, 2020 1:45 pma 'solution' to a non-existing problem
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
User avatar
hgm
Posts: 28530
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Banksia GUI released

Post by hgm »

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.
swissman
Posts: 30
Joined: Thu Mar 12, 2020 2:06 pm
Full name: Kurt Utzinger

Re: Banksia GUI released

Post by swissman »

phhnguyen wrote: Wed May 27, 2020 12:03 pm
swissman wrote: Wed May 27, 2020 11:47 am 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.
- 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.
Many thanks for these explanations. In this way it works perfectly.
Kind regards
swissman