Off topic as usual, but interesting from the developer and user point of view.
If you are going to give me a 10 char ID, please make it all lower case and without numbers, I hate hitting shift or having to move my eyes from the keyboard to the numpad and back.
Neat app and one of the best examples of a keep-it-simple webapp I've seen.
But let's talk about the ID. Sure, it's a hundred and forty trillion, but it's also less than 48 bits. Note that every visit to the site's root URL generates a new ID, and compare with The Fridge which (very reasonably) uses a 128-bit-equivalent ID: 25 alphanumerics!
I'm not buying this "hard to type" argument. First, an app would ideally just allow you to get a more-typable version if you specifically request it. Second, how often are you typing in IDs? When the URL is on paper or on another device? I'm thinking it's not often enough to truly affect usability. Third, I use a keyboard that doesn't even have a numpad and somehow I get by.
Finally, let's say we spec out that we do want at least 47 bits of IDs. The site can get there by using 10 lowercase letters or 8 of all alphanumerics. Game over. Now the lowercase option comes down to adding two characters for the sake of better typability, which is a crummy trade. Not only for Twitter reasons but because the longer the URL is, the less shareable it looks.
I see this type of ID everywhere and I'm curious as to how they are created and how "random" they are (the chances of generating two of the same). A python snippet would be great, of course :)
Not really. Random.sample samples from a population multiple times: that means no doubles (unless they were in the population as well). Try it: sample 30 times from string.ascii_lowercase. Since you did it with 10, less than len(population), it didn't croak, but it also doesn't get you the numbers mentioned above.
Here's one I like better: "".join(random.choice(string.ascii_lowercase) for _ in xrange(len))
Comments
Off topic as usual, but interesting from the developer and user point of view.
If you are going to give me a 10 char ID, please make it all lower case and without numbers, I hate hitting shift or having to move my eyes from the keyboard to the numpad and back.
So, aren't 26 lowercase chars enough?
26^10 = 141,167,095,653,376
A hundred and forty trillion options!
* Hey Tim, nice app btw.
Neat app and one of the best examples of a keep-it-simple webapp I've seen.
But let's talk about the ID. Sure, it's a hundred and forty trillion, but it's also less than 48 bits. Note that every visit to the site's root URL generates a new ID, and compare with The Fridge which (very reasonably) uses a 128-bit-equivalent ID: 25 alphanumerics!
I'm not buying this "hard to type" argument. First, an app would ideally just allow you to get a more-typable version if you specifically request it. Second, how often are you typing in IDs? When the URL is on paper or on another device? I'm thinking it's not often enough to truly affect usability. Third, I use a keyboard that doesn't even have a numpad and somehow I get by.
Finally, let's say we spec out that we do want at least 47 bits of IDs. The site can get there by using 10 lowercase letters or 8 of all alphanumerics. Game over. Now the lowercase option comes down to adding two characters for the sake of better typability, which is a crummy trade. Not only for Twitter reasons but because the longer the URL is, the less shareable it looks.
I see this type of ID everywhere and I'm curious as to how they are created and how "random" they are (the chances of generating two of the same). A python snippet would be great, of course :)
Not really. Random.sample samples from a population multiple times: that means no doubles (unless they were in the population as well). Try it: sample 30 times from string.ascii_lowercase. Since you did it with 10, less than len(population), it didn't croak, but it also doesn't get you the numbers mentioned above.
Here's one I like better: "".join(random.choice(string.ascii_lowercase) for _ in xrange(len))
Hmm, if that's the case then 26x25x24... still gives you twenty trillion unique ids with non-repeating chars. Not bad after all.
Will have that in mind.
Or better, give the option to change to a vanity id.