KGSueMe / Discussion

Sub-page of KGSueMe

To all: slow down a bit. This sort of argument/conflict arises in just about every public service that is available for free. The providers (admins/maintainers/...) feel they have the right to do what they do - after all it is their place. The community feels it has rights too - after all they are making this place worthwhile to visit. Both sides invest time, both feel entitled to lay down certain rules. In the end either

  • both sides agree on some middle ground
  • the providers win, and a vocal minority of the community leaves
  • the providers win, but the majority of the community leaves

Search google or whatever to find 100s of similar arguments in news or on the web. No need to create a new example of this classic argument here.


Tamsin: KGS allows you to use its service on condition you use the client they provide. It's rude at the least to fly in the face of this. One day I will visit your home and trample all over your favourite carpets in muddy shoes, even if you ask me to leave them at the door.[1] How about those apples?

I'd like to see this page removed. Admins, please?

[1] For those who don't understand analogies, using a non-proprietorial client despite being specifically asked NOT to is the same kind of rudeness as going into somebody's house uninvited and THEN breaking the house rules, to boot!

Neil: "Trample all over yoru favourite carpets in muddy shoes." So it's your contention that the software mentioned on this page does damage to the KGS server software or hardware?

What "house rule" is being broken anyway? I see no mention of client software in the KGS terms of service?

If you want the page removed, why are you participating in it? I think it's mighty rude to state your case, then call for the page removed to squelch further debate.

Tamsin: "So it's your contention that the software mentioned on this page does damage to the KGS server software or hardware?"

More or less spot on, Neil. I remember reading wms lamenting about server problems caused by somebody using a homemade client. Besides, you mentioned above that wms is opposed to this effort...

If you follow you'll note that this has all been discussed before.

The only reason I participated in your page was to call for its removal, on the grounds given above. I've nothing against you personally, but I really don't this business of people using their own clients for KGS when it's well-known that wms does not like them doing so.

I think this page should be removed because it could be interpreted as giving support, i.e., by providing links, to the non-proprietorial KGS client people.If Arno et al don't agree with me, that's fine with me, but I don't agree that I'm being rude simply by stating my opinion, unless of course you regard any opinions that differ from your own as rude :-p

Neil - Doing damage... That's a pretty serious charge, and I'd hope that you'd have more evidence before making it than the word of one man whom it is claimed has a personal agenda against the software.

And besides, assuming it's true, or even assuming further that the software is deliberately malicious, then that's all the more reason to leave this page here: to warn unsuspecting KGS users. Removing this page won't make the software go away; its presence on Sourceforge guarantees that.

The point is pretty weak. If we removed everything from SL that was ever mentioned on that newsgroup, we'd be removing a lot.

Tamsin: If that one man with the agenda against the software was just Joe Bloggs, then you'd be right, but it happens to be wms himself. Since he does most of the hard, hard work in creating and maintaining KGS, then surely he has the right to lay down some rules concerning how it is to be used? It shows disrespect to him and his work if you then flout the rules.

I admit that I didn't think of your point about leaving the page here to warn others. Maybe you're right there, but surely the links and wording would have to be changed to make it clear that we at SL disaprove of this project (which some people may have heard about elsewhere).

Neil - "Flout the rules." Again, where has the Kiseido Go Server or William Shubert requested that users refrain from reverse-engineering the protocol, or using any client other than the two that are supplied? I'm seeing an awful lot of hearsay about Shubert's position on the matter, but nothing direct.

Oh, and I see no discussion of KGSueMe or of objections to reverse-engineering the KGS protocol in the Google Groups archives. All I can find are announcements of the software in groups other than Any hints on finding such a thread would be appreciated.

ZeroKun: Kgs is copyrighted software, so reverse engineering it is against the law.

Neil: Depends on what part of the world you're in. In America, reverse engineering is only prohibited if you're doing so to circumvent a copyright protection device. And even if we were to assume that the KGS protocol is a copyright protection device (a dubious claim), reverse engineering is still allowed for purposes of interoperability.

[ext] Title 17, Chapter 12, Section 1201 of the US Code

Tamsin: Jeff Boscole brought up the issue fairly recently on r.g.g. The result was the usual futile game of verbal ping-pong, with the emphasis on "pong". If you have patience, you will be able to find the relevant threads.

Neil: Seriously. Searching for reverse engineering KGS in returns no threads on the matter. Just searching for everything ever written by the jazzercizer would take more time than we have left before the Sun goes nova, I think. :-)

Tamsin: LOL. I can't recall the name of the thread, and I suppose you would have to have the patience of a saint to read through all his postings looking for the one you want. You'd probably do yourself a mild brain injury, too...

Evand - Let me just chip in to say that I support the presence of this page on SL. I have very mixed feelings about the software in itself, but see nothing to warrant the removal from SL. I see it as an issue very akin to having "open the KGS source" on the wishlist page -- we know wms disagrees, we know there is contention, and we can say all that and leave it be and no one is more than somewhat annoyed about it (I hope). I'll avoid the debate on the details of the software, since that seems *highly* unlikely to go anywhere useful.

Neil - I'm trying to stay neutral on the software itself, personally. I'm just trying to gather and present facts. Once this discussion hashes out, and this page gets master edited, this page will probably be a pretty good resource for KGS newcomers on the matter.

Bisqwit - Documenting the protocol and everyone writing their own playing clients is exactly what wms doesn't want for KGS. I once wrote a client for KGS (before the protocol rewrite where 8-9 dan ranks came in), and after that I had discussions with wms and it became very clear why he doesn't want this. Please don't do it. The current way is best for KGS users.

phenomene: I agree with Tamsin. SL is not the right place for flamewars. Try rgg instead. Please delete this page.

RafaelCaetano: I agree that developing (or using) that client is rude. But I wonder if this is enough reason for remove this or the original page.

It's not clear whether KGSueMe is illegal. I agree that KGS has the right to deny access to people using that client, but that doesn't make the development (or use) illegal. Anyway, discussing the legality misses the point. The HnG scans are illegal, aren't they?

This isn't a flamewar. Methinks it's not nice to call for the end of a discussion right after starting it.

So, back to the point relevant to SL: is there enough reason to remove these pages?

Neil: What would one hope to achieve by removing this all from SL?

Tamsin: Well, it seems to me that Neil has clarified his situation very well with his master edit, and this discussion has brought up some good points too, so I don't see much pressing need for removal of this page, anymore, either. I was a bit irritated at the original KGSueMe page because it seemed to be promoting the project to some degree. That's why I stated my objections and called for it to be removed. I didn't ask for the discussion to be removed. However, we all kept our heads and arrived at an agreement in the end, so let's be happy about that, eh? :-)

Scryer: I don't see how there can be any doubt that a badly-programmed or malicious client could potentially damage a server. If the programmer controls both the server and client side, he can make assumptions on the server side that can result in better performance as well as shorter programming times because he knows he does not need to check for behaviors that he knows cannot happen in the assumed environment. For example, buffer overrun problems, the Achilles heel of Windows and sendmail and many other programs, need not be an issue if you know the programs you're talking to cannot generate strings longer than the buffer size you've chosen. New clients exercising what would be a bug in a server that accepts arbitrary clients could crash the server, allow a malicious user to change his results, or anything else. Doing a code review on the server to change assumptions about what it has to accept could be a major diversion of energy that I personally would prefer he didn't have to make.

Fhayashi: Seems to me that the effort to make a 'rogue' client for KGS is better spent developing a new 'open' client/server. If you think you can write a better client, I'm sure you could write a better server, too.

Evand: Am I the only one who believes that the server should not be capable of being damaged by a badly written client? Clearly an actively malicious client could do things like spam the server, but there is no legitimate justification for having buffer overflows or other logic errors on the server side, simply because the default client doesn't cause a problem. This sort of thinking is exactly the reason why there are such security holes in a lot of software in the first place. So, I would say that if the server can be crashed by a rogue client that easily, then it is not stable software and should not be used in a production environment (ie running KGS). Now, all that said, using a client that knowingly causes problems for the server is somewhere between extremely rude and illegal, but I think the server should be immune to reasonable programmer mistakes client-side.

BlueWyvern: I disagree entirely. First of all I am pretty sure one of the primary reasons that WMS does not want rogue clients is that the protocol is constantly changing. It can be really hard to implement big changes if you have to worry about multiple clients, some of which you don't even author. Second of all, and this is at least my opinion (I say at least, not just, because I have heard other people mention this), robust software takes a lot of time and effort. It takes enough effort to make a product that is resistant to glitches in your own software which you can somewhat anticipate. When you have to anticipate and deal with glitches caused by OTHER people's software, it quickly becomes a full time job, possibly of a team of programmers. KGS is not a full time job, it is something WMS does in his spare time for free, as a hobby. He should not be expected to write KGS to full commercial client side robustness standards. Using it is not a right you have payed for, it is a privilege you have because WMS is kind enough to spend all this time and open it up to the world. If you don't like the server, I am sure KGS will be more then happy to give you a full refund, but in my humble opinion, it is extremely rude to take someone's personal private project, and dictate what they should or shouldn't do with it.

PatrickB: For the record, wms does try to make sure that buggy or malicious clients can't crash the server, if for no other reason that even the standard client occasionally has bugs.

Nacho: The problem is you cannot just asume that by telling people "I'd prefer you didn't do that", they will just cease doing it. I think that the KGSueMe people don't want to break the server, on the contrary, they just want to use it. That's why they are making a client for it. Also, I tend to believe what PatrickB said above; wms is a good programmer, he knows quite well that there is always the possibility of someone coming and trying to crash the server with some maliciously crafted program, so he'll have to dedicate time to prevent that from happening.

I also agree with Tamsin when she says that if you're invited to a house, you should at least behave in a manner that the owner of the house doesn't consider offensive.

But there is also one thing I think nobody said until now, and is that if these people think they need a different cliente, then maybe they have a point. There are some things wrong with the KGS client, that people don't like. It is slow, for example. In many older computers you can't play on KGS. If you have one of those, wouldn't you be willing to try a different, unsupported client?

BlueWyvern: The main problem I have in this discussion is that people wanting to create other clients seem to think they are somehow entitled to do it and wms is somehow obligated to assist/make life easier for them.

Neil: Don't misrepresent the reverse-engineers. There's a huge gap between being entitled to reverse-engineer, and being entitled to help writing a new client. The fact that they are reverse-engineering a client shows they don't think they're entitled to any help at all.

wms: It's not the authors of the unsupported clients that I'm worried about. It's the users of these clients, who may not be aware that their client is supported, who would make my life miserable.

Neil: Mr. Shubert, I understand and respect your position. I just think it's unfair to represent these other client authors as spoiled brats. That was my point just now in replying to BlueWyvern.

BlueWyvern: Right sorry, I apologize. Obviously the spoiled ones are the hundreds of people inconvienced every time KGS is crashed. I guess it's our own damn fault for thinking that KGS is a place to play go rather then a test bed for software engineers to lazy to write their own damn server.

Neil: This isn't There's no need for that attitude.

wms: I have most definitely said on and in private emails and conversations that I do not want 3rd party clients. Whether it is legal or not, I don't know or much care. I don't plan on bothering to sue people, much easier to just change the protocol and break the clients they wrote. Finding bugs that crashed the server was one of the few good things to come out of KGSueMe, but although that part was helpful to me, I still would prefer that such clients not be written. The main reason I don't want 3rd party programs out there is that I don't want to have to worry about breaking them when I change the protocol. The common argument is, "but you won't have to worry, it will be the client authors who have to worry." That is not correct. If I change the protocol and get angry emails that KGS doesn't work any more, it doesn't matter who wrote the damn client - I still have to deal with these angry emails. I refuse to ignore angry KGS users, so I must either handle the problems of versioning in clients other than my own, or I have to make sure that those other clients never become stable enough to be usable. I plan on doing the latter.

Matt Noonan: Bill, I recall that GTP support has been in the KGSPlans for some a while now. Is GTP a flexible enough protocol that well-featured KGS clients could be written which interface through GTP, or is it too restrictive?

wms: GTP is not flexible enough. It does not support the rooms of KGS, it does not support SGF editing, it does not support anything except playing games. If somebody writes a client on top of a GTP interface to KGS, then their client will suck so badly that I will not have to worry about other people using it and expecting support. :-)

Evand: Unless I'm greatly mistaken, GTP is not intended as a way to write a go client. It is intended as a way to connect a GUI to an engine in a fairly generic and easy to use way. So I would be highly surprised if anyone succeeded in creating a GTP client for KGS that was even remotely useable.

Evand: So, is a compromise of any sort even remotely possible? Something along the lines of wms agrees not to interfere directly, but makes no promise of support of any form; the authors of the alternate client agree to put a very obvious warning that the client is completely unsupported by wms / kgs admins / etc, and provide an alternate support email that they deal with; and the authors of alternate clients agree to deal with any problems their clients cause in a prompt and helpful manner. As far as I can see, having alternate clients available is a good thing, except that they tend to cause a lot of problems for wms. Granted, that's a big problem (potentially). Is there a way that can be minimised enough to be helpful without creating too much work elsewhere for wms?

wms: Evand, I answered that already.

Neil: Why don't those who are interested in development just write for NNGS?

wms: Better yet, why not write a new server? I'm not being a smartass here, I'm being serious. I wrote KGS from scratch partly because I decided that the NNGS protocol was way too limited. It would be impossible to add the features I wanted on top of it without breaking all the old NNGS clients, and if I did that, then the benefits of starting with NNGS are gone. So I wrote my own server. Instead of putting a lot of work into a new KGS client, which will be broken all the time anyway as I go and change the procotol, please instead write a new server to go with your client. Then you can control everything, and the features you add are only limited by what you want to do. And believe me - if somebody else writes a server that really is better than KGS, I'll be happy to either work like crazy to make KGS just as good, or else give up and become your customer. :-)

Neil: Total agreement. In fact, anyone interested in such an effort should contact me, since I have ideas and would be interested in implementing them if I thought there was a chance my server would have more users than me. :-)

Bisqwit: If you're interested in writing a client that handles some data from KGS (like the list of ongoing games), it doesn't help to write a new server.

Neil: If you're interested in using a Go server that allows you to work on improving the client, using KGS doesn't help.

Rich: So, umm, use NNGS? This whole 'debate' seems to be a non-starter. WMS has developed a fine server and he requests that you use a particular client. If one doesn't want to use the client, then one should respect his request and take ones custom elsewhere, not waste time for him that he could spend improving other aspects. I think WMS would be advised to place it in his terms of service if he considers it likely to lead to problems.

As regards damage (near the top of the page); it's like complaining that one is asked to remove ones shoes when "*my* shoes aren't dirty, why should I?"

Neil: Yes. Mr. Shubert has made his decision. He's a good guy, he knows how we software developers feel, and I think his responses to this are remarkably nice and understanding.

So take his advice. Write your own server. I have some ideas that would greatly reduce the work involved, letting you get right to the meat real quick, whoever's interested.

KGSueMe / Discussion last edited by on January 10, 2007 - 21:36
RecentChanges · StartingPoints · About
Edit page ·Search · Related · Page info · Latest diff
[Welcome to Sensei's Library!]
Search position
Page history
Latest page diff
Partner sites:
Go Teaching Ladder
Login / Prefs
Sensei's Library