ICS seek list window request

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

Moderators: hgm, Andres Valverde

ICS seek list window request

Postby Josh Pettus » 30 Jan 2010, 17:14

I realize you are on a feature freeze for 4.4.3, but perhaps for a future version. It would be nice if winboard/xboard could have a seek list window for playing on ICSs. The current way works but is a tad annoying having 15 or so seeks fly by you on the ICS window and trying to pick just one, especially if they fill up before you can complete the command. It can even be a tad annoying just seeing games seek by on the ICS window when your not even looking for a game anymore. I know freechess.org considers the lack of a seek list to be a disadvantage that winboard/xboard has as opposed to other ICS clients. So perhaps we could have a separate window with a basic list of games that updates and removes them as they fill.
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 30 Jan 2010, 17:34

I have been thinking about that, but one problem is that I am not really experienced in ICS use, so I have little understanding of how exactly this should work. Wehen I log in to FICS, I am indeed bombarded with seek adds. Is the idea that WinBoard would capture them all, suppress them from appearing in the ICS window, and compile a list of them? How should it know when the seek adds are no longer valid? Is it informed of that?

I thought of displaying the graph in the main window; you would only need it when you are not playing, after all. Would this just be a matter of putting dots in an rating vs TC coordinate system? What should happen when you click a dot? get info on who it is, or immediately match? What if some dots coincide?
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 » 30 Jan 2010, 19:04

Your first option was what I had in mind but a graph would be good too. Babas Chess has both and somehow it is able to remove the games once they fill up, (it will change display <removed> for 2 seconds before removing from the list) there must be a command the ICS sends somewhere. I guess for a graph system like the one in Babas Chess or Jin if you drag your pointer over the dot it would display the game info in a little box next the pointer and you join by clicking it. I don't know what they do should one overlap. perhaps just have the two dots right next to each other. And again in those programs, the dot disappears once the game fills up. I'm guessing magic.


Maybe it keeps repeatedly asking for the seek list, and when one game doesn't display, it removes it from the list.
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 30 Jan 2010, 19:25

I guess I could have WinBoard emit a 'sought' or 'sought all' command every 10 sec or so when you are not playing or observing, and have it parse the list to update the graph. Most versatile would be to do 'sought all', and then have WinBoard filter the list according to some parameters you can set. That would include min and max effective TC, and min and max rating, which also determine the scale of the display, but also allow a selection of variants (which could be indicated by the color of the dot if multiple variants are enabled).

Not sure if I could do the popup thing on hovering the mouse buttons. There are no examples of this in WinBoard that I could clone. I could have the seek info appear in the message field, though, I know how to do that.
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 » 30 Jan 2010, 19:44

That sounds great! Also if you cant figure out how to put two statistically identical games right next to each other on the graph. I guess it really doesn't matter which one you choose so just put the older one on top.
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby Josh Pettus » 30 Jan 2010, 22:04

I just realized you might also want to make a way to turn this auto sought every 10 seconds off via some command like '/autoSought 0'. Because in the case of matematiko's YaY script, which is an intermediary between Winboard and Yahoo Chess online, it can not emulate like a normal ICS by gathering games through commands like, seek, sought or match, because the way Yahoo Chess is. Instead they have rooms which players 'create' or find in the 'games' list to observe or 'sit' as white or black. So as a result the ICS returning 'sought: command not found' every 10 seconds would not be very beneficial. It might also be a bit of a monkey wrench in his Pogo script project as well. So it would be good to shut it off in the ICS launch command line. Thank you so much HGM!
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 31 Jan 2010, 18:43

OK, I hacked something into XBoard for starters. I have second thoughts about the periodic polling: this would consume a lot of bandwidth for the server, if the list is long. So perhaps it would be better to only refresh on demand, when the user clicks on the graph. For instance, a right-click on an empty part of the graph could refresh it. I did not know how to let XBoard react on the mouse pointer just hovering over something. But an alternative design would be to use right-clicking on a dot to only see the info on it displayed (in the Message Field). For coinciding dots, repeated clicking could then cycle through all the ads there. A left-click on a dot could then issue the challenge, a left-click in an empty region would 'pop down' the seek graph (i.e. show the board).

Image

Rated ads are red dots (premoveHighlightColor), unrated ads green, while all wilds (rated or unrated) are yellow (highlightMoveColor). Of course this could be elaborated on, but these were colors that were already available.

Unfortunately I did this development in a branch that is still going to be subject to extensive refactoring of the right-click mouse handler, and I did not want to interfere with that by patching the old mouse handler in an incompatible way. So what I have now is controlled purely by the left mouse button:

* down-click on the board summons up a fresh seek graph.
* down-click on an empty region of the graph pops it down
* down-click on a dot shows the ad in the message field
* up-click on a dot challenges the seeker

So to only view the ad, you left-downclick, see it is not what you want, and move the mouse off the dot before you release the button. If you want to refresh the graph, pop it down, and then back up, by clicking off dots twice.

The seek graph can only be activated when you set the (persistent) option -seekGraph true. A shortcut for this is -sg. (There is no shortcut to switch it off, but the default vaue is off.) You can only summon up the seek graph in ICS mode, when you are not playing or observing. (XBoard internal modes BeginningOfGame and IcsIdle.)

The front-end could be better, but now I want to do WinBoard first, while people can already test the back-end. (In particular if this does not interfere with other ICS commands.) The sources are in the 'seekgraph' branch of the hgm,nubati.net repository.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby Mathieu » 31 Jan 2010, 19:24

looks great!

Why the logarithmic scale?
Mathieu
 
Posts: 26
Joined: 08 Sep 2008, 22:42

Re: ICS seek list window request

Postby Teemu Pudas » 31 Jan 2010, 19:48

Is that time + inc or etime (time + 2/3 * inc, rounded down)?
Teemu Pudas
 
Posts: 124
Joined: 16 Apr 2007, 14:03

Re: ICS seek list window request

Postby Josh Pettus » 31 Jan 2010, 20:12

Wow, that was fast, and looks great! You sir are clearly a god among men.
I was thinking about the 10 second update being a burden on the ICS especially if a lot of people use this program. I think manual refresh is an excellent compromise. Amazing work HGM as always!

Just for clarification TC= Time Control correct?
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 31 Jan 2010, 20:52

And now also available in WinBoard! 8-)

http://hgm.nubati.net/seekgraph.zip.

The horizontal axis displays etime (but not rounded). Indeed TC stands for Time Control.

Of course many cosmetic refinements are still posible, w.r.t. scaling the axis, making the ranges adjustable, distinguishin more colors, and using more mouse buttons, but I am sure I can do those without breaking anything. What I like people to test if if nothing else is broken in ICS play because of matching the pattern of the sought-list lines (which, unfortunately have different format on FICS and ICC, while the ICC list even lacks a recognizable termination line, so that I have to act on the prompt), and suppressing them from the ICS window.
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 » 31 Jan 2010, 20:58

Mathieu wrote:Why the logarithmic scale?

Because the distribution of arbitrary numbers is flat on a log scale.

Notice how in the real-live example shown, there are about equally many dots in the left half (1-10) and the right half (10-100). On a linear scale the left haf of the dots would have been crammed into 9% of the area!
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 » 31 Jan 2010, 21:53

I am trying it on FICS and seems to work excellent! Is there a command to suppress seeks in the ICS window or is it suppose to be doing it automatically because it isn't here. I'll try it on other servers.

Thank-you so much HGM!
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 31 Jan 2010, 22:13

The new-seek announcements are not used for this, so you can simply switch them off at the server by 'set seek 0'. (I could of course have WinBoard pay attention to those lines as well, and have them added to the graph. But I am afraid that would soon plaster the graph with dots, as the ICS never tells you when ads disappear.)
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 » 31 Jan 2010, 22:48

good to know, thanks a lot!

It will be nice when you add the feature to have the check game and start game be separate buttons. I just got my self involved in a match way out of my league. ;)
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 31 Jan 2010, 22:58

Are there any ideas how best to handle points that coincide? I could reduce that problem by introducing some random jitter in the horizontal position (say 5%), but it will never go away completely. Having it cycle through all underlying ads when you call up their text in the message field would be one solution.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby Mathieu » 31 Jan 2010, 23:32

H.G.Muller wrote:
Mathieu wrote:Why the logarithmic scale?

Because the distribution of arbitrary numbers is flat on a log scale.

Notice how in the real-live example shown, there are about equally many dots in the left half (1-10) and the right half (10-100). On a linear scale the left haf of the dots would have been crammed into 9% of the area!

Notice also the gap 1-3 minute (only 1 dot but a large part of the graph).
What I've usually seen so far is a 3 part graph, with one scale for bullet (0-3 min) one for blitz (3-15 min) and one for standar (15+ min), with a ratio being 1/4 - 1/2 - 1/4 in width of total graph (because blitz are most of the games on ics).
You can expect a high density of seeks around 5min and the log scale gives it a tight width, while 1-3 is wide whereas no-one play this (bullets fans play in less than 1min, blitz fans prefer more than 3).
Mathieu
 
Posts: 26
Joined: 08 Sep 2008, 22:42

Re: ICS seek list window request

Postby Josh Pettus » 31 Jan 2010, 23:36

I think that cycle idea when you call text is the only answer unless you can cycle trough them with some other means like mouse wheel

@Matheiu Quite true, this is a graph done in another program and is what they generally look like with lines separating lightning, blitz and standard
Image
Josh Pettus
 
Posts: 317
Joined: 11 Mar 2009, 01:11

Re: ICS seek list window request

Postby H.G.Muller » 01 Feb 2010, 08:26

Well, I am not unhappy with the distribution of the points above 3 min. In theory, the gap between 1 and 3 min would be filled by 1+1, 2+0, and 1+2 games, (etime 1.67, 2 and 2.33, respectively). It seems that these TCs indeed are not much in demand (on ICC, at least).

But the problem is not so much that an excessive gap is present that causes the remaining points to cluster in a much-smaller-than-needed area. The main problem is that everyone is at _exactly_ 3 min. (And to a lesser extent at exactly 1.) That would not be solved by moving the 3-min line horizontally.

In fact I think the gap is put to good use: it prevents overwriting of the rating labels. The other program, shown by Darklord, has solved this by moving the gap and labels to the left of the axis. Well, that doesn't do much good, as far as creating space for the other points is concerned... Having a comparatively large distance between 3 and 2 or 4 would be convenient for spreading out overlapping points a bit horizontally, without misleading people to think that they are actually different from 3, once we have an agorithm for that.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: ICS seek list window request

Postby Teemu Pudas » 01 Feb 2010, 09:45

I guess I could have WinBoard emit a 'sought' or 'sought all' command every 10 sec or so when you are not playing or observing, and have it parse the list to update the graph.

There's a better way to do this, at least on FICS: help iv_seekinfo.

ICC probably has something similar, but I couldn't find it. "help sfilter:"
If you change your sfilter, you should probably close your Seek Graph window and reopen it in order to get the full set of seeks from the server. [This is a bug, the server should know to resend those when you change your sfilter. It should be fixed soon.]
If BlitzIn used the "sought" command, this would happen automatically...
Teemu Pudas
 
Posts: 124
Joined: 16 Apr 2007, 14:03

Next

Return to WinBoard development and bugfixing

Who is online

Users browsing this forum: No registered users and 12 guests