New XBoard feature: ICS Console

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

Moderators: hgm, Rebel, chrisw

User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: New XBoard feature: ICS Console

Post by hgm »

Let me make sure I understand this:

You are talking about the case where there is no chat opened for the channel, but there is a chat box for a person broadcasting into that channel? You want it to appear also in the ICS console where the rest of those channel messages go? I guess you are right about that.

I already solved the similar problem, which was the reverse: when there was a chat opened for the channel, (or for shouts), a person posting there would appear in the channel, and not in its personal chatbox, if there was one. I like the message to appear in both, as some people answer tells with shouts.

I will work on it. I just pushed a new version that allows you to set the background color of the ICS output pane. (Through the color assignment for normal text in the ICS Options dialog.) It also fixes some of the bugs listed above.
User avatar
mohzus
Posts: 106
Joined: Tue Sep 24, 2013 2:54 am

Re: New XBoard feature: ICS Console

Post by mohzus »

hgm wrote:Let me make sure I understand this:

You are talking about the case where there is no chat opened for the channel, but there is a chat box for a person broadcasting into that channel? You want it to appear also in the ICS console where the rest of those channel messages go? I guess you are right about that.
Here was the situation: I talked to a person in private with the ICS Interaction window.
This person was chatting with me in private and was also chatting in a channel at the same time.
I would receive all his text in the private chat window so that I could not distinguish between what that person was sending to the channel and what he was sending to me.

What I think would be reasonable is the text this person was sending to the channel would appear only in the channel and not as a private tell. A bit less reasonable but still reasonable would be that the text that this person sends in channels would appear both in channels and in private tell.
User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: New XBoard feature: ICS Console

Post by hgm »

Well, I like to have them in the private chat too, because in my experience people often reply in a public channel when I ask them a question with a private tell. I have solved it now in the following way:

If the message comes through a public broadcast by the person for which you have an open chat, it appears in that chat with the prefix "broadcasts: ". And it will be displayed in the ICS output with the normal colorization. If the broadcast channel also had a chatbox opened for it, it will go there in stead of to the ICS output.
User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: New XBoard feature: ICS Console

Post by hgm »

Image

The background color for normal text is now applied also in the unwritten areas of the ICS Console. (Not in chatboxes, though, a they have no colorization.) It can be set interactively through the "Other Text Colors" control in the ICS Options dialog. This still requires a restart, though, before it becomes effective on the entire background.

Image
User avatar
mohzus
Posts: 106
Joined: Tue Sep 24, 2013 2:54 am

Re: New XBoard feature: ICS Console

Post by mohzus »

I'll test your new version. It looks really promising to say the least!
User avatar
mohzus
Posts: 106
Joined: Tue Sep 24, 2013 2:54 am

Re: New XBoard feature: ICS Console

Post by mohzus »

Feedback:
When you type "tell nameofperson blabla", it would be nice if a private chat window would open automatically. Right now it only sends the text I write (and there's no echo so I cannot read what I typed once I sent the text) and I have to manually hit the "New Chat" tab if I want to pursue a discussion with ease.
End of feedback.


A bit unrelated to the title of this thread but relevant nonetheless: it would be nice if the "settings" of the Engine Output would be saved. For example I always want to see Tb Hits and I always have to select it every time I restart xboard. I do not want to see "time" and I have to hide it every time I restart xboard.


Even more unrelated this time: regarding the program "polyglot". With polyglot make-book, I think it would be more appropriate to set the default of -min-game to 1 rather than 3. It took me some time to find the reason why my book had "cut" lines when I thought I had selected full games. I warned a friend who made an opening book using this program and he thanked me a lot, he didn't know either that the default was on 3 and he remade his book.

Thank you H.G.M., your work is very appreciated.
User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: New XBoard feature: ICS Console

Post by hgm »

mohzus wrote:Feedback:
When you type "tell nameofperson blabla", it would be nice if a private chat window would open automatically. Right now it only sends the text I write (and there's no echo so I cannot read what I typed once I sent the text) and I have to manually hit the "New Chat" tab if I want to pursue a discussion with ease.
End of feedback.
But you should never type "tell nameofperson blabla" when you want to open a chatbox for him. You should type

<Ctrl-N> nameofperson <Enter> blabla <Enter>


That is less typing, and would create the chatbox, as well as send the message. If the reason you wanted to send the tell was because you received a tell from that person first, you could even type

<Ctrl-O> blabla <Enter>

which is faster yet. And when you want to initiate the communication from your end, it is still likely to be in response to seeing that person's name in the ICS window somewhere (e.g. in a 'who' command), or you couldn't be sure he is logged on. In that case it is probably still faster to grab the mouse, click his name, click "Open Chat Box" in the context menu (rather than a "New Chat" tab) to open the chatbox, and then type "blabla". (Perhaps unless he has a very short name, and you had your hands already on the keyboard.)

The only reason to type "tell nameofperson blabla" would be for an isolated tell to a person for which you do not want to open a chatbox (e.g. because that would discard a chat you consider still valuable). That would become impossible if typing a tell would automatically open a chatbox. And I'd rather not make that impossible.
A bit unrelated to the title of this thread but relevant nonetheless: it would be nice if the "settings" of the Engine Output would be saved. For example I always want to see Tb Hits and I always have to select it every time I restart xboard. I do not want to see "time" and I have to hide it every time I restart xboard.
Indeed, I imagined something like that would be needed. But it requires a bit of thinking. You might always want to see the same columns, but that doesn't mean that most users want that. It depends on the application. Not all engines produce the same output, and it would obviously be wasteful to show tbhits on an engine that doesn't use EGT. In fact the current design, where both engine panes always show the same, does not seem optimal. It would be better if the panes could be set independently of each other, as you could play one engine that uses EGT, but produces no seldepth against one that does print seldepth but doesn't use EGT. So if we want there to be options to set what should be shown (and saved settings are options), it would be best if there was a -firstColumns and -secondColumns that would allow independent setting of the two engine-output panes. But, like most -first/second options, these really should not be saved in the general settings, but should be associated with specific engines. So that what is shown could be tailored to what the engine produces. Of course there still could be a global default setting for this.

Another issue is the format that should be used to save this settings. Internally XBoard uses a bitmap, each bit associated with a column. This could be saved as a decimal number, but that would make it so cryptic that users would not be able to figure out what to write in the option to achieve a certain effect. An alternative would be to save it as a character string, where each letter stands for a column that should be shown (like t=time, n=nodes, h=tbhits, s=seldepth, e=score, k=knps). Not sure if that is much better, though.
Even more unrelated this time: regarding the program "polyglot". With polyglot make-book, I think it would be more appropriate to set the default of -min-game to 1 rather than 3. It took me some time to find the reason why my book had "cut" lines when I thought I had selected full games. I warned a friend who made an opening book using this program and he thanked me a lot, he didn't know either that the default was on 3 and he remade his book.
Well, Polyglot is only of interest to me as a protocol adapter, and even then I am not sure that in the future I won't replace it by more general UCI2WB as primary UCI adapter. I never considered myself a Polyglot developer, and I only alter it when it is absolutely necessary to make new XBoard features work for UCI engines. The book-building functions are of no interest to me at all, and I am more likely to delete them completely from the version of Polyglot I bundle with WinBoard. (But even for that I am probably too lazy.)
User avatar
mohzus
Posts: 106
Joined: Tue Sep 24, 2013 2:54 am

Re: New XBoard feature: ICS Console

Post by mohzus »

hgm wrote: But you should never type "tell nameofperson blabla" when you want to open a chatbox for him. You should type
You're right. I was too accustomed with xboard without the ICS Interaction window, I guess I need some time to use it properly.
hgm wrote: Indeed, I imagined something like that would be needed. But it requires a bit of thinking. You might always want to see the same columns, but that doesn't mean that most users want that. It depends on the application. Not all engines produce the same output, and it would obviously be wasteful to show tbhits on an engine that doesn't use EGT. In fact the current design, where both engine panes always show the same, does not seem optimal. It would be better if the panes could be set independently of each other, as you could play one engine that uses EGT, but produces no seldepth against one that does print seldepth but doesn't use EGT. So if we want there to be options to set what should be shown (and saved settings are options), it would be best if there was a -firstColumns and -secondColumns that would allow independent setting of the two engine-output panes. But, like most -first/second options, these really should not be saved in the general settings, but should be associated with specific engines. So that what is shown could be tailored to what the engine produces. Of course there still could be a global default setting for this.

Another issue is the format that should be used to save this settings. Internally XBoard uses a bitmap, each bit associated with a column. This could be saved as a decimal number, but that would make it so cryptic that users would not be able to figure out what to write in the option to achieve a certain effect. An alternative would be to save it as a character string, where each letter stands for a column that should be shown (like t=time, n=nodes, h=tbhits, s=seldepth, e=score, k=knps). Not sure if that is much better, though.
I see.
I think I could modify some file and recompile xboard in a way that tb hits would be displayed by default. If you have any pointer, I'm all ears (I'm not a programmer).

And ok for the polyglot reply.
I've heard that xboard (or winboard) is really efficient when it comes to creating opening books, I'll investigate.


EDIT: Whoops I forgot to mention another feedback: It would be nice if we could resize the private chat sector with respect to the ICS background. As of now it seems that the only way to enlarge, say the ICS background, is to enlarge/resize the ICS Interaction window altogether. So right now the proportion private chat/ics background is roughly 50-50 and there's no way to change it; unless of course if I'm missing something.
User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: New XBoard feature: ICS Console

Post by hgm »

You can change line 95 of engineoutput.c to

Code: Select all

static int  columnMask = 0xE0;
to show tbhits by default.

The 50-50 division seems to be a limitation of the GTK widget set. You can only indicate whether a certain window element should absorb space when the window is resized. Not how much of the space. All elements that can expand will always expand by the same amount.

Perhaps this is just my inexperience with GTK; I really know very little about it, and am already happy that I could fix the problem that the input field would also absorb 33% of the size increase (leading to a large grey unused area below it).
User avatar
mohzus
Posts: 106
Joined: Tue Sep 24, 2013 2:54 am

Re: New XBoard feature: ICS Console

Post by mohzus »

hgm wrote:You can change line 95 of engineoutput.c to

Code: Select all

static int  columnMask = 0xE0;
to show tbhits by default.
I've tried this but I notice no difference at all, tbhits is still disabled by default.
I would like also to disable the display of "time" by default, I have taken a look at the engineoutput.c but for a non programmer like me, the changes required are not trivial.
hgm wrote:The 50-50 division seems to be a limitation of the GTK widget set. You can only indicate whether a certain window element should absorb space when the window is resized. Not how much of the space. All elements that can expand will always expand by the same amount.

Perhaps this is just my inexperience with GTK; I really know very little about it, and am already happy that I could fix the problem that the input field would also absorb 33% of the size increase (leading to a large grey unused area below it).
I see, ok, no big deal. :)