Las
combinaciones de las 26 letras internacionales del abecedario tomadas de cuatro
en cuatro alcanzan el número de 456.976. La combinatoria fue una cuestión de
las matemáticas que estudié en mi quinto curso de bachillerato; ahora no sé en
qué curso lo estudiaran los chavales aunque es posible que en ninguno salvo que
se dediquen a alguna especialidad técnica. En todo caso, WPIC es, pues, una de
las casi medio millón de combinaciones posibles.
Estamos
hartos de acrónimos, ya se sabe, esos vocablos inexistentes «… formados por la unión de elementos de dos
o más palabras…». En este caso el título de esta entrada responde a las
iniciales, en inglés, de un supuesto «Código
de Identificación Personal Mundial», o lo que es lo mismo y en inglés, «World Personal Identification Code».
Como
cuando un autor está buscando título para uno de sus libros, una de las
cuestiones fundamentales hoy en día es saber si lo que estamos pergeñando
existe con anterioridad o al menos algo parecido, para lo cual es menester
consulta obligada al sr. Google ese, que en un periquete nos devolverá cientos
de miles cuando no millones de entradas en internet hablando del asunto. Puesto
manos a la obra, me encuentro con que «WPIC» o «W.P.I.C.» existe pero ni por
asomo se refiere al tema del que quiero ocuparme. Un instituto canadiense de relaciones
matrimoniales, algún instituto norteamericano de carácter médico e incluso una
emisora de radio son las páginas más significativas que he logrado encontrar.
Otro
asunto es buscar no tanto por el palabro sino por el concepto. En esta era de
la globalización sorprende no encontrar nada referido al asunto, salvo un
intento recogido en páginas francesas de establecer un código de corte similar
para empresas a nivel mundial, pero no para personas, aunque el hecho de que yo
no haya encontrado nada no quiere decir que no exista. En todo caso me da
igual, ya que mis fines son otros.
Tras
cuarenta años y unos cuantos lenguajes de programación de ordenadores
utilizados en mi vida profesional y personal, le ha llegado el turno a aprender
uno nuevo: Python. No es un lenguaje reciente ya que según reza la Wikipedia
fue creado a finales de los años ochenta del siglo pasado en los Países Bajos
por Guido van Rossum, con lo que cuenta ya con una antigüedad superior al
cuarto de siglo. Mi motivación para, mejor dicho, necesidad de, aprender Python
me ha hecho tomar contacto con este lenguaje y he podido realizar a lo largo
del pasado verano un par de cursos MOOC disponibles, gratuitos y bastante
interesantes que me han dado un baño básico suficiente para entender algo y
aproximarme a la consecución de mis fines.
Aficionado
como soy a las frases, ya he comentado en otras entradas aquel famoso proverbio
chino que dice que «Si lo oigo, lo olvido; si lo veo, lo recuerdo; si lo hago, lo sé».
Por ello lo mejor en estos casos es ponerse una meta a alcanzar y no parar
hasta conseguirlo, por aquello de que con la parte práctica del asunto
asentaremos conocimientos, solventaremos escollos y se nos quedará una base
para el futuro.
El
desarrollo informatizado que me propuse como ejemplo y que he bautizado como
WPIC es tratar de conseguir un código, de ocho posiciones, formado por letras
mayúsculas, menos la «O», números del 0 al 9 y las letras minúsculas
internacionales de forma que cualquier ciudadano del mundo disponga del suyo de
forma unívoca. Para ello he utilizado unos algoritmos sencillos que suponen
operaciones lógicas y matemáticas y una serie de 61 caracteres básicos para
generar el código, lo que da un número de posibilidades cercano a doscientos
billones, si bien no todos los códigos son válidos porque existen ciertos
controles internos de verificación. Conviene señalar que es reversible, esto
es, que a partir de un código podemos obtener los datos que hemos utilizado
para construirlo, que no son otros que el código internacional numérico de país
según la tabla ISO-3166-1 y un número identificativo nacional. Como lo mejor es
un ejemplo, diremos que para un español, código 724 del país España, con un
Documento Nacional de Identidad supuesto de 41.325.627, el WPIC asignado sería
«gP44P0lj» o para un supuesto número
de identidad 7.523.321 de un alemán, código 276 del país Alemania, el WPIC
asignado sería «MLnThv2y».
Ni
que decir tiene que esto es una simple elucubración, aunque seguro que en el
futuro, si es que no ocurre ya, alguna empresa de esas de la globalización se
está planteando la necesidad de este tipo de código además de que a los muchos
fisgones, autorizados o no, que hay por la red también les vendría muy bien,
pero para implantarlo serían necesarias reuniones al más alto nivel mundial y
el empleo de algoritmos de cifrado y criptografía mucho más potentes de los que
he empleado yo en este ejemplo, que no deja de ser para andar por casa.
Una
cosa que sabía, pero que no recordaba, era que en los mundos de Windows y en el
caso particular de un usuario de Google, no se distinguen las mayúsculas y las
minúsculas. Con ello, si queremos obtener un correo de Google, un @gmail.com,
con nuestro flamante WPIC podemos tener problemas al no distinguirse mayúsculas
de minúsculas. Con este planteamiento he dado una vuelta de tuerca al programa
de forma que el código pase a tener 10 posiciones pero esté construido solo con
los números y las mayúsculas internacionales exceptuando la letra «O» por
aquello de su similitud con el número cero.
Para
quienes pudieran estar interesados en obtener sus WPIC’s de 8 o 10 posiciones, en
el siguiente enlace estará
disponible por un tiempo un fichero de tipo «.zip» que contiene varios
ejecutables y módulos necesarios. Con expandir este fichero en una carpeta de
nuestro ordenador bajo cualquier sistema operativo Windows, y sin tener que
instalar nada, dispondremos del programa ejecutable «WPICpython.exe», libre de
virus, que voy a decir yo, con el que se pueden calcular los WPIC’s de 8 y 10
posiciones introduciendo el código de país y el número personal que sería
equivalente al DNI. español. Mi manejo del lenguaje Python es todavía muy
pedestre en lo que se refiere a interfaces gráficas, por lo que este programa ejecuta en modo de ventana de comando de forma muy elemental y con pocas alharacas,
pero obtiene lo que vamos buscando.
Por
aquello de verificar los resultados, he realizado el mismo programa en otro
lenguaje, en este caso Visual Basic, en el que los manejos gráficos son más
conocidos por mí aunque todavía no dominados. Está junto al otro en la misma
carpeta antes comentada con el nombre «WPICvisualbasic.exe»,
pero lamentablemente al ejecutarle en su ordenador sin instalación Vd. puede
encontrarse que le faltan por cargar determinados módulos denominados DLL’s,
con lo cual fallará, salvo que se ponga manos a la obra y registre estos DLL’s
en su registro de Windows, cuestión no muy complicada pero tampoco sencilla y
que no podemos explicar aquí.
Suerte
con sus WPIC’s. Los míos son «oArWv3bz»
y «5T08HDL7YQ» en 8 y 10 posiciones
respectivamente. ¿Cuál son los suyos? No me los diga, que al ser reversibles
podría determinar, siempre que sean correctos, el país y número de
identificación utilizados, aunque por el momento y hasta que no se globalice «solo podría hacerlo yo» ya que «este» WPIC es mío y solo mío…