ICS seek list window request

Discussions about the WinBoard protocol. Here you can also report bugs and request new features.

Moderators: hgm, Andres Valverde

Re: ICS seek list window request

Postby H.G.Muller » 01 Feb 2010, 11:02

Ah, thanks. That "iset seekremove 1" on FICS is really useful, and will alow WinBoard to keep the list up-to-date. I asked around on ICC, and it turns out you can do this through datagrams, there. After using "set-2 51 1" ICC will send you a datagram for each removed seek ad.

Too bad FICS and ICC do this in a different way. And on other ICS (like the open-source version) it might not be possible at all. Fortunately the datagrams are trivial to parse: "^Y(51 ad_nr reason_code^Y)" (where ^Y stands for Ctrl-Y), and not likely to be sent by an ICS other than ICC, so I can just have WinBoard react to such message always.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby H.G.Muller » 01 Feb 2010, 16:03

I have uploaded a slightly improved version now, to the same link. This should make cycling through coinciding dots possible, (as long as not more than 5 coincide). I do this by suppressing clicked-but-rejected ads, by lifting them 'out of the plane', as it were. (Which makes their apparent distance to any click larger.) Each click on another ad makes them 'fall back' towards the plane, so that the most-recently viewed ad is always most distant, and never clicked or clicked longest ago are closest (and thus selected). This mechanism should also be helpful for dots that do not exactly coincide, biasing the choice towards those not recently clicked.

This version also offsets dots horizontally a little, dependant on their color, so that unequal colors never will completely cover each other, and will remain visible.

I notced that Dasher uses shape to distiguish computer / human (square / cdot), color to indicate the variant (green = normal, magenta = crazyhouse, orange = losers, red = loadable), while open / closed symbols are used to indicate unrated / rated. Parhaps I should copy this in a future version.

[edit] I now uploaded a WinBoard version that spontaneously shows the seek-ad text when you hover the mouse pointer over it. 8-)
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby Josh Pettus » 01 Feb 2010, 20:29

Most Excellent! Works like a charm! :D
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 01 Feb 2010, 20:57

I fixed a bug, which was partly responsible for the gap between 1 and 3 min: altough I tabulated the etime of each ad as a float, it went through an int temporary variable, clipping off the fraction. So 1+1 showed up at the same x-coordinte as 1+0, etc.

The version now on my website fixes that. This mkes a lot more points show up in the gap, at ICC. Also made off-scale dots appear on the edge of the graph; you can look what exactly they are before clicking them anyway! :D
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby H.G.Muller » 02 Feb 2010, 00:11

The Seek Graph is fully dynamic now! When you have set your 'seek' variable on the ICS to 1, all new seeks reported by the ICS are added in the graph (and not shown in the ICS window). WinBoard instructs FICS or ICC to also report when ads disappear, and erases the corresponding dot in that case.

To switch this on, you need to use the (persistent) option -autoRefresh true next to -seekGraph true.

This version (4.20100202) can be downloaded from the same place. As far as I am concerned, this will be the last Seek-Graph patch for some time to come.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby Josh Pettus » 02 Feb 2010, 00:45

Amazing work HGM! It all works beautifully! :D

Just so you know, there is a minor cosmetic bug but nothing big. At least in FICS, when the dots autoRefresh and disappear on the board, even though the graph isn't up, and leaves behind a blank square of the color of the graph. It does happen in game sometimes if you are not clicking on the board refreshing it. I don't have a registered ICC account so I can't check there.
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 02 Feb 2010, 10:29

OK, thanks for the feedback! Indeed, I had forgotten to check if the Seek Graph was up, before erasing a dot. I was relying on the ICS not to sent you that stuff while playing / observing. (But of course you could also pop the graph down while idle, so that was a bad idea...) I fixed that now.

I also fixed the minor cosmetic bug that the highest dots were plotted just one pixel too high, so that the would overflow the WinBoard board area, and as a result leave some debris on the upper edge when you switched back to the board. Still left is the cosmetic bug that damage to axis ticks or labels from erasing dots is not repaired.

Of course there still could be much improved. The scales could be made customizable, more colors and shapes are needed to distinguish the dots, the mouse wheel could be used to scroll through coinciding ads while hovering over them, the variant name should be translated where possible. (E.g. wild/23 should be displayed as 'crazyhouse'). Perhaps I should include in the ad text if the ad is for black or white. Another good addition would be to make 'sought' commands typed by the user also pop up as a graph, rather than ony those fetched silently by WinBoard. (So the user could type 'sought all' on FICS, and also see ads that do not fit his formula.) But for now I will leave all that, and just have this version out for subjecting the basic functionality to thorough testing.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby Josh Pettus » 02 Feb 2010, 14:58

And we shall test the heck out of it! :)
Thanks a lot HGM!
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 02 Feb 2010, 23:34

OK, one more seek-graph version (4.20100203): apart from fixing the compiler problem with node count that all versions made by me shared, I also discovered that I did not properly jump back to the beginning of the pattern-matching loop after recognizing a seek-ad message. Occasionally this led to a message relevant for plotting or removing a dot not being recognized (so that it was printed in the ICS window, in stead of acted upon), when two of them came in the same TCP/IP packet. The version I posted now has this fixed by adding the proper 'continue' statements. Now I can run for a ful our on ICC with the eval-graph up without this ever happening. :)

I also use the proper names for the various wilds now. (This is mainly for the benefit of ICC, where everything that is not blitz, lightning or standard is called wild(N); FICS already uses the 'poetic names' in the seek ads by itself.)
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby Philippe Etard » 03 Feb 2010, 20:43

I tried your latest build from February 03 2010 at FICS where I am a registered user. I can now see the various seeks when I left click on the chessboard.
Thank you H.G. Muller, good work
Philippe Etard
 
Posts: 27
Joined: 14 Feb 2006, 20:21
Location: France

Re: ICS seek list window request

Postby H.G.Muller » 04 Feb 2010, 19:07

OK, one more bugfix (4.20100204):

For one, I added the right mouse button into the mix. The left button still behaves exactly as it did, but clicking on a dot with the right mouse pointer will push the ad that is displayed to the back, so that it shows a new one in the case of (nearly) coinciding dots. The same could already be done by left-press on the dot followed by left-release off dots to prevent issuing the challenge, but with the right button you will never challenge, and this might be easier. Right-clicking in an empty region of the graph will refresh it by fetching a new sought list from the ICS, without the need to pop down the graph first.

I have now also made it such that when the mouse pointer is within range of more than a single ad, an exclamation point is displayed in front of the ad text, so you know there is something behind it, which you could get at by rightclicking.

This led me to discover that many ads were there in duplicat. Now it turns out some people genuinely place the same seek ad twice. But in most cases it turned out to be due to a bug, that re-parsed the first part of the sought list that was received in parts (as long sought lists usually are). I fixed that bug now.

I also have computer ads displayed as squares now; human ads are still dots. This version seems to be fully operational, the right-clicking to get at ads 'in the background' seems to work quite well.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby rigao » 05 Feb 2010, 21:53

Those are great news for the FICS users. I would be glad to test it even if it is not in the ubuntu repositories (generally I would rather wait, but this change is SOOOOO important) but I'm afraid I'm kind of lost here. Is there a binary or .deb anywhere? I found the windows executable, but couldn't find anything for xboard. Must i compile it from source? If so, I could provide a binary for the amd64 architecture (I won't do anything marvelous, just compile it in the most simple way (or as some1 suggest me), but then everybody can have it w/o trouble).
rigao
 
Posts: 63
Joined: 14 Dec 2008, 17:33

Re: ICS seek list window request

Postby rigao » 05 Feb 2010, 21:59

Sorry, my fault, I already found it at

http://hgm.nubati.net/

which is a 32bits deb of what I suppose will be the last alpha.

My offer of making a 64 bits binary is still up. People using Rybka would be grateful. I guess the sources are in

http://hgm.nubati.net/cgi-bin/gitweb.cg ... ;a=summary

but there is a lot of information for me atm :(
rigao
 
Posts: 63
Joined: 14 Dec 2008, 17:33

Some thoughts

Postby rigao » 05 Feb 2010, 23:16

I've played 3 or 4 games just for testing purpose. In the first game something strange happened, I tried to select a game, but I guess the seek was already gone, so it happened something funny and while i was trying to move in what i thought it was a game, it changed another time to the seek graph and accepted another seek (which I aborted).... anyway, it happened just that time and couldn't reproduce it, so nothing too bad.

In a cosmetic note, I could understand that the seek graph won't appear immediately in the board once the game is finished. Some times you want to reproduce the game to see it with calm (I myself use it seldom, but I've used it already). But, if I've entered in FICS with the appropriate options to have the seekgraph, why it does not start automatically at the beginning? It is kind of annoying to click on the board just to see it. To have it at the start too is too much for my taste. In a better world it would have its own window (maybe it could use the engine window, as probably you won't be using it while playing), but I guess it would be much more difficult to implement it.

Anyways, it has been a great work. Very much appreciated.
rigao
 
Posts: 63
Joined: 14 Dec 2008, 17:33

Re: ICS seek list window request

Postby Josh Pettus » 06 Feb 2010, 01:13

I must disagree, too many windows simply adds clutter when I would rather reserve that space for other windows or a larger board. To have it in the main window saves space especially for something that is only used when you aren't playing a game. Also it is nice to have a large graph when you are actually looking for a game. It is hard to have a large graph and a large board in a single click in another way. It really is a lot more convenient to simply click on the board as oppose to having to go trough the menu to open up a window. Besides, at what point is a single mouse click annoying? :?
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby rigao » 06 Feb 2010, 10:01

You have a good point there. It is true that there is already enough windows and it is difficult to have them all visible (specially since xboard does not remember the position of the windows from the last time you opened it), so creating a new one would be a bad idea. Anyway, the first click on the board is superfluous. If you have entered FICS, why don't you want to see the seek graph at the beginning? I can't think for a reason, even a bad one.

On another note, I already know what happened me in the first game I tried to play. It seems that when you left click anywhere in the seek graph except for the dots, it directs you another time to the board. So when you first open FICS, if you try to play a game but it is already gone, you will go to an initial board, so you will think you are playing. As white usually sits on the bottom of the board, you will think you have white and will try to move. Then of course, when you click another time on the empty board, it will redirect you another time to the seek graph, creating tons of confusion. Note that it will only happen in the first game, because after that, it will redirect you to the last position of your last game, so you cannot think it is a new game.

I guess it will be a seldom situation, but it happened me the first time I tried it .... so maybe there is something that could be made to avoid it, but nothing come to my mind.
rigao
 
Posts: 63
Joined: 14 Dec 2008, 17:33

Re: ICS seek list window request

Postby Josh Pettus » 06 Feb 2010, 17:13

I can, it's a good thing that the graph doesn't come up automatically. Sometimes you want to review and save the last game. I generally want to. It's good to have control of when you want things to happen and not have things pop up when you don't want them. As soon as that happens, you start annoying a lot of people. Besides its just one simple, instantaneous, click of the mouse. On the other hand, I can see someone enabling the feature and not knowing where to find the graph in the menu option but then one should read the documentation or, in this case of an experimental feature, the thread or HGM's website.

Yes left clicking away from a dot closes the board, right refreshes (good for servers other than ICC and FICS). This is a good thing; again, it's about having control.

There are cues in winboard that a game has started. The main thing is that it shows your name vs. your opponent on the main window label and down in the task bar. Second I have the move sound set to the move noise which will play when a game has started and the board is set. And third, I have logo's enabled, after creating a logo for myself of 100x50 pixels, it will automatically show a picture of me vs. the ICS. (That really was a nice feature for aesthetics, props to HGM) Try playing with those. It's like a little fireworks show when a game starts and you wont be confused again. :)
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 08 Feb 2010, 09:57

This discussion is a very nice exampe of how tatses differ, which makes it impossible to optimally please everyone. One guide-line I typically use to choose between alteratives is conservatism: I do not pop up a seek graph automatically, because it did not use to pop up automatically. By following old behavior as closely as possible, there is less chance to alienate existing users, while doing things in a radically different way is not sure at al to attract new users. People that consider it essential to have a seek graph up all the time have switched to using BabasChess long ago, and are not even interested to even know what new features WinBoard has.

One important thing came up, though: the clicking of an ad that has already disappeared. With -autoRefresh there is only a very small chance of this happening, but it can happen (e.g. when the ICS is a bit tardy).

Currently clicking of any dot automatcally pops down the graph and sends the "play" command. In fact this led to masking a bug, where receiving the board of a game that you initiated (playing or observing) through typing a command while the seek graph was up to be drawn move by move over the seek graph. I corrected that some time ago, and receiving a board while the seek graph is up now leads to automatic pop-down of the graph, and drawing of the board.

But that means that popping down the graph on an on-dot click now has become superfluous. I might as well keep the graph up, just send the "play command". It will either be accepted and start a game, in which case the ICS will send you a board which will then pop down the graph. Or it will be refused (which can always happen: you might not fit the guy's formula, or he can manually rejec your challenge), in which case the graph would stay up (and the dot might disappear in the next second when the tardy ICS catches up with the autoRefresh).

I guess that would remove the confusion reported by Rigao. You might get the problem in stead that the graph does not seem to react to your on-dot clicks, and in any case will not do it immediately, but with a second or so delay (and much longer if the ad required manual approval), but you can look in the ICS window to see if there was any error message, or if the challenge is stil pending. But you wod not have an indistiguishable reaction for two totally different cases (rejection of the "play" command, or starting of a new game, which would both show you a board of the initial position with non-running clocks).

So all in all, this seems a better way to do it, and I will change the patch accordingly.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby Michel » 08 Feb 2010, 10:57

If you have entered FICS, why don't you want to see the seek graph at the beginning? I can't think for a reason, even a bad one.


I usually log in at FICS to observe my engines playing, or to send them commands. So I would not need the seek graph for example. I am not saying this is a bad feature. I am just saying that some people use FICS in another way than you.
Michel
 
Posts: 513
Joined: 01 Oct 2008, 12:15

Previous

Return to WinBoard development and bugfixing

Who is online

Users browsing this forum: No registered users and 8 guests