Ir al contenido principal

Cero o Uno, that is the question

Recuerde las máquinas o computadoras solo entienden Ceros y Unos (0,1) encendido o apagado para ser más exactos. Cuando tengamos computadores quánticos capaces de procesar tres estados o más esta idea tendrá que cambiar. Pero mientras es sólo eso, ceros y unos.




Esa fabulosa canción que tanto le gusta y que desea guardar en su computador, se almacena en algún formato que a la larga será interpretado en ceros y unos. No se almacena sonido. No se almacenan acordes. Son ceros y unos en diversas secuencias que son interpretados como música.

Lo mismo ocurre sí se almacenan imágenes, hojas de cálculo y cualquier otro medio o recurso.

Esa fabulosa página web, tal cual Ud la ve en su navegador, es sólo la representación de un recurso, recurso que a su vez es tan sólo ceros y unos. No se almacena caracteres ni etiquetas, son solo secuencias numéricas  que se interpretaran como tales. Se obtiene una representación de ese recurso.

TODO lo que Ud ve en la pantalla de su ordenador, computador e incluso móvil, es tan sólo la representación de diversos recursos; ceros y unos representados en algún modo o formato que los humanos podamos entender.

Esto tiene, entre otras, dos consecuencias bien importantes.

La primera es que es IMPOSIBLE hacer nada útil, como humanos, con esos recursos si no tenemos el programa que interprete el formato que requerimos o los medios físicos para leer las fuentes de almacenamiento.

Segunda, la representación para humanos es incidental y no necesariamente requerida en lo que respecta a la comunicación entre las partes del ordenador y entre ordenadores entre si.

La primera de ellas, a su vez, acarrea una consecuencia aterradora al largo plazo, la denominada era del oscurantismo digital.

Hagamos un ejercicio para exponer mejor lo que intento explicar.

Voy a buscar entre mis viejos cajones de la universidad, en los tempranos 90’s, cuando el diskette de 3,5 era el medio de almacenamiento más popular.

Listo!! Eureka!! Tengo un Diskette disponible, en buen estado y con archivos guardados.

Primer reto:

¿Dónde DIABLOS leo ese Diskette?, ¿Con cuál hardware?

Ese medio de almacenamiento es un fósil de los 90’s y ya casi nadie del vulgo, del común, usa las unidades de disco necesarias para leer estos dispositivos, y yo no soy la excepción. No tengo una unidad de diskettes. Ninguno de mis amigos cercanos posee una.

Puntaje: Diskette 1, Humano 0.


Segundo reto:

Imaginemos que logro leer el, ya odioso, diskette del primer reto. Supongamos que está en buen estado y que no tiene sectores dañados. Sus datos no se han degradado.

Revisando los archivos me encuentro con que son, en su mayoría, archivos con la extensión .wq1.

¿Qué demonios es un archivo .wq1?

Después de acudir por ayuda al grandioso San Google, jajaja, caí en cuenta que se trataba de archivos de la, en su tiempo, popular hoja de cálculo Quattro Pro de la extinta Borland para el sistema operativo DOS.  De esa misma búsqueda, averigüé que podía abrir o leer esos archivos usando la suite de ofimática “Corel WordPerfect Office X7”.

No conseguí descargar Corel WordPerfect Office X7, pero digamos que, al menos, ya sé cómo leer esos archivos, declaremos ½ punto a mi favor.

Puntaje: Diskette 1.5, Humano 0.5


¿Ya ven por donde va la idea?

Imaginen dentro de 50 años. Va a ser titánico intentar leer un archivo de los años 90. Ni hablar de épocas anteriores.

Con el devenir del tiempo, todos esos archivos respaldados, serán inútiles sino tenemos el programa que permita interpretar ese formato.

Si por alguna razón perdemos esos programas, o la información de cómo se asocian con sus datos, nos encontraremos ante el oscurantismo digital. Porque no sabremos, ni tendremos como saber, de que iba toda esa “información” guardada en esos medios, si es que acaso aun disponemos de los elementos o equipos necesarios para procesar a su vez los diversos medios de almacenamiento de que dispongamos.

Respecto a la segunda gran consecuencia debo agregar que esta acarrea la noción de que la representación de recursos para los humanos es prioritaria, dejando de lado la disponibilidad de esos recursos para la comunicación inter-máquinas.

La gran mayoría de los esfuerzos que se han llevado a cabo en áreas de desarrollo de software están vinculados a las interfaces, capa de presentación, para humanos. Que sí los sistemas iOS, Android, etc. Que sí frameworks en JQuery, Angular, NodeJS, etc. Todos orientados a como brindar al usuario una “experiencia” superior. Y eso está muy bien.

El problema es que en ese esfuerzo hemos dejado de lado el problema de fondo que buscamos resolver, el cual no es más que la comunicación entre máquinas. REST no es más que un intento de facilitar esa comunicación, y uno muy bueno. Pero hemos dado una vuelta de tuerca, un giro completo, para volver a encontrarnos con problemas que ya habíamos resuelto de manera efectiva, y ahora queremos dejar de lado esas soluciones envalentonados por la supuesta novedad de nuestras plataformas tecnológicas.

Los sistemas IBM VM/CMS, MVS y UNIX son ejemplos poderosos de grandes soluciones a grandes problemas, y por soluciones grandes me refiero a soluciones innovadoras, eficientes y eficaces, sencillas y geniales. Con muchos puntos de mejora obviamente. Pero grandes en su aporte e impacto. No es de extrañar que estos ejemplos sean precisamente de sistemas operativos usualmente asociados a grandes máquinas o mainframes.

La naturaleza de los problemas que se resolvieron con estos sistemas no ha cambiado en core. Muchas de las soluciones ofrecidas en estas plataformas son fundamentales aún hoy día. Obvio, en esos sistemas la experiencia del usuario no era la que dominaba o dirigía el diseño.
Necesitamos conocer y comprender ese pasado que debemos sostener y repetir en cuanto a su genialidad y aporte, para que, con fundamento, podamos ser dignos de ofrecer nuestras propias grandes soluciones a los nuevos problemas, sin tener que reinventar la rueda ni el creer que descubrimos el café con leche.

La virtualización, la “nube”, los sistemas para dispositivos móviles, la transformación digital, las metodologías ágiles, las bases de datos no relacionales, el procesamiento distribuido y, apuesto mi credibilidad en esto, la computación quántica (en sus fundamentos) son todos asuntos que ya hemos resuelto, y que a cada vuelta de tuerca retornan revestidos de novedad, como la panacea de moda.

Baladí, todo eso es baladí. Ceros y Unos son los que mandan.



Como decía el gran Dennis Ritchie, UNIX es muy simple, sólo que hay que ser un genio para comprender su simplicidad. 

Comentarios

Entradas populares de este blog

El Melange todavía corre

Ese era el estribillo de un capítulo de unas de mis series favoritas de la infancia, Meteoro o Speed Racer. En ese capítulo un auto “fantasma” el X-3, aparecía de imprevisto y dejaba a todos asombrados con su rendimiento y prestaciones y volvía a desaparecer. Traigo ese episodio a colación puesto que recientemente sostuve una amena charla con un querido amigo, en la que el me manifestaba como los Mainframes habían muerto, o mejor dicho, el concepto de la computación distribuida basada en Mainframes había desaparecido. Para variar, yo no estuve de acuerdo, y le dije que por el contrario, el modelo de computación basado en Mainframes está mas vigente que nunca. Estos fueron mis argumentos:

Primeros pasos con Camunda BPM – Modelando un Proceso BPMN 2.0

Tenemos entre manos la tercera publicación de nuestra serie sobre la Plataforma de BPM de Camunda .  El día de hoy vamos, por fin, a empezar a modelar o construir nuestro primer proceso sencillo en notación BPMN 2.0. Para ello vamos a usar el modelador o editor que ya hemos instalado en nuestra primera publicación , y vamos a guardarlo en la sección de recursos del proyecto Maven Java que configuramos en la segunda publicación . Así que, como ya es costumbre, manos a las sobras…

Como configurar jBPM para usar nuestra propia Base de Datos en un sólo paso

Llevo un buen rato trabajando con jBPM en su serie 6.x, y mi opinión sobre este producto en la versión mecionada no ha mejorado para nada. Es una herramienta plena de funciones y caracteristicas avanzadas, pero tambien está llena de Bugs y es realmente inestable, sobre todo en el ambiente de modelamiento.  Así mismo, debo decir que tiene una muy aceptable API REST y que el motor de procesos y la consecuente ejecución de los procesos es estable y bastante rápida. En esta publicación daré inicio a una serie de artículos que hablan sobre ciertas configuraciones comunes e importantes que se hacen con jBPM. Hoy iniciamos con la configuración de jBPM para que use nuestra base de datos favorita. Esto tiene sentido porque el producto viene con la base de datos H2 por omisión, la cual es excelente para pruebas y evaluaciones rápidas de la herramienta, pero es completamente inaceptable en un ambiente de desarrollo, QA o producción cualquiera. Así que manos a l