Re: [computer-go] How to properly implement RAVE?

2009-02-03 Thread Isaac Deutsch
I actually tried leaf parallelization first, but after reading the
mentioned paper I switched to an implementation of root parallelization (as
described). I'm not sure if I implemented it correctly (like in my
description), but after testing a 2-core-version against a single-
core-version with a few games, I can say the dual core version wins at
least 75% of the games, which I think would be an ELO difference of about
200. I have yet to switch colors but the results should be similar.

-ibd


 There were a couple of papers [2] at CG2008 on this subject. The
 consensus seemed to be that root parallelization [1] was best. In fact
 Guillaume Chaslot's version got a strength speedup of 3.0 using 2
 threads, and 6.5 using 4 threads (dropping to 14.9 with 16 threads).
 This is of course impossible, and implies the parallel version is
 somehow doing MCTS better than the single thread algorithm!
 
 Darren
 
 [1]: Build multiple MCTS trees in parallel, one per thread. No
 communication. At end add the trees together and use grand total to
 select move.
 
 [2]:
 http://www.cs.unimaas.nl/g.chaslot/papers/parallelMCTS.pdf
 and
 A Parallel Monte-Carlo Tree Search Algorithm by Tristan Cazenave (I
 couldn't seem to find a PDF link.)

-- 
Pt! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: 
http://www.gmx.net/de/go/multimessenger01
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] time measurement

2009-02-03 Thread Jeff Nowakowski
On Tue, 2009-02-03 at 10:41 +, Nick Wedd wrote:
 Providers of Go servers claim that it would be pointless to try to 
 implement client-side time, as players would be able to cheat by hacking 
 their clients and fiddling with the clock.  I don't doubt that they 
 would try to cheat, indeed I know that they would;  but providers of 
 chess servers have been able to prevent cheating.  As I understand it, 
 their clients perform CRC checks on themselves to ensure that they have 
 not been hacked, and the packets they send are CRC-checked by the server 
 to ensure that the packets have not been hacked.

And how does the chess server know when I suspend my cable modem or yank
the plug from the wall to give my program (or myself?) more time to
think?  It looks exactly like lag.  That's the easy, crude way.  I'm
also willing to bet that any client-side CRC check could be hacked, in
exactly the same way that people hack software piracy checks.

I mentioned last time we discussed network lag that on the chess server
FICS there were constant accusations of cheating based on timeseal.  I
haven't played there in years, but I'd be surprised if the situation has
changed.

-Jeff

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


Re: [computer-go] time measurement

2009-02-03 Thread Heikki Levanto
On Tue, Feb 03, 2009 at 10:41:53AM +, Nick Wedd wrote:
 Providers of Go servers claim that it would be pointless to try to 
 implement client-side time, as players would be able to cheat by hacking 
 their clients and fiddling with the clock.  I don't doubt that they 
 would try to cheat, indeed I know that they would;  but providers of 
 chess servers have been able to prevent cheating.  As I understand it, 
 their clients perform CRC checks on themselves to ensure that they have 
 not been hacked, and the packets they send are CRC-checked by the server 
 to ensure that the packets have not been hacked.

Sorry, I don't buy that. It may work with an audience of human players who
are not good programmers. But for a person who is already writing a
go-playing program, and the whole time management in it, adding what ever
cheats sounds trivial.

Besides, this would add an extra layer of complexity to be programmed, with
new chances for mistakes.

All in all, I think this is a messy and unreliable solution to a problem I
have not seen happening. 

For what it is worth I vote against client-side time controls.

  - Heikki
who admittedly doesn't even have a functional program at the moment


-- 
Heikki Levanto   In Murphy We Turst heikki (at) lsd (dot) dk

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


Re: [computer-go] time measurement

2009-02-03 Thread terry mcintyre
I would not want to discourage remote players - some systems are designed to 
take advantage of large supercomputers which are not very portable.

However, remote players need to accept the trade-off. They get to avoid the 
trouble of packing up and shipping a trailer full of computer gear to the other 
side of the world. The downside is that network lag happens.

As others have mentioned, client-side timing can be gamed by the simple 
expedient of pulling the plug to the modem; I can think of a few ways to 
manipulate iptables which would have similar effects.

I hope that tournament organizers do their best to provide a decent connection. 
Remote participants need to do likewise. 



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


Re: [computer-go] time measurement

2009-02-03 Thread steve uurtamo
if it really mattered, remote participants could
use a phone to connect -- it's not like these
are very high-volume transmissions, and the
latency, while high, is still an unimportant
fraction of total time.  on the plus side, the
latency is exact.  on the minus side, it's a
pretty expensive phone call.  :)

s.

On Tue, Feb 3, 2009 at 12:03 PM, terry mcintyre terrymcint...@yahoo.com wrote:
 I would not want to discourage remote players - some systems are designed to 
 take advantage of large supercomputers which are not very portable.

 However, remote players need to accept the trade-off. They get to avoid the 
 trouble of packing up and shipping a trailer full of computer gear to the 
 other side of the world. The downside is that network lag happens.

 As others have mentioned, client-side timing can be gamed by the simple 
 expedient of pulling the plug to the modem; I can think of a few ways to 
 manipulate iptables which would have similar effects.

 I hope that tournament organizers do their best to provide a decent 
 connection. Remote participants need to do likewise.




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

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


Re: [computer-go] time measurement

2009-02-03 Thread Mark Boon


On Feb 3, 2009, at 2:34 PM, Heikki Levanto wrote:

All in all, I think this is a messy and unreliable solution to a  
problem I

have not seen happening.

For what it is worth I vote against client-side time controls.


Maybe you haven't seen it. That doesn't mean it doesn't exist.

I've lost games on KGS because it took too long for my opponent's move  
to arrive. Made me lose the game before even given a split-second to  
respond. Client-side time-control would have prevented that. If the  
problem exists for human play it exists for computer play.


I always thought that security-certificates, signed applications and  
public-key encryption were well equipped to tackle a problem like  
this. But I'm certainly no security expert.


Mark

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


Re: [computer-go] How to properly implement RAVE?

2009-02-03 Thread Jason House
On Sun, Feb 1, 2009 at 4:46 PM, Isaac Deutsch i...@gmx.ch wrote:

 By the way, I got about 75 ELO points (1650-1720) with light playouts out
 of RAVE. Do you think this is in the expected range? It's not really similar
 to the 20%-60% win rate rise vs. GnuGo described in some papers...



My bot is about 1/4-1/2 of the speed of yours, but here are my strength
numbers (median of reported bayeselo numbers below):
HouseBot Rango_004
RAVE - 1778 ELO 1721 ELO
UCT- 1587 ELO 1642 ELO

Given the tremendous speed difference between our bots, I suspect you may
have some debugging to do :(  I'll try to put my bot up on CGOS again in the
next few days.  Maybe some head to head games will best answer how our
implementations compare to each other.

HouseBot parameters:
   One search thread
   Max 50k playouts per move (time control may reduce)
   No pondering
   Variants with RAVE in the name: UCT+RAVE
   Variants with UCT in the name: UCT without RAVE


hb-797-RAVE-50k 1826
hb-791-RAVE-50k 1778
hb-819-RAVE-50k 1715

hb-799-UCT-50k 1606
hb-797-UCT-50k 1605
hb-770-UCT-50k 1570
hb-791-UCT-50k 1556
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

[computer-go] Vacation reply

2009-02-03 Thread jhebl
Thanks to massive amounts of spam, I no longer monitor this account. Please update your address book with my new address (joe.hebl at gmail.com). Thanks, Joe
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] time measurement

2009-02-03 Thread Heikki Levanto
On Tue, Feb 03, 2009 at 03:51:14PM -0200, Mark Boon wrote:

 On Feb 3, 2009, at 2:34 PM, Heikki Levanto wrote:
 
 All in all, I think this is a messy and unreliable solution to a  
 problem I
 have not seen happening.
 
 For what it is worth I vote against client-side time controls.

 Maybe you haven't seen it. That doesn't mean it doesn't exist.

True enough.

 I always thought that security-certificates, signed applications and  
 public-key encryption were well equipped to tackle a problem like  
 this. But I'm certainly no security expert.

No amount on crypto-mumbo-jumbo will solve the problem that the server will
have to trust the program, and its author. Signing can provide some little
assurance that the program running today is the same as was running
yesterday, but that's about all. As long as we can write our own programs,
there is no way to stop us from cheating in them, intentionally or by
accident.

I still think the that such time controls would take too much work to
implement, make it easier to cheat, and offer no reasonable solution to a
problem that may not warrant it.

But that is, of course, my opinion.

  -H


-- 
Heikki Levanto   In Murphy We Turst heikki (at) lsd (dot) dk

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


[computer-go] time measurement

2009-02-03 Thread Nick Wedd
In a recent posting I used the phrase client side time.  Someone has 
asked me what I meant.  As well as answering him, I am posting my answer 
here, for three reasons:  (1) to inform those who do not know, (2) to 
invite correction from those who know better than me, (3) as a gentle 
nag to any Go server programmers who be read this.



Client side time means that the clients, rather than the server, 
measure the time used by the players.  This means that only the time 
which the player has available for thinking is counted against him.  So 
the way a good chess server works is:

  The server sends my opponent's move to my client.
  My client starts my clock and displays my opponent's move.
  I think, my clock ticks.
  I input my move to my client, my clock stops ticking.
  My client sends my move to the server.

This differs from the way Go servers work (or at least, all Go servers 
that I know about).  With Go servers, time for both players is measured 
by the server.  This has the disadvantage that communication time is 
counted against the player, increasing both the time used (which does 
not matter much) and its variance from random netlag (which matters a 
lot).


Providers of Go servers claim that it would be pointless to try to 
implement client-side time, as players would be able to cheat by hacking 
their clients and fiddling with the clock.  I don't doubt that they 
would try to cheat, indeed I know that they would;  but providers of 
chess servers have been able to prevent cheating.  As I understand it, 
their clients perform CRC checks on themselves to ensure that they have 
not been hacked, and the packets they send are CRC-checked by the server 
to ensure that the packets have not been hacked.


Nick
--
Nick Weddn...@maproom.co.uk
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] time measurement

2009-02-03 Thread Nick Wedd
In message 1233686072.20891.9.ca...@acer-debian, Jeff Nowakowski 
j...@dilacero.org writes

On Tue, 2009-02-03 at 10:16 -0800, Ian Osgood wrote:

Frankly, I'm baffled that nobody in the online Go world cares about
network lag. Timeseal has been a mature technology on the chess
servers for over a decade.


I logged into FICS today for nostalgia and one of the first thing I see
is somebody complaining on channel 53 about somebody lag cheating.


What sort of cheating does he complain about?  Does he provide evidence 
that it happens?  rec.games.backgammon has frequent complaints about 
rigged dice, but I would not take them seriously.



It's just a can of worms to require some proprietary binary that people
have to use, trust, and believe is unhackable.


Whenever I have connected to a server, for Go, chess, or any other game, 
I have used a proprietary binary, the client.  I have never found this a 
problem.



And remember, pulling
your network cable from the wall is an unstoppable hack.


Yes, but it only gives you more pondering time, not more full thinking 
time.


Nick
--
Nick Weddn...@maproom.co.uk
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] time measurement

2009-02-03 Thread terry mcintyre
This is the timeseal web site:

http://www.unix-ag.uni-kl.de/~chess/soft/timeseal/

Looks like an interesting read.

 Terry McIntyre terrymcint...@yahoo.com


-- Libertarians Do It With Consent!



- Original Message 
 From: Jeff Nowakowski j...@dilacero.org
 To: computer-go computer-go@computer-go.org
 Sent: Tuesday, February 3, 2009 10:34:32 AM
 Subject: Re: [computer-go]  time measurement
 
 On Tue, 2009-02-03 at 10:16 -0800, Ian Osgood wrote:
  Frankly, I'm baffled that nobody in the online Go world cares about  
  network lag. Timeseal has been a mature technology on the chess  
  servers for over a decade.
 
 I logged into FICS today for nostalgia and one of the first thing I see
 is somebody complaining on channel 53 about somebody lag cheating.
 It's just a can of worms to require some proprietary binary that people
 have to use, trust, and believe is unhackable.  And remember, pulling
 your network cable from the wall is an unstoppable hack.
 
 -Jeff
 
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/



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


[computer-go] Re: remote time measurement

2009-02-03 Thread Dave Dyer

My theory is that the organizers of tournaments with remote participants
could appoint official observers, to observe the operators at the remote
end of connections.  Not foolproof, but simple and doesn't interfere with
the conduct of the tournament.

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


Re: [computer-go] How to properly implement RAVE?

2009-02-03 Thread Jason House
On Tue, Feb 3, 2009 at 1:53 PM, Isaac Deutsch i...@gmx.ch wrote:

 Hi Jason,

 Thanks for your numbers. I might try to limit my bot to 50k playouts and 1
 core, but I usually simulate as long as time permits.


That kind of setup should make it easier to compare.  There have been a few
times in the past where multiple authors posted similar bots with the same
configurations and let them all duke it out on the server for a while.  Once
upon a time, I was the owner of a bot that was performing far worse than
yours and trying to figure out why.  I forget who owns myctest, but they
were very willing to run a bot to help me out.




 Do you suspect my
 pure UCT version has bugs, too, judging from its rating?


Maybe, but it's not all that likely.  It could be that your RAVE
implementation isn't buggy either.  IIRC, when I was running my bots, there
were very few bots in the 1600-2100 ELO range.  That may have skewed my
results.



 I find it hard to
 find good tests for the correctness of a program depending on randomness,
 and even harder to find bugs.


I created a bunch of unit tests to test very specific cases with my search.
Looking at
http://housebot.svn.sourceforge.net/viewvc/housebot/branches/0.7/search/uct.d?view=markupthose
tests are as follows:

   - (line 743) Exploitation of perfect children - Two children with 100%
   winning rate.  Run 100 simulations and ensure that only one child was
   explored.
   - (line 767) Evaluation of foced sequences - Commented out.  I never
   added that functionality (Auto-expand when only one follow-up move is
   available)
   - (line 777) Recognition of a lost position - The end of the game is one
   move away, and the game is lost.  Ensure that each leaf is evaluated once
   and that the search stops and declares the position as lost
   - (line 793) Recognition of a won position - The end of the game is one
   move away and the game is won.  Ensure that only one leaf is evaluated and
   that the search stops and declares the position as won
   - (line 809) Two ply search of a won position
   - (line 834) Searches with solved children (some won, some lost)
   - (line 862) Searches where a winning subtree gets solved through a
   transposed position - Multiple paths exist to the same subtree.  Force the
   evaluation through one path to complete and then force the evaluation
   through another path and ensure the conclusion is picked up
   - (line 894) Searches where a losing subtree gets solved through a
   transposed position
   - (line 924) Searches where a losing terminal gets solved through a
   transposed position

I focused most of the tests on terminal positions that were easier to
understand how they should turn out.  It also had the nice side effect of
helping me speed up my endgame handling in addition to helping me find
several bugs that had been plaguing my bot.



 Maybe we can set up our bots to play under
 similar circumstances on CGOS.



Yes, I'll set it up soon (but probably not today).






 Regards,
 Isaac

  My bot is about 1/4-1/2 of the speed of yours, but here are my strength
  numbers (median of reported bayeselo numbers below):
  HouseBot Rango_004
  RAVE - 1778 ELO 1721 ELO
  UCT- 1587 ELO 1642 ELO
 
  Given the tremendous speed difference between our bots, I suspect you may
  have some debugging to do :(  I'll try to put my bot up on CGOS again in
  the
  next few days.  Maybe some head to head games will best answer how our
  implementations compare to each other.


 --
 Jetzt 1 Monat kostenlos! GMX FreeDSL - Telefonanschluss + DSL
 für nur 17,95 Euro/mtl.!* http://dsl.gmx.de/?ac=OM.AD.PD003K11308T4569a
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] time measurement

2009-02-03 Thread Jeff Nowakowski
On Tue, 2009-02-03 at 10:16 -0800, Ian Osgood wrote:
 Frankly, I'm baffled that nobody in the online Go world cares about  
 network lag. Timeseal has been a mature technology on the chess  
 servers for over a decade.

I logged into FICS today for nostalgia and one of the first thing I see
is somebody complaining on channel 53 about somebody lag cheating.
It's just a can of worms to require some proprietary binary that people
have to use, trust, and believe is unhackable.  And remember, pulling
your network cable from the wall is an unstoppable hack.

-Jeff

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


Re: [computer-go] time measurement

2009-02-03 Thread terry mcintyre
- Original Message 

 From: Gian-Carlo Pascutto g...@sjeng.org
 
 Heikki Levanto wrote:
 
  No amount on crypto-mumbo-jumbo will solve the problem that the server will
  have to trust the program, and its author. Signing can provide some little
  assurance that the program running today is the same as was running
  yesterday, but that's about all. As long as we can write our own programs,
  there is no way to stop us from cheating in them, intentionally or by
  accident.
 
 Very true.
 
 To the people that point to timeseal on the chess servers: both the
 binaries and the protocol itself are trivially reverse engineerable. I
 know of at least 2 people (not counting myself) who have done this.
 
 Because the client side is fully under your control, you can cheat all
 you want with this system. But you can also write a client for a
 non-supported platform :)
 
 The only reason why this doesn't create more problems is that the people
 who have the ability to do this reverse engineering usually have better
 things to do with their time than to cheat on chess servers.
 
 It's like copy protections: it stops some people, but it sure as hell
 ain't secure in any meaningful sense.

So it's trustworthy enough the people accept it as a palliative for net lag, in 
an environment where most people can be trusted. From browsing chess-specific 
web sites, there are customs and procedures for dealing with cheats. In this 
day and age, unless you're in the boonies, only so much net lag is believable.

Preserving one's reputation is a good enough incentive for most people to do 
the right thing.



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


Re: [computer-go] time measurement

2009-02-03 Thread Jeff Nowakowski
On Tue, 2009-02-03 at 18:54 +, Nick Wedd wrote:
 What sort of cheating does he complain about?  Does he provide evidence 
 that it happens?

He couldn't flag his opponent when he ran out of time.  Of course this
could just be lag, or maybe he killed his process when he was losing.
Once you introduce allowances for lag there's no way of telling if it's
legitimate or intentional.

 Whenever I have connected to a server, for Go, chess, or any other game, 
 I have used a proprietary binary, the client.  I have never found this a 
 problem.

Keeping up-to-date binaries for all platforms tends to be a problem.
That's why KGS runs on Java -- which tends to be trivial to hack.  For
something like FICS, there are many open source clients or clients built
for particular platforms, so finding a suitable one is easy.  However,
the timeseal binary itself is separately maintained and compiled for
many platforms.

 Yes, but it only gives you more pondering time, not more full thinking 
 time.

If the game is being relayed live then I can delay the timesealed
connection (traffic shaping isn't hard) after my program makes its move
but before the opponent responds, and on another connection anonymously
observe the opponent's reply and enter it manually into another running
copy of my program.  Now I have as much thinking time as I want.

-Jeff

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


Re: [computer-go] time measurement

2009-02-03 Thread Ryan Grant
there are two solutions.

first, we have the preferred solution: a real time system.
optimally Fischer time, acceptably Byo-Yomi.

second, the Someone Else's Problem solution: tournament organizers
provide connection points on servers they manage, in multiple
countries, with the manager servers implementing timeseal.  edge cloud
points are now available, and this would be a small matter of
programming.

thanks for opening the thread Nick, and thanks Ian for pointing the
way to an answer.

On Tue, Feb 3, 2009 at 10:16 AM, Ian Osgood i...@quirkster.com wrote:

 On Feb 3, 2009, at 8:34 AM, Heikki Levanto wrote:

 On Tue, Feb 03, 2009 at 10:41:53AM +, Nick Wedd wrote:

 Providers of Go servers claim that it would be pointless to try to
 implement client-side time, as players would be able to cheat by hacking
 their clients and fiddling with the clock.  I don't doubt that they
 would try to cheat, indeed I know that they would;  but providers of
 chess servers have been able to prevent cheating.  As I understand it,
 their clients perform CRC checks on themselves to ensure that they have
 not been hacked, and the packets they send are CRC-checked by the server
 to ensure that the packets have not been hacked.

 Sorry, I don't buy that. It may work with an audience of human players who
 are not good programmers. But for a person who is already writing a
 go-playing program, and the whole time management in it, adding what ever
 cheats sounds trivial.

 Besides, this would add an extra layer of complexity to be programmed,
 with
 new chances for mistakes.

 All in all, I think this is a messy and unreliable solution to a problem I
 have not seen happening.

 For what it is worth I vote against client-side time controls.

  - Heikki
who admittedly doesn't even have a functional program at the moment


 --
 Heikki Levanto   In Murphy We Turst heikki (at) lsd (dot) dk

 Perhaps you misunderstand how this is implemented for the chess servers.
  The server authors themselves provide the client authentication service. It
 acts as a filter between any go client and remote server. On ICS, this was
 called timeseal.  Instead of your go client connecting to the server
 directly, it connects via pipe or local socket to timeseal, and timeseal
 makes the authenticated connection to the remote server. In the past, this
 timeseal component was distributed as an opaque binary for various hosts as
 a means of hampering reverse engineering.

 In other words, the burden is on the Go server author to implement both the
 client and server sides of the timeseal protocol. Individual Go program
 authors simply download the timeseal client and configure their program to
 connect to it. No extra coding required.

 Frankly, I'm baffled that nobody in the online Go world cares about network
 lag. Timeseal has been a mature technology on the chess servers for over a
 decade.

 Ian

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




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


Re: [computer-go] time measurement

2009-02-03 Thread steve uurtamo
a slightly simpler protocol:

you let me put a machine on your local network that i control,
and you agree to do an ntp-like service with it.

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


Re: [computer-go] time measurement

2009-02-03 Thread Don Dailey
Here is a simple protocol:

 email your program to me, and I will test it on my local network :-)

All protocols require some trust somewhere,  in this case you must trust
me to test it fairly and not distribute your program in the case that
you want to keep it protected.

- Don




On Tue, 2009-02-03 at 17:15 -0500, steve uurtamo wrote:
 a slightly simpler protocol:
 
 you let me put a machine on your local network that i control,
 and you agree to do an ntp-like service with it.
 
 s.
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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


Re: [computer-go] time measurement

2009-02-03 Thread Darren Cook
 It's just a can of worms to require some proprietary binary that people
 have to use, trust, and believe is unhackable. 

The SSL connectivity part would be reasonably unhackable. (I.e. if you
happened to have a supercomputer to hand to decode the signal you would
probably want to use it for your program instead!)

Reverse-engineering the binary itself to then make your own client is
still a risk, but is a specialist skill beyond most go programmers.

 And remember, pulling
 your network cable from the wall is an unstoppable hack.

There could be a definition of reasonable net lag (e.g. max of 6 seconds
for any one move, and max average of 2 seconds per move across the whole
game). Anyone playing with their network cables is then more likely to
do more harm than good to their clock.  (This also limits the benefit of
making your own client binary.)

The server could also run traceroute before and during the game to get a
fair idea of what is reasonable net lag for that particular client.

Darren


-- 
Darren Cook, Software Researcher/Developer
http://dcook.org/mlsn/ (English-Japanese-German-Chinese-Arabic
open source dictionary/semantic network)
http://dcook.org/work/ (About me and my work)
http://dcook.org/blogs.html (My blogs and articles)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] time measurement

2009-02-03 Thread Michael Williams

The server could also run traceroute before and during the game to get a
fair idea of what is reasonable net lag for that particular client.


Couldn't traceroute also be used with server-side timekeeping?  The server 
could credit the player for trusted hops in the traceroute.
Probably only the last hop would be untrusted.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] time measurement

2009-02-03 Thread Jason House

On Feb 3, 2009, at 7:08 PM, Darren Cook dar...@dcook.org wrote:

The server could also run traceroute before and during the game to  
get a

fair idea of what is reasonable net lag for that particular client.


Couldn't traceroute also be used with server-side timekeeping?  The
server could credit the player for trusted hops in the traceroute.
Probably only the last hop would be untrusted.


Yes, though it usually takes 10+ seconds (*) to complete, so not
something that can be run every move.



Traceroute uses ICMP messages with ever increasing TTL. It is trivial  
to implement. Sending multiple simultaneous messages or just the  
important TTL would make it practical. In some areas of the world, the  
biggest lag is on the client's first hop, so this can't completely  
solve the problem.





Darren

*: All waiting, no CPU load:

$ time traceroute www.google.com
 (tells me 56ms, 47ms, 47ms, and 11 hops; peak was 97ms on first try  
to

the 10th hop)
real0m9.297s
user0m0.000s
sys 0m0.004s



--
Darren Cook, Software Researcher/Developer
http://dcook.org/mlsn/ (English-Japanese-German-Chinese-Arabic
   open source dictionary/semantic network)
http://dcook.org/work/ (About me and my work)
http://dcook.org/blogs.html (My blogs and articles)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

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


Re: [computer-go] How to properly implement RAVE?

2009-02-03 Thread Isaac Deutsch
Hi Jason,

Thanks for your numbers. I might try to limit my bot to 50k playouts and 1
core, but I usually simulate as long as time permits. Do you suspect my
pure UCT version has bugs, too, judging from its rating? I find it hard to
find good tests for the correctness of a program depending on randomness,
and even harder to find bugs. Maybe we can set up our bots to play under
similar circumstances on CGOS.

Regards,
Isaac

 My bot is about 1/4-1/2 of the speed of yours, but here are my strength
 numbers (median of reported bayeselo numbers below):
 HouseBot Rango_004
 RAVE - 1778 ELO 1721 ELO
 UCT- 1587 ELO 1642 ELO
 
 Given the tremendous speed difference between our bots, I suspect you may
 have some debugging to do :(  I'll try to put my bot up on CGOS again in
 the
 next few days.  Maybe some head to head games will best answer how our
 implementations compare to each other.


-- 
Jetzt 1 Monat kostenlos! GMX FreeDSL - Telefonanschluss + DSL 
für nur 17,95 Euro/mtl.!* http://dsl.gmx.de/?ac=OM.AD.PD003K11308T4569a
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] time measurement

2009-02-03 Thread Gian-Carlo Pascutto
Heikki Levanto wrote:

 No amount on crypto-mumbo-jumbo will solve the problem that the server will
 have to trust the program, and its author. Signing can provide some little
 assurance that the program running today is the same as was running
 yesterday, but that's about all. As long as we can write our own programs,
 there is no way to stop us from cheating in them, intentionally or by
 accident.

Very true.

To the people that point to timeseal on the chess servers: both the
binaries and the protocol itself are trivially reverse engineerable. I
know of at least 2 people (not counting myself) who have done this.

Because the client side is fully under your control, you can cheat all
you want with this system. But you can also write a client for a
non-supported platform :)

The only reason why this doesn't create more problems is that the people
who have the ability to do this reverse engineering usually have better
things to do with their time than to cheat on chess servers.

It's like copy protections: it stops some people, but it sure as hell
ain't secure in any meaningful sense.

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


Re: [computer-go] time measurement

2009-02-03 Thread Ryan Grant
i like how simple ICMP hacking is.
large trunk lines might be the only ones worth trusting as secure, but
it's a good start.

again, i'd rather move away from absolute time, which i find horrendous.

On Tue, Feb 3, 2009 at 4:21 PM, Jason House jason.james.ho...@gmail.com wrote:
 On Feb 3, 2009, at 7:08 PM, Darren Cook dar...@dcook.org wrote:

 The server could also run traceroute before and during the game to get a
 fair idea of what is reasonable net lag for that particular client.

 Couldn't traceroute also be used with server-side timekeeping?  The
 server could credit the player for trusted hops in the traceroute.
 Probably only the last hop would be untrusted.

 Yes, though it usually takes 10+ seconds (*) to complete, so not
 something that can be run every move.


 Traceroute uses ICMP messages with ever increasing TTL. It is trivial to
 implement. Sending multiple simultaneous messages or just the important TTL
 would make it practical. In some areas of the world, the biggest lag is on
 the client's first hop, so this can't completely solve the problem.



 Darren

 *: All waiting, no CPU load:

 $ time traceroute www.google.com
  (tells me 56ms, 47ms, 47ms, and 11 hops; peak was 97ms on first try to
 the 10th hop)
 real0m9.297s
 user0m0.000s
 sys 0m0.004s



 --
 Darren Cook, Software Researcher/Developer
 http://dcook.org/mlsn/ (English-Japanese-German-Chinese-Arabic
   open source dictionary/semantic network)
 http://dcook.org/work/ (About me and my work)
 http://dcook.org/blogs.html (My blogs and articles)
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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




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


Re: [computer-go] time measurement

2009-02-03 Thread Darren Cook
 The server could also run traceroute before and during the game to get a
 fair idea of what is reasonable net lag for that particular client.
 
 Couldn't traceroute also be used with server-side timekeeping?  The
 server could credit the player for trusted hops in the traceroute.
 Probably only the last hop would be untrusted.

Yes, though it usually takes 10+ seconds (*) to complete, so not
something that can be run every move.

Darren

*: All waiting, no CPU load:

$ time traceroute www.google.com
  (tells me 56ms, 47ms, 47ms, and 11 hops; peak was 97ms on first try to
the 10th hop)
real0m9.297s
user0m0.000s
sys 0m0.004s



-- 
Darren Cook, Software Researcher/Developer
http://dcook.org/mlsn/ (English-Japanese-German-Chinese-Arabic
open source dictionary/semantic network)
http://dcook.org/work/ (About me and my work)
http://dcook.org/blogs.html (My blogs and articles)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] time measurement

2009-02-03 Thread terry mcintyre
Further information, including a helpful diagram:

http://www.edcollins.com/chess/lag.htm


 Terry McIntyre terrymcint...@yahoo.com


-- Libertarians Do It With Consent!



- Original Message 
 From: terry mcintyre terrymcint...@yahoo.com
 To: computer-go computer-go@computer-go.org
 Sent: Tuesday, February 3, 2009 10:59:12 AM
 Subject: Re: [computer-go]  time measurement
 
 This is the timeseal web site:
 
 http://www.unix-ag.uni-kl.de/~chess/soft/timeseal/
 
 Looks like an interesting read.
 
 Terry McIntyre 
 
 
 -- Libertarians Do It With Consent!
 
 
 
 - Original Message 
  From: Jeff Nowakowski 
  To: computer-go 
  Sent: Tuesday, February 3, 2009 10:34:32 AM
  Subject: Re: [computer-go]  time measurement
  
  On Tue, 2009-02-03 at 10:16 -0800, Ian Osgood wrote:
   Frankly, I'm baffled that nobody in the online Go world cares about  
   network lag. Timeseal has been a mature technology on the chess  
   servers for over a decade.
  
  I logged into FICS today for nostalgia and one of the first thing I see
  is somebody complaining on channel 53 about somebody lag cheating.
  It's just a can of worms to require some proprietary binary that people
  have to use, trust, and believe is unhackable.  And remember, pulling
  your network cable from the wall is an unstoppable hack.
  
  -Jeff
  
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 
 
 
   
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/



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