jueves, 21 de enero de 2016

5 consejos para combatir el Síndrome de Infórgenes


Resulta anecdótico que el mundo que creamos con la tecnología termine adoptando símiles de la vida real o de nuestra cultura: virus, troyanos, zombies, etc.

Quisiera hablar en este artículo sobre algo que he denominado el "Síndrome de Infórgenes" (por buscar una similitud con el síndrome de Diógenes), el cual afecta a más del 75% de la sociedad y de las empresas de todo el mundo, y que se caracteriza por la acumulación constante e innecesaria de información basura.

Durante las dos últimas décadas hemos vivido una explosión descomunal de la información, gracias a internet y a una creciente y económica tecnología. ¿El resultado? Toneladas de información que se almacenan con poca o sin ninguna utilidad. Es decir, generamos, recogemos y almacenamos basura informativa.


Invito a cualquier lector a hacer una revisión de su disco duro, de sus pendrives, de su correo electrónico, de sus aplicaciones en la nube (Evernote, Pocket, Dropbox, Instagram...). Invito a cualquier empresa a revisar la información que almacena en sus servidores y en sus equipos de escritorio: ¿cuánto tiempo ha pasado desde la última vez que utilizaron dicha información? ¿Qué valor o utilidad reales tiene realmente dicha información? El hecho de que hayamos sustituido nuestros viejos archivadores físicos por pequeñas unidades de almacenamiento o invisibles repositorios en la nube, nos crea la ilusión de que apenas consumimos espacio de información. La ilusión del reducido espacio físico, unido a la ingente capacidad de estos medios de almacenamiento, nos lleva a creer que no estamos malgastando nada. Pero a la hora de buscar algo necesario, todo lo que no es necesario nos hará difícil esta labor, lo que al final se traduce en malgastar tiempo, esfuerzo y dinero. Es como vivir en una habitación en la cual vamos acumulando, día tras día, objetos y enseres que se apilan y se olvidan.  Al final, lastramos nuestra propia vida con esos objetos que no son útiles o que no son aprovechados correctamente.

La información nos puede esclavizar y perjudicar si no hacemos un uso útil y óptimo de la misma.

Mis consejos para lidiar, en términos generales, con el Síndrome de Infórgenes son los siguientes:
  1. Antes de guardar información, evaluar si esa información será útil en el futuro.  Esta sencilla decisión evitará acumular mucha información innecesariamente. Hay que discernir entre lo que es interesante de lo que es importante, entre lo que es posible de lo que es realmente.
  2. Clasificar y organizar bien toda la información. Esto facilitará encontrar rápida y eficientemente la información que queremos y evitará el estrés de bucear perdidos en un mar de información. 
  3. Compartir información en un repositorio común. En el caso de una organización, comunidad o empresa, nos permite tener un punto único para la información. Compartimos información, accedemos a información de otros y además, nos ayuda a identificar la redundancia de información, evitando repetir el trabajo innecesariamente.
  4. Revisión y limpieza periódicas de la información. Si hay información que no has usado durante mucho tiempo, y que es poco probable que vuelvas a necesitar, elimínala. Si hay información que no tiene utilidad real para ti o para los demás, elimínala. Si no quieres deshacerte de ella, muévela a un repositorio de respaldo (backup), pero quítala de tus sistemas habituales. Si guardas documentos de hace más de uno o dos años, es muy posible que en ese momento te fueron útiles, pero desde entonces no los has necesitado, pero tienes la duda de si en el futuro podrían ser necesarios. Cópialos en un NAS, en un servidor de almacenamiento, en un disco duro externo, en un repositorio en la nube... pero en tu sistema de trabajo quítalos para trabajar día a dia con lo que realmente necesitas en cada momento. No vivas con la preocupación constante de que no los quieres perder. Los tendrás siempre disponibles en caso de que sean necesarios, pero tu espacio de trabajo, en el día a día, estará liberado de información poco útil en ese momento, a favor de la información que realmente necesitas ahora.
  5. En el caso de una empresa, recomiendo un tener plan y un sistema para hacer resúmenes o registrar estados de la información importante a partir del detalle de la información. Un buen ejemplo es generar informes diarios, semanales, mensuales, trimestrales y anuales a partir de toda la información de la empresa. Esta información resumida es la realmente importante para tomar decisiones operativas, estructurales, organizativas y estratégicas. Ocupa muy poco y contiene la esencia de la acividad y el estado de la empresa en el mismo momento en que se genera (foto), contemplando también la evolución y la tendencia usando un histórico. El detalle de la información sobre la que se ha construido, se puede mover a un repositorio para consultas puntuales, y así liberar los sistemas de trabajo del día a día. Para llevar a cabo esta propuesta, es muy útil un sistema de Business Intelligence, el cual, aunque pueda parecer un gasto importante, con el tiempo es una inversión muy amortizable y beneficiosa, no sólo en dinero, si no también en esfuerzo, tiempo y recursos.
Imagen: WikiCommons: https://commons.wikimedia.org/wiki/File:Monta%C3%B1a_de_basura_junto_al_lago_Managua.jpg
Montaña de Basura junto al lago Managua

jueves, 22 de enero de 2015

Copias de Seguridad en OpenLDAP

En este artículo os voy a mostrar como exportar e importar datos. De esta manera nos aseguramos de tener un backup o copia de seguridad de nuestro directorio activo.

EXPORTAR LDAP

Asumiendo una sesión de terminal Linux, como usuario root, introduciremos el siguiente comando:

slapcat -l ruta/archivo_backup.ldif

Si deseamos exportar también la configuración de la base de datos de LDAP, utilizaremos la siguiente sintaxis:

slapcat -l ruta/archivo_backup.ldif -f ruta/archivo_config.conf

IMPORTAR LDAP

La importación de los datos es un poco más compleja, ya que requiere que se elimine la base de datos para añadir todos los datos del fichero ldif que se exportaron en el paso anterior.

Para ello, desde la terminal Linux, y como usuario root, Seguiremos los siguientes pasos:

1) Detenemos el servicio de LDAP:

/etc/init.d/slapd stop

2) Eliminamos los ficheros de la base de datos de LDAP:

rm -Rf /var/lib/ldap/*

3) Importamos los datos del backup de LDAP:

slapadd -v -c -l ruta/archivo_backup.ldif

Si deseamos recuperar también el fichero de configuración de LDAP:

slapadd -v -c -l ruta/archivo_backup.ldif -f /etc/ldap/slapd.conf

4) Reconstruimos los índices de la base de datos de LDAP:

slapindex -v

5) Otorgamos los ficheros de base de datos al usuario LDAP:

chown -Rf openldap.openldap /var/lib/ldap/*

6) Arrancamos el servicio de LDAP:

/etc/init.d/slapd start

Librería de encriptación en Python

En esta entrada quisiera compartir con vosotros una librería en Python que he desarrollado para encriptar y desencriptar vuestros datos, pudiéndola adaptar a vuestras necesidades. Esta librería la podéis descargar desde el siguiente enlace: https://drive.google.com/file/d/0B1-JQdWrVRabY1FDTEdvcG5CSWM/view?usp=sharing

Al final del código tenéis comentados diferentes bloques de código para poder probar la librería.

A continuación os explico, en términos generales, para qué sirve cada parte del código.

CODEBASE (Código base)

El código base contiene un juego de 140 caracteres (sin repetir). Este juego de caracteres debe ser el mismo utilizado en los textos que se desean encriptar. El juego que he preparado contiene la inmensa mayoría de caracteres utilizados en el idioma español.

MATRIX (Matriz de códigos)

La matriz es un array de códigos, mediante el cual se realiza la trasposición de caracteres para la encriptación y desencriptación de las datos.

Esta librería ya viene con una matriz predeterminada, pero se puede generar una nueva matriz mediante la función create_random_matrix().

La matriz contiene tantos elementos o filas como número de caracteres tiene el código base. Cada uno de estos elementos o filas es una cadena de texto con los mismos caracteres que el código base, pero dispuestos de forma aleatoria. Para obtener una de estas filas, create_random_matrix() utiliza internamente la función get_random_line().

ENCRIPTAR

Para encriptar un dato, se utiliza la función encrypt(), a la cual se le pasan dos parámetros de tipo string: la cadena de texto a encriptar, y la clave utilizada para encriptar.

Internamente, el proceso de encriptar posee dos pasos que realiza automáticamente la función encrypt(): encriptar (filtro 1) y codificar (filtro 2).

El proceso de encriptar lo lleva a cabo la función code(), la cual realiza la trasposición de caracteres de la cadena de texto a través de la clave, y utilizando la matriz de códigos. El resultado es un galimatías que utiliza los caracteres del código base.

El proceso de codificar lo lleva a cabo la función code_hex(), la cual transforma la cadena encriptada en una secuencia hexadecimal.

El resultado final de la encriptación es una cadena en hexadecimal que contiene, exactamente, el doble de caracteres que la cadena original.

DESENCRIPTAR

Para desencriptar el dato encriptado, se utiliza la función decrypt(), a la cual se le pasan dos parámetros de tipo string: la cadena de texto encriptada, y la clave utilizada para encriptar.

El proceso de desencriptar posee dos pasos que realiza automáticamente la función decrypt: decodificar (filtro 1) y desencriptar (filtro 2).

El paso de decodificar lo lleva a cabo la función decode_hex(), la cual transforma la cadena en hexadecimal en una cadena de texto encriptada, la cual es un galimatías que utiliza los caracteres del código base.

El paso de desencriptar lo lleva a cabo la función decode(), la cual transforma la cadena de texto encriptada en el texto original. Esto lo realiza mediante la clave y la matriz de códigos, realizando el proceso de trasposición inverso al que se utilizó para la encriptación.

El resultado final de la desencriptación será la cadena de texto original, la cual contiene, exactamente, la mitad de caracteres que la cadena encriptada.