Only 5.4 hours before you hit a UUID collision. That's insane
post
Either this is faked for the meme or something is very very wrong.
I'm leaning heavily towards faked for the meme.
If you actually were trying to get collisions, you'd save all previously generated ids and check all of them for a match with the newest one.
Not only would this increase the chance of a collision (not enough that it should matter, but still), but it would more closely approximate a real use case - if you use UUIDs you're not just in trouble if one specific id is duplicated, it's usually a problem if any id is not unique.
But the presented snippet is simpler and shorter and is close enough to what a naive test might look like, so it's well suited to getting the joke across.
The only way I could imagine this not being fake is if it was achieved in a noncompliant Js implementation. Which seems highly unlikely given the screenshot looks like the Chrome console.
If this is reproducible without chicanery, I'm terrified
Without chicanery? Yes
Without luck? No
I think this is beyond luck. This is astronomical. It's orders of magnitude beyond what is lucky for our entire civilization to have produced in its entire existence
I'd put it down to a shit library or pseudorandomness before something happening that's so lucky it functionally should never happen.
is this cryptomining? /s
crypto - as in cryptography, not cryptocurrency - is just the library he's using to generate the 128-bit random UUID. The snippet is interesting because he matched the original UUID in just over 5 hours. You'd expect to need more than 10^38 guesses to pick the same number again, which, even at 1 guess every microsecond, means something like 10^22 years.
I wanted to downvote you for failing to pick up on the sarcasm, but then you went and did all that math that I was too lazy to do and I ended up upvoting you instead. Damn you!
Sorry, I forgot to add the /s.
But thank you for the calculations, it's actually interesting :) I was thinking about that myself, but didn't bother to do the math.
I thought its reminiscent of cryptomining as it also consist of guessing an arbitrary number just for fun.
Internet sarcasm is hard, and lemmy has a very general audience :) I'm always happy when someone gives me an excuse to do the math I was already curious about - it's often not worth it, for just my own curiosity, but even a sarcastic or disingenuous prompt reminds me that there's other casually curious people out there.
This is the fucker who put us on the worst timeline! Get their ass!
An opportunity to share one of my favourite StackOverflow questions of all time!
It's well worth reading through the answers and the comments, but here's a little sampler platter:
This will run for a lot more than hours. Assuming it loops at 1 GHz (which it won't - it will be a lot slower than that), it will run for 10790283070806014188970 years. Which is about 83 billion times longer than the age of the universe.
damn - so maybe serveral threads generating guids is a better idea?
4 threads on a quad core processor would make it run in 20 billion times the age of the universe - so yeah, that would help a lot.
Please tell this is fake. I want to be ignorant about this.
i was curious how unlikely exactly this would be.
The randomUUID method generates a new version 4 UUID
which is, According to the linked documentation, a 128bit number, with some "significant bits" being changed (no idea what that's about, lets just say it's a 128bit number)
the chance of hitting a predfined number would be
1/(2^128) or 1/340282366920938463463374607431768211456
assuming your cpu does one comparison per Step at 4Ghz (4 billion per second) (idk how many steps it needs in reality, it doesn't matter, more then one tho)
that would take roughly
2.696 x 10^21 years, which is
2 x 10^11 or 200000000000 times the age of the universe
(using the expected value of geometric distribution (1/p), so 1/(1/(2^ 128)) = 2^128 steps)
brother you're using the wrong thing. First of all you are using crypto that's going to give you some memecoins that are obviously going to collide after 55 hours as what are you even doing not rugpulling the thing day 2?
Second of all, I am pretty sure you should use "RandomUUIDIToldYouSo" module for non-colliding hashes. We all know THAT thing gets its Noise from our parents' instructions on doing a specific thing that keep changing arbitrarily every time you ask.
all 32 comments