On Tue, 2008-02-26 at 12:28 -0500, Don Dailey wrote:
> Regarding use GTP for the CGOS communication protocol:
> 
> At one point I actually seriously considered using GTP as the
> communication protocol for CGOS.    It seemed rather cool that it might
> be possible to hook up a program directly without needing a separate
> client.   It seems like we may have even discussed it on this group.   I
> did discuss this with the gogui people I believe. 

I found at least one discussion from the early CGOS days.  It was part
of a larger thread that had nothing to do with CGOS so I'll link to
Don's post and you can click the [thread] view from there to see the
follow-ups:

http://computer-go.org/pipermail/computer-go/2006-March/004903.html

It discusses the authentication issues, the socket issues, and nice
ideas like being able to re-use GoGui with different servers, like the
Random Go Challenge mentioned by Markus:
http://www.lysator.liu.se/~gunnar/gtp/random_go_challenge.html

One quote from you (Don) stands out:

"I know this is one of those things I would regret later - not sticking
to just 1 way to communicate.   Even when it seems like it wouldn't
be a big deal - I always kick myself for not following my instinct."

I think you should be kicking yourself for not going with GTP all the
way through :)

> A couple of issues made me change my mind.   One of them is exactly what
> Álvaro mentions, the authentication issue.    There is nothing in the
> GTP protocol to cover this and it seemed to be outside the scope of the
> protocol.     You could separate authentication and consider it just a
> separate step in the process, but this is certainly no simplification.  

It seems to me adding two GTP commands for login and password is
extremely simple, and could always be replaced later by ssh or kerberos
or whatever, should the need arise.

> The other issue is that GTP is normally done over pipes,  not sockets.  
> It doesn't really matter how you send and receive the messages of
> course,  but it certainly doesn't make most programs immediately
> usable.  It's easy enough in unix based systems using unix tools but at
> this point you already using an external program anyway.  

But they are standard tools and you don't need to install ad-hoc clients
for every server that somebody dreams up.  The Random Go Challenge page
shows how simple it is to convert from a TCP stream to a GTP standard
input stream with tcpconnect.

> A third issue is that I wanted the flexibility to add things not covered
> by GTP,  such as informational messages.    I did not want to require
> people to constantly be modifying their GTP implementations to
> accommodate CGOS.

GTP messages that aren't understood can be ignored.  As long as the
server only requires the basics from a GTP engine (boardsize, genmove,
etc), with everything else optional, I don't see what the problem is.

> A fourth issue is that wanted to minimize the number of messages passing
> back and forth.   So the CGOS protocol is less verbose in that sense.  
> If I stayed with strict GTP I would be sending a more tiny message back
> and forth.

How much are you saving?  The vast majority of commands are genmove w/b
followed by a response.  That and there's only a handful of people
connecting anyways.  This sounds like pre-mature optimization.

> Every few months, I get a private email asking why I didn't use GTP.   I
> think this is the first one sent to the computer-go list.   Each time
> the person believes he is the first to think of the idea.

This is overly harsh.  There's a difference between asking a "why isn't
this done this way" Frequently Asked Question and believing that you're
the first to ask the question.  Anyways, I'm glad it was brought up
again.  I'd like to see a move to GTP for the server -- it's almost GTP
anyways.  You did say in that old thread I linked to:

"But if enough people express interest I may very well do this - it's  a
trivial modification to the server."

It seems that there is interest.

-Jeff


_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to