3 ms·
I do something similar but different.. I take a long sequence of random numbers, using only digits 1-8, like 2983457249874138797257317987593889350741867
by spdustin 10y ago
I do something similar but different..
I take a long sequence of random numbers, using only digits 1-8, like
29834572498741387972573179875938893507418675309
Let's say that goes on for 105 places. Each user then gets an auto-increment ID that I mod 100 (divide by 100 and take the remainder) and add one. I start at that index of the long sequence of digits, and take six characters. If your ID was 112, mod 100 would be 12, plus 1 is 13. Starting at the 13th character, I take six characters: 413879. Then prefix with # - #413879 - and you have a pseudo-random hex code, with neighboring colors being pleasantly visually related.
If it's a dark background, I use letters A-F instead.
If the contrast is insufficient, I'll change a character in the sequence here and there, but it's a lot faster than calculating a new color for everyone, and while everyone doesn't get a unique color, my opinion is that color isn't what makes them unique, it's their username; the color is an extra hint for those able to see it.
EDIT: I called this, when I came up with it a very long time ago, the "sliding doors" technique. I'm sure I'm not the first to do something like that, and it was before the similarly named (abut unrelated, functionally) image replacement trick was popular.