¿Qué pasaría si un sitio web se quedara sin nombres de usuario?

Otros han respondido que el rango de nombres de usuario es realmente grande, y si se agota, el sitio solo puede expandir el rango.

Compartiré una historia que explica un poco cómo se hace esto.

Fui llamado para ayudar con un sitio web que se había quedado sin valores de ID numéricos para sus cuentas de usuario. El síntoma de esto es que nadie puede crear un nuevo usuario. El programa genera una excepción y se queja de un valor de ID duplicado (los valores enteros de desbordamiento en MySQL simplemente se reemplazan con el valor máximo). Su sitio web aún funcionaba, pero ningún usuario nuevo podía crear cuentas.

Exploré su base de datos y descubrí que, de hecho, sus ID se habían expandido al valor de 2 ^ 31-1, que es el número entero máximo de 32 bits con signo. Dado que los ID de MySQL aumentan y no reutilizan valores ni rellenan huecos, tuvimos que expandir el rango de valores. Hacemos esto usando ALTER TABLE y cambiando el tipo de datos INT de 32 bits para la ID con un BIGINT de 64 bits.

La tabla de cuentas de usuario, previsiblemente, fue referenciada por muchas otras tablas en la base de datos. Así que fue una buena idea actualizar esas tablas primero. De lo contrario, tan pronto como ampliamos el rango de ID de usuario, encontraremos rápidamente otro error en alguna otra tabla que haga referencia al nuevo usuario. O peor, no arrojaría un error, sino que simplemente haría referencia silenciosa al usuario con la ID máxima anterior. Había alrededor de 30 de esas tablas que debían actualizarse. Entonces podríamos actualizar la ID de la tabla de usuarios principales.

Quizás se pregunte cómo podrían haber agregado 2 ^ 31-1 cuentas de usuario. Eso es más de 2 mil millones, y ciertamente no tenían tantas cuentas.

El hecho era que no todos los valores en el rango estaban siendo utilizados. Hubo grandes diferencias entre los valores de ID, causados ​​cuando la creación de la cuenta de usuario falló por alguna razón, pero el valor de ID se incrementó de todos modos. Señala que solo porque tiene un amplio rango de valores posibles , no significa que se usen todos los valores consecutivos.

Esta historia trata sobre valores de ID numéricos, pero los mismos principios se aplican a las cadenas de texto, como los nombres de usuario.

Un nombre de usuario de Twitter tiene hasta 15 caracteres y puede contener letras, números o caracteres especiales. Eso significa que el número total de nombres de usuario válidos de Twitter es aproximadamente 1 por 10 a la 24ª potencia, o 1,000,000,000,000,000,000,000,000 posibles nombres de usuario. Hay aproximadamente 7 mil millones de personas en el planeta, por lo que cada ser humano actualmente vivo tendría que tener alrededor de 140,000,000,000,000 de cuentas de Twitter antes de que Twitter se quedara sin nombres de usuario.

Hasta mediados de los 90, AOL permitía nombres de pantalla de solo hasta diez caracteres, sin caracteres especiales permitidos. Su siguiente gran salto fue a 16 caracteres, luego permitieron el uso de una dirección de correo electrónico como nombre de usuario, y luego permitieron caracteres especiales.

Los sitios y servicios web más populares hoy en día están diseñados teniendo en cuenta la escalabilidad, por lo que no sufren este tipo de evolución granular: comienzan con el espacio de nombres que pretenden usar y, por lo tanto, no tienen que volver a incluir nuevos tipos de nombres de usuario Un sistema de nombres heredado.

Pero, si sucediera, probablemente sucedería mucho como en el ejemplo anterior.

La gestión de la identidad es un área muy interesante y es algo que requerirá evolución a medida que los espacios de nombres múltiples se vuelvan cada vez más amplios. Siempre ha habido colisiones de nombres. Algunas veces se han resuelto agregando un apellido (Robert Smith, por ejemplo). Algunas veces se han resuelto con sufijos (Jr. o III), por ejemplo). A veces mediante el uso de una forma diminuta. A veces, al incluir un identificador adicional (dos niños con el mismo nombre en la misma oferta de clase obtienen la primera inicial de su apellido adjunto).

Mi expectativa es que la práctica de agregar información adicional al nombre en lugar de agregar galimatías continuará siendo el enfoque dominante. Si esto se combina con un medio para retirar con gracia los nombres inactivos o en cuclillas, entonces, como lo han demostrado otros, el conjunto de nombres disponibles es lo suficientemente grande como para acomodar todos los nombres necesarios.

También espero que los nombres / identidades evolucionen para que las personas tengan identidades tanto públicas como privadas y que eventualmente habrá suficientes problemas sobre la identidad como para que existan políticas públicas a su alrededor.

El cambio de nombre masivo es algo que ha sido objeto de acción gubernamental en el pasado. Mira el cambio de nombre en Suecia como un ejemplo. Creo que ha habido acciones similares en otros países a lo largo del tiempo.

Así que no temo que esto se resuelva a través de la evolución de la tecnología y forzado por la política en algún momento durante los próximos 10 a 50 años. El galimatías como nombre simplemente no será suficiente.

Digamos que queríamos un nombre de usuario que pueda tener de 4 a 8 unidades de largo . Dado que actualmente solo podemos elegir entre cualquiera de las 26 letras (sin distinción entre mayúsculas y minúsculas) y cualquiera de los números de un solo dígito 0-9, podemos tener exactamente:

36 * 35 * 34 * 33 = 1,413,720
36 * 35 * 34 * 33 * 32 = 45,239,040
36 * 35 * 34 * 33 * 32 * 31 = 1,402,410,240
36 * 35 * 34 * 33 * 32 * 31 * 30 = 42,072,307,200
36 * 35 * 34 * 33 * 32 * 31 * 30 * 29 = 1,220,096,908,800
Si agrega todos los números en negrita, obtendrá alrededor de 1.3 billones de nombres de usuario no idénticos.

Según Katie Stanton, vicepresidenta de estrategia internacional de Twitter, Twitter tiene alrededor de 360 millones de registros de usuarios y adquiere alrededor de 460,000 registros nuevos por día, lo que equivale a 165 millones de registros nuevos en un año en promedio .

Para averiguar el tiempo necesario cuando podríamos tener que extender / modificar las restricciones de nombre de usuario, simplemente tenemos que dividir 1,220,096,908,800 por 165 millones para obtener 7,394 años .

Entonces, para responder a su pregunta, sus nietos no tendrían que preocuparse por usar una cantidad obscena de letras o números en su nombre de usuario.

No estoy seguro si los CEO de las plataformas de redes sociales han pensado en un dilema como este. Estoy seguro de que podrían haber sacado el tema con alguien de TI o un matemático y él lo habría respondido como yo.

Digamos que estamos en el año 9,406 y Twitter todavía existe, el CEO simplemente podría hacer una nueva regla que genere que las 26 letras distingan entre mayúsculas y minúsculas para evitar nombres de usuario difíciles de manejar.

Esta es una gran pregunta. La respuesta obvia parecería ser que el sistema podría cambiarse para permitir nombres adicionales. Lo que le sorprenderá es que ya tenemos un sistema de identidades que podría usarse para los nombres de usuario y hacer que los diversos sistemas sean más robustos y casi infinitos sin ningún servicio que necesite cambiar su sistema. Las URL y los URI de correo electrónico son el mejor sistema para cadenas de identidad / tokens / nombres jamás inventados. Prácticamente no hay posibilidad de colisiones si usamos direcciones de correo electrónico y / o URL de identidad (como OpenId), por lo que podría usar el mismo nombre de usuario exacto en todos los sitios web que usaron el URI / URL como nombre de usuario.

El sistema de dominio que permite que todos y cada organización tengan dominios casi ilimitados que cada uno de ellos puede controlar. Los únicos problemas son las marcas comerciales (que siguen siendo un problema para cualquier sistema de nombre de usuario) y las políticas de TLD (donde .com y .org son bastante abiertos y están bien regulados, los TLD de código de país son menos potenciales que Libia significa que las telecomunicaciones de Libia la persona designada tiene mucha libertad para administrar su TLD). Y si cada persona y organización tuviera sus propios dominios, tendrían aún más libertad y control de la identidad. Actualmente, tener un dominio de gmail o yahoo o ISP es una identidad débil que se puede tomar sin muchos recursos legales.

Por lo tanto, si tiene un sitio web, considere usar URI como nombre de usuario y, mejor aún, deje que todos usen su propia autenticación en lugar de la dependencia actual de las contraseñas en cada sitio. Dado que la mayoría de los sitios web tienen el respaldo de enviar restablecimientos de contraseña a un correo electrónico, efectivamente el usuario ya controla la autenticación, entonces, ¿por qué no salir del negocio de nombre de usuario y autenticación y permitir:

  • nombres de usuario ilimitados
  • sin problemas de marca registrada ya que los usuarios traen sus propios nombres
  • Menos problemas de autenticación y sin necesidad de contraseñas (la autenticación financiera y de otro nivel superior puede seguir teniendo autenticación adicional, incluidas las preguntas basadas en el conocimiento). Consulte: OpenID, SAML, correo electrónico …

Problemas de programación como este realmente suceden. Algún programador o diseñador se sienta, especifica algo y piensa que nadie necesitaría más que esto. (Ejemplos: Y2K, IPV4, límite de 640K, etc.).

Lo que pasa es que refactorizas . Descubres un nuevo límite. Agregas más espacio. Lo haces de una manera inteligente, por lo que los antiguos siguen siendo válidos. En algunos casos, es tan simple como aumentar el tamaño de algunos campos en una base de datos y cambiar la interfaz de usuario para validar los nombres más largos. A veces lleva mucho más tiempo arreglarlo.

Pero aumenta el tamaño y continúa. Que sea un tamaño aún más grande que nadie necesitaría nunca más . ¿Recuerdas que el límite de 640 K (límite de 16 bits de DOS)? Fue reemplazado por el límite de 4 GB (límite de 32 bits). Entonces sucedió de nuevo. y fue reemplazado por un límite que es tan grande (límite de 64 bits) que es difícil imaginar que todo se agote. Pero entonces los desarrolladores probablemente estarán maldiciendo en 20 años sobre eso también.

Bueno, hay una diferencia entre los nombres de usuario máximos posibles y los nombres de usuario deseables. Si bien es cierto que sería difícil quedarse sin nombres de usuario, en el sentido estricto de la palabra, se quedará sin uno que tenga sentido en inglés (o cualquier idioma) mucho más rápido. No estoy seguro de que un nombre de usuario de “gddhytrfh” sea tan memorable o deseable.

Lo que suele suceder es que el campo de la base de datos que contiene el nombre de usuario se expande para que pueda contener más caracteres, y el sitio web se cambia para permitir nombres de usuario más largos. Los nombres de usuario existentes permanecen sin cambios, pero los nuevos usuarios pueden crear nombres de usuario más largos.

No va a suceder Pero si lo hizo, solo amplíe el rango. Recuerda a Google expandiendo el rango cuando el número de visitas en Gangnam Style creció más que su tamaño int.

Si tal evento ocurriera, entonces agregar un solo carácter multiplicaría significativamente los posibles nombres de usuario. Al agregar un solo carácter, multiplica los posibles nombres de usuario por al menos 26.

Pero la mayoría de los sitios web admiten grandes cantidades de caracteres, por lo que es más probable que investiguen y, si fuera un bot, lo limpiarían. Un bot parece ser la única forma razonable en que un sitio web moderno podría quedarse sin nombres de usuario.

O posiblemente elimine cualquier nombre de usuario con contenido de usuario cero que tenga al menos 2 años o algún otro número arbitrario.

Franklin Veaux dio una excelente respuesta y Scott M. Stolz la completó.

solo me gustaría agregar que … aunque puedes obtener tantos como franklin señaló, ese twitter hace una comprobación para ver si ya existe un nombre.

Mi punto es que las personas tendrán dificultades para encontrar un nombre de usuario que quieran mucho antes de que se agoten los nombres. pero, por supuesto, Twitter o Facebook nunca permitirían que eso suceda. menos eso es el lado realista cubierto

El sitio web debería tener que extender la longitud de los nombres de usuario o permitir el uso de más letras en el alfabeto o incluso proponer un alfabeto específico con combinaciones de letras diferentes de las del alfabeto utilizado actualmente.

Y suponiendo que se quede sin nombres de usuario, lo que por cierto significaría que las personas que intentaron solucionar el problema en primer lugar serían muy malas en su trabajo; entonces debería, nuevamente, permitir que se usen nuevas letras o restringir a los nuevos miembros en el sistema hasta que algunos usuarios eliminen su cuenta y liberen nombres de usuario.

Una pregunta relacionada es: ¿necesitaremos nombres de usuario únicos en el futuro? Facebook y LinkedIn han hecho un buen trabajo al usar su gráfico social para permitir identificadores duplicados. Hay múltiples Tom McGarrys en ambas redes, pero las personas que me buscan saben cuál elegir según los atributos sobre mí, por ejemplo, edad, ubicación, historial laboral, etc. Si bien hoy necesito un nombre de usuario único para iniciar sesión, tal vez gané No en el futuro.

Aunque es imposible que esto suceda, siempre pueden aumentar la longitud máxima de los nombres de usuario si es necesario.

Además de hacer que el nombre de usuario sea más largo, podrían agregar otro medio de diferencia que el nombre de usuario. Como número de móvil

Entonces, sé que esto es probablemente obvio, pero lo que sucedería es que ya nadie podría registrarse porque se tomarían todos los nombres.

Hasta que un programador lo arregle, eso es.

Abra más o diferentes tipos de nombres de usuario, sospecho.