hash collisions

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

chrisw
Posts: 4313
Joined: Tue Apr 03, 2012 4:28 pm

Re: hash collisions

Post by chrisw »

Ovyron wrote: Tue Feb 18, 2020 10:43 pm I think it's supercilious to assume that when someone misunderstands what you say, it's their fault, and that they can get it if they try hard enough, when perhaps they'd do it if you explained better.
I can't and don't want to force anyone to stand inside my shoes, as they say. You'll see and understand what you see, from your standing.

So let me guess: are you saying that there's literal bugs and metaphorical bugs, all the Stockfish bugs are literal, so it's metaphorically bug-free? Because that's my best guess.
No. Not saying that. Literal/metaphorical is a reference to how people interpret and I can't account for the multiple interpretations people are going to find. My rule is usually, unless it's Bob, to err on the side of benign interpretation, and look for meaning. But each to his own.

(and no, I'm not going to pretend that Dann Corbit is on your side and that you're saying what he's saying. You said with enough effort you can get bug-free software, he said "If your code base has half a million lines in it, there will definitely be bugs", which contradicts your statement, so he's on my side)
Sidedness because you and the other freakily hostile guy who signed up two months ago are on a sided-dynamic, which no doubt is something to do with social "group" psychology and so on. Don't mind me, I'm used to it and it's quite interesting to watch.

There is an exponential size problem with bugs; I used to oversee QC way back, the system was bugs reported to testing, testing works out how to re-create, reports to programmer, programmer fixes it. All is spreadsheeted. Okay, so you get to situation of 200 bugs. 199 have been fixed and tested fixed. #200 gets fixed, but this involved not just testing #200, testers have to go back and test 1-199 all over again because bug fixes have an annoying tendency to recreate past bugs. Obviously this testing method has an explosive growth problem with N. It can be managed with compartmentalising, but is a problem. Some projects just get out of all control. Chess engines need not be in that class. Chess engines are not one page written in BASIC either, and clearly, amateur engine programmers, or programmers scraping some kind of living, can't afford the infrastructure needed at this level, either in their own time, or by buying it in, and it requires separate dedicated teams and they don't really have an incentive to high QC, just one that's "good enough", for them basically. But, if you have the infrastructure to test, and the determination to achieve high QC, and quite possibly the economic incentive, a chess engine is neither of size nor complexity that is intractable to 100% no bug ideology, plus there is plenty of automated testing possible. PERFT for example should take care of all move dynamics, you can write your own stress tests and your own internal slow exhaustive validations, and so on and so on.
Hope you enjoyed the discussion. Have a nice day. Literal or metaphorical? Well, you decide.
chrisw
Posts: 4313
Joined: Tue Apr 03, 2012 4:28 pm

Re: hash collisions

Post by chrisw »

Alayan wrote: Tue Feb 18, 2020 10:58 pm
chrisw wrote: Tue Feb 18, 2020 10:22 pm No, it’s a rule to never explain to those who misunderstand. It’s better for them to work it out themselves, albeit unlikely, and they’re likely misunderstanding for social reasons (social group) which will still remain.
You're trying to weasel your way out of admitting that you repeated multiple time "100% no bug" in a way that left no room for ambiguity - it didn't mean trying to minimize bugs, it meant zero bug.

You repeated multiple times how according to you chess engines are so simple a piece of software that they should be completely bug-free, and would be if only their programmers were not lazy slouches ; and wrongly used Stockfish as an example of software that would have bug-free releases.

It was bad enough when you pretended that anybody that doesn't think your 100% no-bug theory is workable would be lazy irresponsible programmers that would oppose decent QA practices. Now, you're pretending those who don't get the "metaphorical message" that would somehow make your wrong claims right are idiots.
Freaky! You're only signed up two months, that's a lot of anger there. In psychology it's called mobbing, btw. The supposed authority figures (two mods) give you the green light signals that rude abuse is okay on the target, so new sign up thinks he's okay with wild accusations, and besides everybody else is doing it, hey this is how to be part of the group! This is just a technical disagreement, get yourself some balance, kid. But no worries, I am very used to it, mobbing in computer chess is a thing. It's just a little psychopathic though, so, take it easy. Have a nice day,.
chrisw
Posts: 4313
Joined: Tue Apr 03, 2012 4:28 pm

Re: hash collisions

Post by chrisw »

hgm wrote: Tue Feb 18, 2020 11:47 pm I think the main problem is that you take what he says seriously, as if it would be part of a rational discussion, rather than just incoherent rambling.

haha! But not funny, really. I think you ought to know that an authority figure (mod), encouraging mobbing behaviour, is a psychopathy tick box. We can carry on the wild abuse on CTF if you like, it's kind of tolerated over there.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: hash collisions

Post by Ovyron »

chrisw wrote: Wed Feb 19, 2020 12:32 am Freaky! You're only signed up two months, that's a lot of anger there. In psychology it's called mobbing, btw.
Attacking someone instead of their argument is called "ad hominem". Doing so because of how old is his account is called discrimination (before deciding how to continue, chrisw will first look at how old is your account).

When you no longer want to discuss the topic and instead want to discuss how old is an account, the debate is over. I hope you see who "won" it from where you're standing.
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: hash collisions

Post by Rebel »

Alayan wrote: Tue Feb 18, 2020 10:58 pm
chrisw wrote: Tue Feb 18, 2020 10:22 pm No, it’s a rule to never explain to those who misunderstand. It’s better for them to work it out themselves, albeit unlikely, and they’re likely misunderstanding for social reasons (social group) which will still remain.
You're trying to weasel your way out of admitting that you repeated multiple time "100% no bug" in a way that left no room for ambiguity - it didn't mean trying to minimize bugs, it meant zero bug.
The compiler you use creates 100% bug free code.

So bug free complicated programs do exist.
90% of coding is debugging, the other 10% is writing bugs.
chrisw
Posts: 4313
Joined: Tue Apr 03, 2012 4:28 pm

Re: hash collisions

Post by chrisw »

Ovyron wrote: Wed Feb 19, 2020 12:47 am
chrisw wrote: Wed Feb 19, 2020 12:32 am Freaky! You're only signed up two months, that's a lot of anger there. In psychology it's called mobbing, btw.
Attacking someone instead of their argument is called "ad hominem".
multiple aggressions, signalled as okay by two mods, is very definitely mobbing behaviour, made more obvious when a recent sign up finds it okay to engage. That gets called out. Everybody’s sign up date us on the left side of their posts, btw.
Doing so because of how old is his account is called discrimination (before deciding how to continue, chrisw will first look at how old is your account).

When you no longer want to discuss the topic and instead want to discuss how old is an account, the debate is over. I hope you see who "won" it from where you're standing.
This is not the first time you expressed your motivation in terms of winning/losing. It’s too personal and puts me in psychology mode, so prob better just avoid you, huh?
For the record, chess engines are sufficiently non complex to be tractable to 100% no bug ideology. Just because the National Union of Chess Programmers plus some others objects en masse to the idea doesn’t render it wrong. Actually the personalisation and anger generated suggests it to be right. Angry mobs usually are wrong. Have a nice day.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: hash collisions

Post by Ovyron »

Rebel wrote: Wed Feb 19, 2020 1:14 am The compiler you use creates 100% bug free code.
It can't if the code is doing something the programmer didn't intend, or in a way the programmer didn't want. Bugs exist because the compiler has no idea about what the programmer wants to achieve.

If it did code would look like this:

Code: Select all

main(chess)
{
 get(board_postion);
 return(best_move);
}
There it is, a chess program that gets a position, returns the best move, and it's 100% bug-free. But a compiler wouldn't know where to start.
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: hash collisions

Post by Dann Corbit »

Fruit was very, very close to bug free.
In fact, that is the great lesson of Fruit.
Look at Fabian's use of assert() in the original program.
Beautiful.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
Alayan
Posts: 550
Joined: Tue Nov 19, 2019 8:48 pm
Full name: Alayan Feh

Re: hash collisions

Post by Alayan »

chrisw wrote: Wed Feb 19, 2020 12:32 am Freaky! You're only signed up two months, that's a lot of anger there. In psychology it's called mobbing, btw. The supposed authority figures (two mods) give you the green light signals that rude abuse is okay on the target, so new sign up thinks he's okay with wild accusations, and besides everybody else is doing it, hey this is how to be part of the group! This is just a technical disagreement, get yourself some balance, kid. But no worries, I am very used to it, mobbing in computer chess is a thing. It's just a little psychopathic though, so, take it easy. Have a nice day,.
Hope you enjoyed trying to psycho-analyze me.

From before this thread, I actually didn't like much bob and hgm postings. Them being mods is completely irrelevant. When I read about hgm's method of not doing legality checking and letting ridiculous moves be done (even if very rarely) in the search tree as long as the engine stays crash-proof, it made me laugh. I'd not have expected to take their side in some argument.

You're calling me "freakily hostile", are you joking ? You're the guy who made post after post after post about how people who don't agree with your views on what is a bug and on "100% no bug" are lazy slouches that deserve to be fired. My previous message was confronting you to your own attitude in this thread, which you rightly guessed I dislike. I'll let others judge, but I don't think I crossed any decency bounds there. I do think that you read it as very hostile because of the light it puts you in and because it called your recent postings in this thread dishonest.

"get yourself some balance, kid" is a good example of hostility if you want one, with some patronizing on top. This, or your ramblings on my signup date, are good examples of how you shift the argument from the claims to the people making the claims.

I don't think it's worth arguing further, but hopefully things are clear enough for the onlookers.

Have a nice day too !
Alayan
Posts: 550
Joined: Tue Nov 19, 2019 8:48 pm
Full name: Alayan Feh

Re: hash collisions

Post by Alayan »

Rebel wrote: Wed Feb 19, 2020 1:14 am The compiler you use creates 100% bug free code.

So bug free complicated programs do exist.
You mean to say that the compiler itself is bug-free ?

Compilers are very refined software, because it's one area were high-quality is mandatory and they are the focus of a lot of attention.

But compilers are not bug-free.

Here is GCC's C++ bug tracker. Several (potential) bugs are reported here every day.

Now, depending at which level you decide to call something "complicated" and how much time talented people spend looking at the code over and over after a total feature freeze, you might get something that is bug-free. You won't be able to prove it to be so, though, unless you put the threshold for "complicated" really low. And actually succeeding becomes exponentially unlikely with the complexity of the program. Which, once again, doesn't mean that proper QA practice to catch issues, and to fix known issues, are not useful.