I once spent a full day debugging a program for doing a convolution, because it failed my test for the surface area under the convolution result being the product of the surface area of the input curves, but was instead about 50% larger. I just couldn't see what I was doing wrong, so I started simplifying the program as much as I could by stripping away parts in a way that would preserve the error. I was finally left with a one-line program:
writeln(1.000e-26);
The output of this program was
1.486542e-26
When I complained about this to our IT department theys said the floating-point printing code issued by the Pascal compiler took some shortcuts 'for efficiency'...
hash collisions
Moderators: hgm, Rebel, chrisw
-
- Posts: 27787
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
-
- Posts: 12537
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: hash collisions
Note that they have something called a "bug tracker" which implies not only that they take note of program flaws, but it's also have a methodology to actually address these problems. Now, this is a product that is given away for free. That shows it can be done. Even in a free software environment.Alayan wrote: ↑Wed Feb 19, 2020 1:49 amYou 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.
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.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
-
- Posts: 27787
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: hash collisions
On the contrary, I try to prevent mobbing by making potential mobbers aware that whatever nonsense you write and false accusations you make are only worth to be laughed at. Rather than something to be taken seriously and get so worked up about that they feel would feel the urge to refute it, so that they would get drawn into your spiral of aggressive verbal abuse.
The quoted posting should be seen as a plea to the author of the preceding posting to just drop the issue and go away (which he wisely did), thus dispersing the mob, as in the eyes of an unbiased reader the issue has been solved long since.
I can add that your trolling now has completely hijacked this thread, which originally was a serious question about treatment of hash collisions by an active engine developer. If trolling was a violation of the charter, I would have had to ban you already...
-
- Posts: 4313
- Joined: Tue Apr 03, 2012 4:28 pm
Re: hash collisions
Well, that's a challenge.
UABPD Case 201207676
UAB Police Department
Criminal Investigation Division
102F Police Headquarters Building
1117 14th Street South
Well, you did once. Maybe the Criminal Complaint worked if you've not done it again.
NEVER threatened anyone with any sort of violence on the RF either.
Your posts contain far too many abusive fecal references, despite multiple complaints, you don't seem able to get it into your head just how disgusting your language actually is. Not to mention utterly inappropriate. This is a computer chess forum where one would have assumed a certain minimum of manners would apply, you go regularly through any minimum level and into the sewers like its a natural place for you to be.
And neither do I have abuse fantasies.
You mean like positing that chess engines are not sufficiently complex for 100% bug elimination to be a thing? That acceptance of, or excuse of, bugs in chess engines is a question of attitude. Or that "chess engine complexity" is on a pedestal here. Seem entirely legitimate viewpoints. But I see that anyone disagreeing with you is automatically "illegitimate".About the only thing I fantasize about is that maybe one day you will participate in a legitimate discussion,
offer real data, and maybe learn something in the process. But is clearly a fantasy, it would seem...
-
- Posts: 4313
- Joined: Tue Apr 03, 2012 4:28 pm
Re: hash collisions
Well, I tracked back the thread to the first piece of personal commenting, and it came from YOU.hgm wrote: ↑Wed Feb 19, 2020 10:09 amOn the contrary, I try to prevent mobbing by making potential mobbers aware that whatever nonsense you write and false accusations you make are only worth to be laughed at. Rather than something to be taken seriously and get so worked up about that they feel would feel the urge to refute it, so that they would get drawn into your spiral of aggressive verbal abuse.
The quoted posting should be seen as a plea to the author of the preceding posting to just drop the issue and go away (which he wisely did), thus dispersing the mob, as in the eyes of an unbiased reader the issue has been solved long since.
I can add that your trolling now has completely hijacked this thread, which originally was a serious question about treatment of hash collisions by an active engine developer. If trolling was a violation of the charter, I would have had to ban you already...
"Then writing chess programs is the wrong buiseness for you." The inversion of actual reality is a clear personal insult there. And the comment, along with various others, is actually a shot at social group exclusion. You also use of a lot of “we” language, as if there is an in-group and an “other”. Later, you use words like: paranoia, delusion, rambling. Bob chimes in with dishonest and so on. That's authority figures (mods) not only becoming personal *first* in the thread, but also giving the green light for mobbing, and it’s motivation, plus plenty later continuation green lights for continued mobbing, and mobbing there was, for sure.
The accusation “trolling” and the implied threat is another continuation and encouragement of mobbing behaviour with exclusion objective. It is not "trolling" to take a minority position. The consensus view that chess engines are by necessary definition hiding unknown bugs is unproven. The consensus view that the number of possible bugs in a chess engine is intractably large is not proven. Have a nice day.
-
- Posts: 4556
- Joined: Tue Jul 03, 2007 4:30 am
Re: hash collisions
I think I do: it's at the point at which the cost of being bug-free becomes higher than what you can improve in the program.
The only way to kill all bugs is to dedicate time to finding and fixing current ones, and stop new code from entering that could have bugs. That'd require some code freezing.
Chess is an exponential problem, so to keep improving a program you need exponential improvements. Stockfish's development has been amazing! Adding about 50 ELO per year, on top of the strongest A/B engine available, with no sign of stopping, unlike chess programs of the past that had linear growth, that even gave the illusion of being close to maxing out potential progress because they were plateauing.
It is the greatest chess example of what community collaboration can achieve, and they've made the right decisions in many areas as shown by their feats, and they decided that the cost of being bug-free wasn't worth it, and that releasing a buggy Stockfish was fine, because the improvements that chess requires don't allow you a single second of code freezing to squash bugs, because if you don't increase exponentially, your improvement flat-lines.
Bugs aren't inevitable, but whoever is willing to pay the price for bug freedom will never reach the top.
If you were in charge of Stockfish, with your attitude towards bugs, it could never have gotten off the ground.
-
- Posts: 27787
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: hash collisions
Well, there is no telling what crazy people might consider insults or not.
Fact is that all chess programs of any significance (strength-wise) use approximate and heuristic techniques, known to be prone to failure. One can mention null move (fails in the presence of zugzwang), transposition hashing (can cause failure of repetition detection), most forward-pruning techniques, too short hash keys (inviting key collisions and possible blunders)... Reject all of those as bugs, because their manifestation "damages the reputation of your brand", and you would not be able to reach any strength.
So no, not an insult at all, just a dry, clean fact: those not willing to use the best we have because it is not perfect, better not take up chess-engine programming. You don't have to agree with that, and you can even argue against it, but you cannot whine 'insult' because of it. To tell a Flat Earther the Earth is a sphere is NOT an insult.
If there is any insult here, it is self-inflicted. By taking a stance that so obviously conflicts with reality, you made a fool of yourself. It is not the person who points out the discrepancy of between what you confess and what you actually do who delivers the insult. Such a person just exposes the insult that you prepared for yourself.
Defending a minority POV is not trolling. Constantly changing such a view, denying that you ever had it, accompanied by nasty remarks against people that pointed out you had it, totally misrepresenting the views of people that argued against your views... Yes, in my book that is trolling.
Fact is that all chess programs of any significance (strength-wise) use approximate and heuristic techniques, known to be prone to failure. One can mention null move (fails in the presence of zugzwang), transposition hashing (can cause failure of repetition detection), most forward-pruning techniques, too short hash keys (inviting key collisions and possible blunders)... Reject all of those as bugs, because their manifestation "damages the reputation of your brand", and you would not be able to reach any strength.
So no, not an insult at all, just a dry, clean fact: those not willing to use the best we have because it is not perfect, better not take up chess-engine programming. You don't have to agree with that, and you can even argue against it, but you cannot whine 'insult' because of it. To tell a Flat Earther the Earth is a sphere is NOT an insult.
If there is any insult here, it is self-inflicted. By taking a stance that so obviously conflicts with reality, you made a fool of yourself. It is not the person who points out the discrepancy of between what you confess and what you actually do who delivers the insult. Such a person just exposes the insult that you prepared for yourself.
Defending a minority POV is not trolling. Constantly changing such a view, denying that you ever had it, accompanied by nasty remarks against people that pointed out you had it, totally misrepresenting the views of people that argued against your views... Yes, in my book that is trolling.
-
- Posts: 550
- Joined: Tue Nov 19, 2019 8:48 pm
- Full name: Alayan Feh
Re: hash collisions
This was not debated as far as I can tell ; it's proper software development practice.Dann Corbit wrote: ↑Wed Feb 19, 2020 9:17 am Note that they have something called a "bug tracker" which implies not only that they take note of program flaws, but it's also have a methodology to actually address these problems. Now, this is a product that is given away for free. That shows it can be done. Even in a free software environment.
-
- Posts: 4313
- Joined: Tue Apr 03, 2012 4:28 pm
Re: hash collisions
still insulting? actually it’s pretty much my opinion of you, not without actual quotable cause either. I’ll ask the psychotherapist next time I see her, but “crazy” would not be the diagnosis, sorry about that. Disagreeing with the National Union of Chess Programmers and whatnots is not “crazy”, and the stronger the counter reaction from the entrenched interests, the more likely the disagreement is correct.
if you need to invent the opposition’s position it’s usually a sign of, never mind. Pointless.
insults or not.
Fact is that all chess programs of any significance (strength-wise) use approximate and heuristic techniques, known to be prone to failure. One can mention null move (fails in the presence of zugzwang), transposition hashing (can cause failure of repetition detection), most forward-pruning techniques, too short hash keys (inviting key collisions and possible blunders)... Reject all of those as bugs,
well, both you and Bob, for sone reason, perhaps you are similar, are often insulting people’s core identity. How does it sound if you’re told “you’re unsuited and shouldn’t be in the business of being an academic”? Is not good, is it? Or as Bob tells lawyers they are not real lawyers, or programmers they are not real programmers. You do have form here, you realise?
because their manifestation "damages the reputation of your brand", and you would not be able to reach any strength.
So no, not an insult at all, just a dry, clean fact: those not willing to use the best we have because it is not perfect, better not take up chess-engine programming.
to tell an academic he should not be an academic is an insult. I tell you why is not the same as flat-earthers. First is unlikely it’s their core identity, second it’s a belief, they can choose. As an insult it’s not in same league.You don't have to agree with that, and you can even argue against it, but you cannot whine 'insult' because of it. To tell a Flat Earther the Earth is a sphere is NOT an insult.
you just can’t stop can you?
If there is any insult here, it is self-inflicted. By taking a stance that so obviously conflicts with reality, you made a fool of yourself.
I offered you to continue the personal attack fest over on CTF but seems you really prefer polluting here instead,
I remind you again, YOU initiated the personal abuse. YOU signalled in multiple ways to initiate a mobbing. You’re still at it.It is not the person who points out the discrepancy of between what you confess and what you actually do who delivers the insult. Such a person just exposes the insult that you prepared for yourself.
Defending a minority POV is not trolling. Constantly changing such a view, denying that you ever had it, accompanied by nasty remarks against people that pointed out you had it,
hahahahaha! Exactly what you do. Projection.
totally misrepresenting the views of people that argued against your views...
I’ll think up a suitable expression for a weak person who recruits mobbers and then encourages them.Yes, in my book that is trolling.
Have a nice day and why not just shut up?
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: hash collisions
I don't follow the above. What is the "it" in "it can be done?" The implication is you are talking about the compiler, but I suspect I am wrong. And again, detecting and fixing bugs is only a part of the problem that can be solved. The rest of the problem is "detecting the REST of the bugs that testing doesn't expose."Dann Corbit wrote: ↑Wed Feb 19, 2020 9:17 amNote that they have something called a "bug tracker" which implies not only that they take note of program flaws, but it's also have a methodology to actually address these problems. Now, this is a product that is given away for free. That shows it can be done. Even in a free software environment.Alayan wrote: ↑Wed Feb 19, 2020 1:49 amYou 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.