hash collisions
Moderators: hgm, Rebel, chrisw
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: hash collisions
Sorry, but I have worked on a "bank program". It is nowhere NEAR as complex as a chess program. A million lines of code has nothing to do with algorithm complexity, just the amount of "work" that has to be done. Amazing how you are an expert on everything, and then wrong about everything as well.
-
- Posts: 4339
- Joined: Tue Apr 03, 2012 4:28 pm
Re: hash collisions
You mean you were allocated a non-complex task? I guess, fortunately for the bank, someone in damage control saw you coming.
We’re both idiots. It’s just that I know it and you don’t.
A million lines of code has nothing to do with algorithm complexity, just the amount of "work" that has to be done. Amazing how you are an expert on everything, and then wrong about everything as well.
Also I bluff better, your insufferable overbearing rightness on everything is a dead giveaway.
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: hash collisions
No. I wrote the ENTIRE thing. Also the ENTIRE code for a software package that was used by several clinics in Mississippi. Accounts receivable, accounts payable, patient accounts, recording office visits and what was done. Billing insurance (which is messy but not complex). A ton of built in reports, to trace each data entry station, display doctor production reports. And NONE of that was complex, just big.
Again, a swing and a miss.
You have to know that eventually you strike out.
Again, a swing and a miss.
You have to know that eventually you strike out.
-
- Posts: 4339
- Joined: Tue Apr 03, 2012 4:28 pm
Re: hash collisions
Yeah, haha, a non-complex bank project. let’s get back to chess engines. Chess engines are not banks.bob wrote: ↑Sat Feb 22, 2020 9:12 pm No. I wrote the ENTIRE thing. Also the ENTIRE code for a software package that was used by several clinics in Mississippi. Accounts receivable, accounts payable, patient accounts, recording office visits and what was done. Billing insurance (which is messy but not complex). A ton of built in reports, to trace each data entry station, display doctor production reports. And NONE of that was complex, just big.
Again, a swing and a miss.
You have to know that eventually you strike out.
Chess engines are composed of a few simple, testable, self-contained modules that take input and give an output without stomping on other objects. Absolutely no reason why you, or anyone else, can’t reliably construct such modules, guaranteed, and link them together where they perform the same code over and over and over again. It’s neither rocket science nor banking.
I repeat, you are personally massively invested in bigging up the complexity of chess programming.
-
- Posts: 7021
- Joined: Thu Aug 18, 2011 12:04 pm
- Full name: Ed Schröder
Re: hash collisions
As far as I am concerned the discussion is about the possibility of bug-free software. From recent previous posts:
Me:
Me:
You:
As such it doesn't make sense to list examples of inferior software, bugs are part of programming, to assume (or in your words to know) not all can't fixed is a lack of imagination or underestimation of the capabilities of others. As lone individuals writing chess engines we don't have the resources to do expensive, time consuming test methodologies, beta test procedures before we release. (Y)our experiences as lone individuals are not a good measuring rod.
90% of coding is debugging, the other 10% is writing bugs.
-
- Posts: 433
- Joined: Fri Dec 16, 2016 11:04 am
- Location: France
- Full name: Richard Delorme
Re: hash collisions
In writing Amoeba, as a lone individual, I spent 99.9% of my time testing and 0.1% writing code. I have limited financial resources, but I have an invaluable resource: time.
Richard Delorme
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: hash collisions
Not sure how to proceed. You said "banks don't tolerate errors" or something to that effect. So I gave some counter-examples where really BIG banks had been bitten by really serious bugs. Pick some application you like and I'll see what I can dredge up. You mentioned Fruit 2.1... Fabien, for some strange reason or another, released versions through 2.3.1. I don't have any of that source to read his comments.Rebel wrote: ↑Sat Feb 22, 2020 9:56 pm As far as I am concerned the discussion is about the possibility of bug-free software. From recent previous posts:
Me:
You:
As such it doesn't make sense to list examples of inferior software, bugs are part of programming, to assume (or in your words to know) not all can't fixed is a lack of imagination or underestimation of the capabilities of others. As lone individuals writing chess engines we don't have the resources to do expensive, time consuming test methodologies, beta test procedures before we release. (Y)our experiences as lone individuals are not a good measuring rod.
Most software engineering books give a bunch of case studies in the last half. Examples where the specifications had ambiguities or omissions; Cases where the design didn't match the specs. Cases where the programming didn't match the design, cases where the testing was not done correctly, and finally cases where everything along the way was done "by the book" and yet the software STILL had problems, some serious, some not so serious.
I've already given quotes showing that the consensus is that you can't test away all bugs. You can eliminate a lot. But if you were to plot the number of bugs discovered on the y axis, time on the x axis, you would get a somewhat parabolic shape with the max at the beginning, and the fewest bugs detected at whatever the current date is. But it never reaches zero.
As far as # of testers... how would you rate IBM? MicroSoft? Apple? Google? Linux? GCC? All of those have LARGE testing staff. And yet bugs still are released, and some of them fixed as time moves on. So if IBM can't do it, who can? Who is this mythical all-knowing group that can test any piece of software and eliminate every last bug before the software is released? It would be earth-shattering news and would certainly make all of the SE texts since it would be a "first".
BUT, just to come back around full circle, "debugged chess program." NOW you say "As lone individuals writing chess engines we don't have the resources to do expensive, time consuming test methodologies, beta test procedures before we release. (Y)our experiences as lone individuals are not a good measuring rod." So which is it? Chess programs have bugs? Or they don't have bugs. Can't possibly be both. I claim they do. You just explained why they do. So why the argument???
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: hash collisions
I also have a lot of time. But I also have access to huge computing resources. I have literally played many millions of games during testing, also. And in spite of all the effort, and all the games played, I STILL find the occasional bug. And will continue to do so based on experience. I'm sure Ed/Chris will just say I am a lousy programmer and they can do much better. I'd first like to see their program(s) that can beat mine; and then have time to carefully examine their programs for the presence of bugs. It's easy to talk a good game. MUCH harder to actually write that bug-free code. And convince anybody that is actually IS bug-free.
-
- Posts: 12545
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: hash collisions
"Not sure how to proceed. You said "banks don't tolerate errors" or something to that effect. "
When I was in the military, I had a friend named Paul Abeyta. We were serving in Turkey, and had an APO address, so mail had serious.lag time. His bank statement came and it said that he had 333000 in the bank when it should have said 3000. So he wrote a letter to the bank explaining the problem. They said, all is fine, no mistake. So he wrote another letter. Now, they found that one day's.receipts from Exxon of Florida got deposited in his bank. The Exxon account was the compliment bitwise and somehow the bits got flipped. So they took out the money. Problem is, they took out ALL of the money, even Paul's. Now remember, this an overseas APO in 1980, so he has checks bouncing for six weeks before the matter is settled. Just goes to show, "No good deed will go unpunished."
Now, the standard for banks, plane guidance systems and medical equipment should be very high. But sloppy programming and undefined behavior can happen anywhere. I do think that we want people to exercise due diligence, especially with things like our lives and our money.
When I was in the military, I had a friend named Paul Abeyta. We were serving in Turkey, and had an APO address, so mail had serious.lag time. His bank statement came and it said that he had 333000 in the bank when it should have said 3000. So he wrote a letter to the bank explaining the problem. They said, all is fine, no mistake. So he wrote another letter. Now, they found that one day's.receipts from Exxon of Florida got deposited in his bank. The Exxon account was the compliment bitwise and somehow the bits got flipped. So they took out the money. Problem is, they took out ALL of the money, even Paul's. Now remember, this an overseas APO in 1980, so he has checks bouncing for six weeks before the matter is settled. Just goes to show, "No good deed will go unpunished."
Now, the standard for banks, plane guidance systems and medical equipment should be very high. But sloppy programming and undefined behavior can happen anywhere. I do think that we want people to exercise due diligence, especially with things like our lives and our money.
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: 4556
- Joined: Tue Jul 03, 2007 4:30 am
Re: hash collisions
For Microsoft the story is very interesting, for Windows at some point they decided that bug testing wasn't worth the cost and basically laid off their entire testing team and instead relied on reports by their customers to fix bugs (the customers became beta testers that worked for free), which led to Windows 10 being the most buggy OS in the history of the company. This video elaborates on that.