Can anyone please ellaborate? I don't get the confusion or abuse potential
Can anyone please ellaborate? I don't get the confusion or abuse potential
I, L, and O can be confused with the digits 1, 1, and 0, respectively.
He omits U to avoid "accidental obscenity."
As for U, I don't know about that, but I recently stumbled upon the issue that Google's OCR software seems to incorrectly recognize U as II relatively often.
As for the 'U', I'm not sure why the original ULID spec left it out. Thanks for raising this. I'll investigate.
See http://www.crockford.com/wrmg/base32.html, Ctrl-F, search for obscenity.
Edit: Interestingly, since it already omits the letter I, adding U covers all of George Carlins' 7 Dirty Words: https://en.wikipedia.org/wiki/Seven_dirty_words
Is it a joke? Tongue-n-cheek? It must be. I can't understand how it could possibly be a ligament concern. What about other languages? As adults who doesn't use 'fuck' conversationally? If it were a real concern then surly drawing attention to it in the design of the ID is a more obvious then the very rare occasion of 'dirty words' (by some definition of dirty) appearing in otherwise random strings.
So I have to conclude it's a joke, but then what the fuck?
This type of thing puts noise into engineering details that just ends adding to confusion and ambiguity. If there's no (important) reason for 'U' to be in the omission set, then just say it's an arbitrary choice, if there is an OCR, or legibility reason then say that.
Half of my brain says it's funny, and half my brain says it's fucked up.
These things can and do end up in, for example, urls. Think something like an ecommerce store order id. While not likely to happen, the below could happen in an email, and might invite unneeded controversy:
"Dear Mr Customer, Please Click Here to see your order status: http://example.com/status/FUCKUP6433432334234 "
Still, it's a bit culturally specific. It gives the impression of solving a problem that is doesn't. Depending on your market/language a different character might be a better choice. Plus there are quite a few 'bad' words that can still appear.
Filtering and rejecting proposed IDs based on a list of objectionable words seems like a far more realistic solution, then baking a very specific exclusion into the plumbing.
When I wrote a simple password generator as well as omitting u or U I also omitted all of 1iIlL and oO0.
Then I thought - the hell with it, I'll leave out all vowels to reduce the chance of offending someone.
I had to increase the length to compensate. By how much I'll leave as an exercise for the reader.
Sibling posts explain why better. This isn't something that you forget once it has bitten you.