Como hacen todos los desarrolladores, constantemente tratamos con algún tipo de identificadores como parte de nuestro trabajo diario. La mayoría de las veces, se trata de errores o tickets de soporte. Nuestro software, al detectar un error, crea un paquete que tiene un nombre formateado a partir de una marca de tiempo y un número de versión, que es una forma económica de crear identificadores razonablemente únicos para evitar mezclar paquetes. Ejemplo: "Informe de errores 20101214 174856 6.4b2".Generar identificadores aleatorios fáciles de recordar
Mi cerebro no es tan bueno en recordar números. Lo que me gustaría tener es una forma simple de generando identificadores alfanuméricos que son fáciles de recordar.
Se tarda unos 5 minutos para azotar encima de un algoritmo como el siguiente en Python, que produce resultados a mitad de camino utilizables:
import random
vowels = 'aeiuy' # 0 is confusing
consonants = 'bcdfghjklmnpqrstvwxz'
numbers = ''
random.seed()
for i in range(30):
chars = list()
chars.append(random.choice(consonants))
chars.append(random.choice(vowels))
chars.append(random.choice(consonants + numbers))
chars.append(random.choice(vowels))
chars.append(random.choice(vowels))
chars.append(random.choice(consonants))
print ''.join(chars)
Los resultados de este aspecto:
re1ean
meseux
le1ayl
kuteef
neluaq
tyliyd
ki5ias
Esto ya es bastante bueno, pero siento que todavía es fácil olvidar cómo se escriben exactamente, de modo que si te acercas al escritorio de un compañero y quieres ver uno de ellos, aún existe la posibilidad de que surja alguna dificultad.
Sé de algoritmos que realizan análisis de trigrama en texto (digamos que les das de comer todo un libro en alemán) y que pueden generar cadenas que se ven y se sienten como palabras alemanas y por lo tanto más fáciles de manejar en general. Sin embargo, esto requiere una gran cantidad de datos y lo hace un poco menos adecuado para incrustar en una aplicación solo para este propósito.
¿Conoce alguna algoritmos publicados que solucionen este problema?
Gracias!
Carl
Deberías leer esto antes de empezar a pensar en generar palabras aleatorias: http://thedailywtf.com/Articles/The-Automated-Curse-Generator.aspx – Prutswonder
¡Ha, buena idea! ¡Lo tendré en cuenta! –