Re: [computer-go] Re: Lisp time

2007-12-14 Thread Nick Apperson
Look, I love C++ and I'd love to say look I told you all, C++ is the fastest, but frankly it just doesn't work like that. When we come to a point where every programmer writes the fastest possible code their language could create then we have some kind of a comparison. C++ has a philosophy

[computer-go] Lisp time

2007-12-12 Thread Nick Apperson
I've been (and still am) a die hard supporter of C++, but since I program in C++ for work (we develop gamelike software) I get tired of C++ day in and out. I'd also like to push myself to learn some new things. Lisp seems to me like a language I could really come to respect. I run linux (no

Re: [computer-go] Language

2007-11-21 Thread Nick Apperson
programming if you are prototyping use whatever the hell you want. If you are finishing something off, don't waste my time with any of those slow languages (that includes java and c#). - Nick On Nov 22, 2007 1:44 AM, Stefan Nobis [EMAIL PROTECTED] wrote: Nick Apperson [EMAIL PROTECTED] writes

Re: [computer-go] Language

2007-11-21 Thread Nick Apperson
hahaha, good point... good point. Although I still will stick with C++, I really ought to learn Lisp I think. On Nov 22, 2007 2:43 AM, Raymond Wold [EMAIL PROTECTED] wrote: Nick Apperson wrote: But, to be fair, I totally agree that compiling python or ruby would give you noticable speed

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Nick Apperson
this only as a hobby and have no aspirations (just for fun and pleasure) then by all means, you will be much happier in a high level language. - Don Raymond Wold wrote: Nick Apperson wrote: But, to be fair, I totally agree that compiling python or ruby would give you noticable speed

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Nick Apperson
their code poorly. There is a saying I think... but yeah C++ is not made for people that aren't really good programmers. No training wheels. On Nov 22, 2007 11:51 AM, Petr Baudis [EMAIL PROTECTED] wrote: On Thu, Nov 22, 2007 at 11:36:58AM +1800, Nick Apperson wrote: Thanks for a great read

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Nick Apperson
22, 2007 at 12:04:53PM +1800, Nick Apperson wrote: right... well C++ does have this using virtual methods. I meant to add that part. I'm sorry, I still don't get this - what do virtual methods have to do with branch prediction? Can you elaborate, please

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Nick Apperson
Actually, putting all the code in headers helps with function inlining more than anything. The virtual function stuff is very complicated because usually code can be linked in at runtime that adds new functionality (i.e. a new derived class). Make no mistake, virtual functions are VERY

Re: [computer-go] Re: compiler optimizations

2007-11-21 Thread Nick Apperson
I agree with you 100%. You embody the methodology behind C++. The only problem I can see with adding something like that to C++ is that many times the compiler can't determine at compile time if a value is violating the contract. If the feature were added to C++, the programmer would have to be

Re: [computer-go] Language

2007-11-20 Thread Nick Apperson
Java and C# are both compiled at some point if the same loop is running repeatedly. Java is usually compiled just in time which is to say as each function is first run. I'm not sure how C# is executed, but I think it gets compiled before execution. In theory, ruby and python could also be

Re: [computer-go] Language

2007-11-14 Thread Nick Apperson
perhaps this is an obvious statement... The best language depends on the way in which your program works. Having used C++ extensively, my program designs naturally fit easily into that language. I'm sure a lisp programmer would think of better solutions that would only work in lisp. As far as

Re: [computer-go] Language

2007-11-14 Thread Nick Apperson
of the language when it isn't really necessary. Just my thoughts, Nick On Nov 14, 2007 8:46 PM, William Harold Newman [EMAIL PROTECTED] wrote: On Wed, Nov 14, 2007 at 04:44:25PM -0600, Nick Apperson wrote: perhaps this is an obvious statement... The best language depends on the way in which your

Re: [computer-go] Language

2007-11-13 Thread Nick Apperson
idioms avaliable in C++. I can understand why these people might prefer Java. I write lots of code in C++ that saves me tons of development time that simply couldn't be written in Java. So it really depends I think on what you use. For me, I'm more productive in C++. Nick Apperson: You write

Re: [computer-go] Language

2007-11-13 Thread Nick Apperson
I'd also say that Lisp seems like a great choice. I'm happy to see that C++ has been adding support for all the metaprogramming because that is what is going to really matter in the future I think and it is why Lisp is such a great language. On Nov 13, 2007 2:13 PM, Chris Fant [EMAIL PROTECTED]

Re: [computer-go] Language

2007-11-13 Thread Nick Apperson
don't think that Java is a bad language for everything, but for what I do with my skills, it is not what I'm most productive with. On Nov 13, 2007 2:36 PM, Stefan Nobis [EMAIL PROTECTED] wrote: Nick Apperson [EMAIL PROTECTED] writes: Reference counting and copy on write. Do you know

Re: [computer-go] Language

2007-11-13 Thread Nick Apperson
for metaprogramming, but I don't know enough to really make that claim. I stray from Lisp mainly because it isn't used as much as C++. But I do respect those that use it. - Nick On Nov 13, 2007 3:10 PM, Stefan Nobis [EMAIL PROTECTED] wrote: Nick Apperson [EMAIL PROTECTED] writes: And I don't htink I

Re: [computer-go] Language

2007-11-13 Thread Nick Apperson
hahaha one problem though... i can't easily determine the number of letters that are inside the parenthesis... maybe this is better: paren type:open/parenspace type=normal/spaceletter type=normal case=capitalX/letterletter type=normal case=capitalM/letterletter type=normal

Re: [computer-go] Language

2007-11-12 Thread Nick Apperson
Are you a troll? I'd recomend staying away from proprietary languages personally... for obvious reasons. I don't think there is any language that doesn't sacrifice some speed for garbage collection. But, speed is a relative thing. If you don't directly use the heap in C++ (i.e. you use the

Re: [computer-go] Language

2007-11-12 Thread Nick Apperson
WARNING: This digresses into a rant by the end... You've been warned. If you like to have your garbage collected for you then use one of the management strategies present in C++. If you like delayed freeing, overload new or use a library that does this. Really, the difference between C++ and

Re: [computer-go] Draughts / Checkers solved

2007-07-19 Thread Nick Apperson
This is an exercise in proving that computers have more memory and processing power than before I feel. To solve a game, very little programming skill is necessary. The strategy for using processing power can only be one of a limited set of possible strategies. A game that is not solvable by

Re: [computer-go] Java hounds salivate over this:

2007-06-15 Thread Nick Apperson
I think Java approaches the speed of C only in a few benchmarks. I think if you had a competition by super-experts in any language to write a very specific program, you would find that the Java program couldn't approach the C program in speed. For instance I would like someone to take Lukasz

Re: [computer-go] Computer tournament at next US Go Congress?

2007-04-13 Thread Nick Apperson
I was thinking about going anyway. If some of you all are going to be there, I would definately get there if it is possible. Not that I am at the level of most of the people on this list... On 4/13/07, Don Dailey [EMAIL PROTECTED] wrote: On Fri, 2007-04-13 at 13:14 -0400, Chris Fant wrote:

Re: [computer-go] average length of 9x9 MC playout

2007-03-18 Thread Nick Apperson
heavy playouts should yeild a lower number of moves because moves are slightly more efficient bringing the end of the game sooner. I'm actually surprised it isn't a larger difference. On 3/18/07, Don Dailey [EMAIL PROTECTED] wrote: On Sun, 2007-03-18 at 22:33 -0400, John Tromp wrote: I've

Re: [computer-go] Go hardware?

2007-03-09 Thread Nick Apperson
This is definately the direction things are headed. Processors are going to eventually have tons of cores. The main problem with the design you mentioned though is that the overhead of having all those processors would almost not make it worth it because of how slow they are. And also, bus

Re: [computer-go] GTPv3

2007-03-08 Thread Nick Apperson
perhaps since every command is numbered we could have a command that tells the engine to abort a command by number. The engine can ofcourse reply with a failure if it already processed the command and can not abort it. Genmove still seems to be somewhat of an issue, but atleast this way defines

Re: [computer-go] GTPv3

2007-03-05 Thread Nick Apperson
I think you are mostly correct. But, the problem is that GTP was designed to block on the genmove command. This is a problem because genmove is usually not quick to return. Therefore, there is no way with the current scheme to be able to issue commands while an engine is thinking. It would

Re: [computer-go] GTPv3

2007-03-05 Thread Nick Apperson
just a thought... prefix all async commands with async_ so that it is clear. Also, that way there can be a version of the command that is async and one that blocks and an engine can support one or both. This could be useful for commands that query on state (or estimated score or whatever). An

Re: [computer-go] GTPv3

2007-03-05 Thread Nick Apperson
, get_current_best_move, chat, etc. If the engine doesn't support realtime gtp, they will be answer after the gen_move response. one at a time. I don't know, perhaps I'm pushing too much the gtp protocol... I don't think so, but perhaps --- Nick Apperson [EMAIL PROTECTED] escribió: I think you

Re: [computer-go] Library of Effective GO routines v 0.106

2007-02-22 Thread Nick Apperson
if cache is your limiting factor that is usually shared. Also, if you are using processors with hyperthreading, it is possible. Or if bus bandwidth is your limiting factor... but if it is exactly 2x slower that is indeed very odd. My money is on the fact that you have a bottleneck somewhere

Re: [computer-go] Library of Effective GO routines v 0.106

2007-02-22 Thread Nick Apperson
The other thought (kind of silly) but just a pssing thought is that the threads that are benchmarking are keeping a local copy of their count and writing it back at the end (which is allowed) so you are actually getting good performance, but you don't know it because the processors aren't talking

Re: [computer-go] Effective Go Library v0.101

2007-02-15 Thread Nick Apperson
C++ function objects have overhead? This is news to me... Any decent compiler can optimize these as well as a direct function call. Also because of the way that the code is generated using templates (as in machine language isn't generated until the actual call is reached), function bodies are

Re: [computer-go] Effective Go Library v0.101

2007-02-15 Thread Nick Apperson
On 2/16/07, Petri Pitkanen [EMAIL PROTECTED] wrote: 2007/2/16, Nick Apperson [EMAIL PROTECTED]: trouble. Also, the alternative is usually function pointers which have atleast 50 times the overhead of a function object. Correct me if I'm wrong. - Nick function objects really cannot be 50

Re: [computer-go] Zobrist hashing with easy transformation comparison

2007-02-09 Thread Nick Apperson
. Nic Schraudolph has done some interesting work on this, but as far as I know he still hasn't published it. Maybe if we all sit on him we can finally get him to finish it :-) Erik On 2/9/07, Nick Apperson [EMAIL PROTECTED] wrote: Hey all, I was thinking about our conversation and i decided

Re: [computer-go] MC approach

2007-02-07 Thread Nick Apperson
If it only did one playout you would be right, but imagine the following cases: case 1: White wins by .5 x 100, Black wins by .5 x 100 case 2: White wins by 100.5 x 91, Black wins by .5 x 109 the method that takes into account score would prefer the second case even though it has a lower

Re: [computer-go] Details of AnchorMan

2007-02-05 Thread Nick Apperson
question: should if ( (bs + bt) - (ws - wt) komi ) then black_wins else white_wins. be if ( (bs + bt) - (ws + wt) komi ) then black_wins else white_wins. ? or maybe you meant if ( (bs + bt - ws - wt) komi ) then black_wins else white_wins. ? and floats are rounded down when converting to

Re: [computer-go] New CGOS

2007-02-03 Thread Nick Apperson
Are you going to release the source for it? If you are, some of us might be able to make some suggestions for how to port it to various platforms. Just a thought. BTW, I know that I appreciate the work you are putting in and I'm sure others are as well. - Nick On 2/3/07, Don Dailey [EMAIL

Re: [computer-go] Re: Scaling monte carlo up to 19x19

2007-01-30 Thread Nick Apperson
I believe this to be a good idea, but I couldn't get around some minor problems. Essentially, because the local searches are coupled to one another, it ends up exploding as you consider this coupling (scaling to larger regions). You then have to trade accuracy or have more computing power than

[computer-go] C++ GTP class wrappers

2007-01-26 Thread Nick Apperson
Hey all, don't know if any of you are intereseted, but I am giveing out my GTP wrappers written in C++. I hope to improve them and add more features with time. http://www.nicholasapperson.com/go/computer Any feedback is always welcome. - Nick ___

[computer-go] A ponder only engine

2007-01-26 Thread Nick Apperson
So I was thinking. I wonder if anyone has written a go engine that can play using only the time that it takes their opponent to think. It seems some of your monte carlo programs would be able to do this decently well. Has anyone tried to see how much it hurts the ranking of a program? I would

Re: [computer-go] an idea... computer go program's rank vs time

2007-01-25 Thread Nick Apperson
ofcourse you are correct, P = 1.0 is just the random player. Obviously the ELO as a function of P is going to be continuous. So, being really close to P=1.0 will make for a player that is only very slightly better than random. I think it is also interesting to consider a player worse than

Re: [computer-go] an idea... computer go program's rank vs time

2007-01-25 Thread Nick Apperson
I am writing my program to scale to n processors because I think that is the direction hardware is headed. However, I think clever programming will do more than computational power with go. On 1/25/07, terry mcintyre [EMAIL PROTECTED] wrote: So what would it take to get corporate sponsorship

Re: [computer-go] Can a computer beat a human?

2007-01-24 Thread Nick Apperson
I am thinking that God would use a much larger portion of the memory as code space. Hardcoding lots of the programming. Reason being, there would be no point in learning and go has so many special cases that it might be easier to do it this way (for a being that has lots of time to program that

Re: [computer-go] Can a computer beat a human?

2007-01-24 Thread Nick Apperson
In my original question I stated minimum resources. I agree with you that lots of memory could be highly useful: ... I would say a computer with perfect software, 32 GB of RAM (so a lot) and a 300 Mhz processor (slow processor) would be able to beat a human. (from my original post) So it sounds

Re: [computer-go] Can a computer beat a human?

2007-01-24 Thread Nick Apperson
To do a complete lookup you would need more than 32 GB of memory, but I think that the question was more about making programs smarter more than it was about unlimited hardware. Infact, my question was what is the minimum hardware. That said, 300 Mhz should be plenty to do a lookup. There are

Re: [computer-go] Can a computer beat a human?

2007-01-24 Thread Nick Apperson
actually, one more trip to Gateway Electronics (the local circuit parts store) and my lookup table will be complete... suckers! On 1/24/07, Don Dailey [EMAIL PROTECTED] wrote: On Wed, 2007-01-24 at 21:11 +0100, alain Baeckeroot wrote: Le mercredi 24 janvier 2007 19:56, Stuart A. Yeates a

Re: [computer-go] an idea... computer go program's rank vs time

2007-01-23 Thread Nick Apperson
of the larger branching factor. On 1/23/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: - Oorspronkelijk bericht - Van: Matt Gokey [EMAIL PROTECTED] Datum: maandag, januari 22, 2007 9:59 pm Onderwerp: Re: [computer-go] an idea... computer go program's rank vs time Nick Apperson wrote

Re: [computer-go] Mega transposition table

2007-01-19 Thread Nick Apperson
This is a very good design in my opinion. I was about to ask why you used an index instead of a pointer until I saw that you were using a pointer actually. Using global data like this highlights one of the ways that C++ can blow away Java's requirement that everything must be allocated on the

Re: [computer-go] an idea for a new measure of a computer go program's rank.

2007-01-18 Thread Nick Apperson
especially because computers don't have to click the relevent move with a mouse. They just think it and its done. Make a computer go program move the mouse and click like the human or make a computer go program physically place the stone on the board and if a computer can win in speed go, i'll

Re: [computer-go] Can Go be solved???... PLEASE help!

2007-01-13 Thread Nick Apperson
as you did. Sincerely, Nick On 1/12/07, Don Dailey [EMAIL PROTECTED] wrote: On Fri, 2007-01-12 at 15:43 -0600, Nick Apperson wrote: yeah, there are upper limits placed on computation rate by thermodynamics. 19x19 is way beyond those as Dave pointed out. But, even if you believe

[computer-go] Can Go be solved???... PLEASE help!

2007-01-13 Thread Nick Apperson
oops, accidentally sent to just Don Dailey -- Forwarded message -- From: Nick Apperson [EMAIL PROTECTED] Date: Jan 13, 2007 5:11 PM Subject: Re: [computer-go] Can Go be solved???... PLEASE help! To: [EMAIL PROTECTED] Here is a link for anybody that is interested in why I say 2

Re: [computer-go] Can Go be solved???... PLEASE help!

2007-01-12 Thread Nick Apperson
yeah, there are upper limits placed on computation rate by thermodynamics. 19x19 is way beyond those as Dave pointed out. But, even if you believe that technology will improve and the most revolutionary change yet will come to understanding of physics and that change will give us signifigantly

Re: [computer-go] Can Go be solved???... PLEASE help!

2007-01-12 Thread Nick Apperson
could be highly fruitful and I have been exploring. - Nick On 1/12/07, Vlad Dumitrescu [EMAIL PROTECTED] wrote: Hi, On 1/12/07, Nick Apperson [EMAIL PROTECTED] wrote: yeah, there are upper limits placed on computation rate by thermodynamics. 19x19 is way beyond those as Dave pointed out

Re: [computer-go] Re: Interesting problem

2007-01-05 Thread Nick Apperson
well, i'm pretty sure that against a top player i would need around 20 stones to have much of a shot, but if I remember correctly, at the professional level, a 17-18 stone free placement is needed to take the entire board. A 9 stone handicap is not nearly enough to take the whole board no matter

Re: [computer-go] Re: Interesting problem

2007-01-03 Thread Nick Apperson
The japanese rules have problems and there have been cases where 2 professionals argue about the outcome of a game. They are not clearly defined for obscure cases. In addition, they are not simple. Ing rules and chinese rules are both reasonable sets of rules because there is no room for