I built something like this for Python[1]. To get UUID-like uniqueness requires often way too many words, even if the Shakespearean-style might make this easier to remember (but also increadibly difficult for non-native speakers to understand).<p>For human-id I just went with groups of the 100 most common adjetives, nouns and verbs combined together in roughly the order they would appear in a sentence.<p>The output is nonsenese, of course, but I hope the combination of words understandable to anyone with a basic knowlegde of English might help.<p>1. <a href="https://github.com/orf/human_id" rel="nofollow">https://github.com/orf/human_id</a>
Interesting project however clearly I am uncultured swine if these are considered "easy to remember", I wonder if it would work with something more lowbrow. Simpsons anymore?
What is the use case for having to remember UUIDs?<p>I can see how it might speed up writing say, SQL queries if you don't have to look up the UUID but not sure that this warrants the effort of committing this to memory.
Added this to my UUID as a Service API! [0]
Just add ?readable to any endpoint!
Eg. <a href="https://uuid.rocks/json?readable" rel="nofollow">https://uuid.rocks/json?readable</a><p>[0] <a href="https://uuid.rocks/" rel="nofollow">https://uuid.rocks/</a>
>"Drucill Hubert Lewse the Comer of Avera rejoices Fiann Craggy Florie and 5 hard trouts"<p>This is considered shakespearean? Cool idea, but i think the implementation needs some work.
There's also RFC1751 [<a href="https://tools.ietf.org/html/rfc1751" rel="nofollow">https://tools.ietf.org/html/rfc1751</a>].<p>A slightly different take on the same sort of problem.
> it's impossible to remember 32 random characters in UUID<p>Is it, though?<p>Plenty of folks memorise 16-digit credit card numbers - I've known retail employees who can recite those back after reading them just once.<p>Back when I was a sysadmin, I taught myself to type 25-digit Windows product keys from memory.<p>32 digits doesn't seem an unreasonable stretch, given time and practice.
Interesting project. Getting a reading in radio spelling is easy to do. But getting correct sentences out of a random predefined length string is way harder.
This is a fun project, but for practical purposes I think the PGP Word List [1] would be more useful. It encodes any bytes (UUID or otherwise) as common words from a list chosen for distinct sounds.<p>[1] <a href="https://en.wikipedia.org/wiki/PGP_word_list" rel="nofollow">https://en.wikipedia.org/wiki/PGP_word_list</a>
I've been ideating about a base-48 (KJNTPBMYRVSH vs AIOU) version of decimal ids. Ids like "sunihuvi" or "panimaso" which are (hopefully) memorable and easy to pronounce with any accent. 5 letters can encode till 254803968.<p>Algorithm wizards, can I get error correction if I dedicate a character for that?
Why would you want this?<p>The entire point of UUIDs is I can quickly generate them knowing that they will be universally unique, I don’t need to check for their existence anywhere.<p>This dramatically increases the likelihood of collision to the point I can almost certainly guarantee that they won’t be unique in any non-trivial context.
Yawn, why re-invent the wheel ?<p>UUID = --> universally unique <-- identifier<p>Why reduce the entropy just to make it look pretty ?<p>As for the people who say oh, but I can't remember/recognise "e0e93156-c68b-493d-bf31-19048db7dd9e"...<p>Well sure, but git invented that wheel before you. Just use the last 11 characters for local discussions/notes/whatever.<p>Finally, what about people who are non-native/fluent in English ?<p>"e0e93156-c68b-493d-bf31-19048db7dd9e" flows accross borders and languages<p>"Romeo Romeo Where For Art Thou Romeo" could easily be meaningless gibberish for a non-native/fluent English speaker, and also opens up totally un-necessary issues of pronunciation and spelling.<p>There is also the possibility certain words might mean something different in another language. Such as the famous Colgate in Spanish which means "go hang yourself" !