> Hashing has always been one of my favorite practical computation ideas (and I even independently came up with it when I was about 13 years old, in 1973).
Well, he WAS a child prodigy who published his first major paper at 18 and got his PhD when he was 20, I wouldn't be at all surprised if he actually did independently come up with the idea of hashing at age 13.
In general I think people should just stop being triggered by Wolfram's comments.
Yes, he does go out of his way to emphasize what he feels are his personal contributions.
Yes, in some cases some of his claims do appear to be a bit exaggerated (e.g. some of his cellular automata stuff)
But at the end of the day, he is still a pretty smart guy who actually writes about math/science topics fairly well, and I think that is far more important than raging every single time he gives himself credit for something or emphasizes his own work on a topic.
Most people who are smart learn that emphasizing that you are smarter than others leads people to hate you and it generally makes one's life more difficult. How did Wolfram not realize this?
Actually, I am sure he did, he's too smart to not have realized this, but I think he has one of those incredibly fragile egos where he needs to validate himself all the time to random people, even if doing has negative impacts on him.
Zuckerberg doesn't do this, Musk doesn't do, Gates doesn't do this, the Google guys do not do this. I could go on and on. So many smart successful people do not have to do this all the time, but Wolfram does. It is so self-inflicted.
> Most people who are smart learn that emphasizing that you are smarter than others leads people to hate you and it generally makes one's life more difficult. How did Wolfram not realize this?
That also speaks tons about people who take offence at (hate) others for giving themselves generous credit.
> That also speaks tons about people who take offence at (hate) others for giving themselves generous credit.
Maybe, but if someone was really beautiful and they had to keep pointing this out to you, would you like to hang around them? Or would you think they are vain and self-centered and basically avoid them because they fit the definition of "obnoxious."
Independently coming up with the idea and independently implementing it are two different things. In college I independently came up with the idea of representing shapes as equations for decreased size and infinite fidelity, before I learned that vector graphics existed and were exactly that. But I had no idea where to start on implementing it.
Most programmers aren't aware of this - but we actually don't really know if one-way functions can actually exist. So all hash algorithms might be built on a false and faulty premise. In fact, whether a good hash algorithm can actually exist, is related to P = NP:
I skimmed over the article, read 10 random paragraphs in full. Looks like the kind of article I'm not likely to learn much from or otherwise find very entertaining.
It's about 6500 words. And these are the 17 you take issue with: and I even independently came up with it when I was about 13 years old, in 1973.
I'm fairly convinced if I pay enough attention to anyone I'll find something to criticise them about, but that generally doesn't say anything about the quality or impact of their work in the world.
Do you have anything substantive to say about the article itself?
Probably. There are only 2^64 possible hash values (Mathematica's Hash function, with no method specified, produces a 32- or 64-bit output depending on platform), and there are many more strings than that which could reasonably be called a "paragraph". It's pretty reasonable to hope that there's a self-describing paragraph out there somewhere.
Hah, "could in theory" vs "could in practice" -- depending on the hash function, it could take hundreds or thousands of processor-years. Maybe Google could do it.
You mean that there exists at least one hash such that hashFunc(paragraph+hash) = hash? Yup, that probability converges to 1-exp(-1) = 63%. So it's no guarantee, but if you have some wiggle room in the paragraph (change the wording slightly etc) you can probably make it work.
It looks that the default Hash implementation depends on whether the system is 32-bit or 64-bit [1]. It's also not clearly documented what the default implementation of Hash really is.
On a 32-bit system, yes, someone could probably do it.
What you are describing sounds similar to a "quine". A quine is a non-empty computer program which takes no input and produces a copy of its own source code as its only output.
on "autocatalitic quines". The Introduction section explains very nice the history of uses of quines in artificial life.
There are some weird parts though in all this, namely that we may think about different life properties in terms of quines:
1) Metabolism, where you take one program, consume it and produce the same program
2) Replication, where you take one program, consume it and produce two copies.
But what about
3) Death
I thought about this a lot during my chemlambda alife project, where I have a notion of a quine which might be interesting, seen the turn of these comments.
A chemlambda molecule is a particular trivalent graph (imagine a set of real molecules, the graphs don't have to be connected), chemical reactions are rewrites, like in reality, when if there is a certain pattern detected (by an enzyme, say) then the patern is rewritten.
There are two extremes in the class of possible algorithms. One extreme is the deterministic one, where rewrites are done whenever possible, in the order of preference from a list, so that the possible conflicting patterns are always solved in the same way. The other extreme is the purely random one, where patterns are randomly detected and then executed or not acording to a coin toss.
Now, a quine in this world is by definition a graph which has a periodic evolution under the deterministic algorithm.
The interesting thing is that a quine, under the random algorithm, has some nice properties, among them that it has a metabolism, can self-replicate and it can also die.
Here is how a quine dies. Simple situation. Take a chemlambda quine of period 1. Suppose that there are two types of rewrites, the (+) one which turns a pattern of 2 nodes into a pattern of 4 nodes, the other (-) which turns a pattern of 2 nodes into a pattern of 0 nodes (by gluing the 4 remaining dangling links in the graph).
Then each (+) rewrite gives you 4 possible new patterns (one/node) and each (-) rewrite gives you 2 possible new patterns (because you glued two links). Mind that you may get 0 new patterns after a (+) or (-) rewrite, but if you think that a node has an equal chance to be in a (+) pattern or in a (-) pattern, then there is twice as possible that a new pattern comes from a (+) rewrite than from a (-) rewrite.
Suppose that in the list of preferences you always put the (+) type in front of the (-) one. It looks that in this way graphs will tend to grow, right? No!
In a quine of period 1 the number of (+) patterns = number of (-) patterns.
Hence, if you use the random algorithm, the non execution of a (+) rewrite is twice more probable to affect future available rewrites than the non-execution of a (-) rewrite.
In experiments, I noticed lots of quines which die (there are no more rewrites available after a time), some which seem immortal, and no example of a quine which thrives.
On practical computers implementing such thing is trivial enough to be borderline uninteresting (at least when done by low-level non-portable means).
The interesting "practical" application is in proving that such a thing can exist in given formal system. By the way the concept of fixed-point combinators (of which Y-combinator is particular implementation) is essentually the same thing. (And in fact such combinators are notionally better match to problem "produce string that contains result of this function applied to it in its contents" than quines)
[Edit: functional->fixed-point and reworded the Y-combinator remark slightly]
I don't know, I get the feeling this project will have a lot of hype but nothing useful come out of it in the end. The team behind it doesn't seem like they have had significant practical successes, or exits.
I am also pretty prejudicial against anything that includes the term "singularity." That term sets of my bullshit detector.
There are so many examples these days. Here's an IBM press release I just stumbled across a few hours ago[1]:
>The two have been able to leverage JD’s expertise in the application of artificial intelligence (AI), blockchain, big data and other new technologies to protect consumers...Recent testing by Walmart showed that applying blockchain reduced the time it took to trace a package of mangoes from the farm to the store from days or weeks to two seconds.
> And the act of that measurement would in effect force the blockchain to pick a definite history.
Wouldn't there be divergence, the further back in history you go between picks, due to collisions? Or is this what the reversible nature of the hashes take care of?
42 comments
[ 4.4 ms ] story [ 102 ms ] threadThe man just can't help himself.
In general I think people should just stop being triggered by Wolfram's comments.
Yes, he does go out of his way to emphasize what he feels are his personal contributions.
Yes, in some cases some of his claims do appear to be a bit exaggerated (e.g. some of his cellular automata stuff)
But at the end of the day, he is still a pretty smart guy who actually writes about math/science topics fairly well, and I think that is far more important than raging every single time he gives himself credit for something or emphasizes his own work on a topic.
Actually, I am sure he did, he's too smart to not have realized this, but I think he has one of those incredibly fragile egos where he needs to validate himself all the time to random people, even if doing has negative impacts on him.
Zuckerberg doesn't do this, Musk doesn't do, Gates doesn't do this, the Google guys do not do this. I could go on and on. So many smart successful people do not have to do this all the time, but Wolfram does. It is so self-inflicted.
That also speaks tons about people who take offence at (hate) others for giving themselves generous credit.
Maybe, but if someone was really beautiful and they had to keep pointing this out to you, would you like to hang around them? Or would you think they are vain and self-centered and basically avoid them because they fit the definition of "obnoxious."
http://www.cs.cornell.edu/courses/cs6830/2009fa/scribes/lect...
It's about 6500 words. And these are the 17 you take issue with: and I even independently came up with it when I was about 13 years old, in 1973.
I'm fairly convinced if I pay enough attention to anyone I'll find something to criticise them about, but that generally doesn't say anything about the quality or impact of their work in the world.
Do you have anything substantive to say about the article itself?
"There’s a function called Hash in the Wolfram Language, and for example applying it to the previous paragraph of text gives 8643827914633641131."
I was a bit saddened to see that this was not "applying it to this paragraph of text gives…", which would have been quite the party trick.
http://m.wolframalpha.com/input/?i=2%5E64+things+%2F+%281+bi...
On a 32-bit system, yes, someone could probably do it.
[1] https://mathematica.stackexchange.com/a/124340
https://en.wikipedia.org/wiki/Quine_(computing)
Here is an example: s = 's = %r\nprint(s%%s)' print(s%s)
https://softwareengineering.stackexchange.com/questions/1113...
More generally, https://stackoverflow.com/a/1764933/1462221 points out that DNA implements a very big and complicated quine.
Does DNA encode it's own logic? That seems testable.
https://link.springer.com/chapter/10.1007%2F978-3-540-92273-...
on "autocatalitic quines". The Introduction section explains very nice the history of uses of quines in artificial life.
There are some weird parts though in all this, namely that we may think about different life properties in terms of quines:
1) Metabolism, where you take one program, consume it and produce the same program
2) Replication, where you take one program, consume it and produce two copies.
But what about
3) Death
I thought about this a lot during my chemlambda alife project, where I have a notion of a quine which might be interesting, seen the turn of these comments.
A chemlambda molecule is a particular trivalent graph (imagine a set of real molecules, the graphs don't have to be connected), chemical reactions are rewrites, like in reality, when if there is a certain pattern detected (by an enzyme, say) then the patern is rewritten.
There are two extremes in the class of possible algorithms. One extreme is the deterministic one, where rewrites are done whenever possible, in the order of preference from a list, so that the possible conflicting patterns are always solved in the same way. The other extreme is the purely random one, where patterns are randomly detected and then executed or not acording to a coin toss.
Now, a quine in this world is by definition a graph which has a periodic evolution under the deterministic algorithm.
The interesting thing is that a quine, under the random algorithm, has some nice properties, among them that it has a metabolism, can self-replicate and it can also die.
Here is how a quine dies. Simple situation. Take a chemlambda quine of period 1. Suppose that there are two types of rewrites, the (+) one which turns a pattern of 2 nodes into a pattern of 4 nodes, the other (-) which turns a pattern of 2 nodes into a pattern of 0 nodes (by gluing the 4 remaining dangling links in the graph).
Then each (+) rewrite gives you 4 possible new patterns (one/node) and each (-) rewrite gives you 2 possible new patterns (because you glued two links). Mind that you may get 0 new patterns after a (+) or (-) rewrite, but if you think that a node has an equal chance to be in a (+) pattern or in a (-) pattern, then there is twice as possible that a new pattern comes from a (+) rewrite than from a (-) rewrite.
Suppose that in the list of preferences you always put the (+) type in front of the (-) one. It looks that in this way graphs will tend to grow, right? No!
In a quine of period 1 the number of (+) patterns = number of (-) patterns.
Hence, if you use the random algorithm, the non execution of a (+) rewrite is twice more probable to affect future available rewrites than the non-execution of a (-) rewrite.
In experiments, I noticed lots of quines which die (there are no more rewrites available after a time), some which seem immortal, and no example of a quine which thrives.
The interesting "practical" application is in proving that such a thing can exist in given formal system. By the way the concept of fixed-point combinators (of which Y-combinator is particular implementation) is essentually the same thing. (And in fact such combinators are notionally better match to problem "produce string that contains result of this function applied to it in its contents" than quines)
[Edit: functional->fixed-point and reworded the Y-combinator remark slightly]
"By combining open source principles, blockchain integration, and leading minds in machine learning we will make AI a global commons for all."
[1]: https://singularitynet.io/
I am also pretty prejudicial against anything that includes the term "singularity." That term sets of my bullshit detector.
>The two have been able to leverage JD’s expertise in the application of artificial intelligence (AI), blockchain, big data and other new technologies to protect consumers...Recent testing by Walmart showed that applying blockchain reduced the time it took to trace a package of mangoes from the farm to the store from days or weeks to two seconds.
[1] https://www-03.ibm.com/press/us/en/pressrelease/53487.wss
Wouldn't there be divergence, the further back in history you go between picks, due to collisions? Or is this what the reversible nature of the hashes take care of?