martes, 24 de diciembre de 2013

Una tarjeta para una amiga


Nos conocimos el año pasado durante la Noche de los Museos. Casualmente ella concurrió al Museo de Informática, en donde yo estaba haciendo un poco de guía. De pronto, me acerqué cuando la ví comentar muy vivazmente algo con su marido. De hecho, le decía que la máquina que estaba frente a ella no era Clementina.

-Disculpen, es cierto, no es Clementina; esta es la CEFIBA, la computadora construida a mediados de los ‘60 en la Facultad de Ingeniería. Agregué, entrometiéndome.

-Claro! -repuso ella muy vivazmente-, no me lo vas a decir a mi, que yo estuve trabajando con la verdadera Clementina!

Esa noche me había encontrado con Alicia, una egresada de la carrera de Computación Científica que trabajó durante la cursada con la legendaria computadora. Luego de revelarle que éramos de cierto modo colegas, quedamos en contacto. Pasó el tiempo, volvimos a encontrarnos, esta vez en su casa y cerca de fin de año. Mientras tomábamos té, ella contó anécdotas de su época de estudiante y me mostró innumerables apuntes, incluido su trabajo de tesis escrito de puño y letra. Mientras comentaba que había sido docente primaria y media y que enseñó LOGO sobre TI-99/4a y sobre PC, extrajo de un antiguo libro de IBM una tarjeta perforada que quisiera compartir.
Llegó el momento del balance de este año que se pasó volando. Supongo que las preocupaciones de la gente hacen que exista expectativas por un mañana mejor obligándonos a dejar atrás el presente y ni hablar del pasado. Por lo pronto, intentemos vivir el ahora y festejar, o simplemente compartir un momento con nuestros seres queridos y disfrutar de esos pequeños y sencillos islotes que ofrece la vida y que nos brindan felicidad. Un saludo para todos, especialmente, para mi amiga Alicia!

Una tarjeta perforada (de navidad) de los años '60. Este tipo de objetos, hoy sería considerado 'Geek'

lunes, 2 de diciembre de 2013

Lenguas Muertas II – A buscar el piloto, que se viene la lluvia

Sigo bastante a Mauricio Saldivar, y según su recomendación habrá que preparase para una semanita con algo de lluvia.
El viento del sur de la última tormenta hizo saltar las varillas de mi paraguas y ahora no tengo muchas opciones para protegerme más que usar el piloto. El problema es que no me llevo bien con él, y tampoco estoy seguro de haberlo dejado donde corresponde luego de haberlo traído hace un año de la tintorería.

Reviso el placard, el lugar más natural para guardar un piloto, pero no está allí. En la búsqueda tropiezo con algunas cajas de zapatos, zapatillas en el piso del placard. Intento acomodar todo y, en la tarea, me reencuentro con algunas revistas Compute! dentro de una bolsa. La búsqueda del piloto pasó a segundo plano. Ahora solo me ocupo de ojear algunos de los pocos números. Los truenos anuncian la inminencia de la lluvia, pero puede esperar porque es más importante este número 28 de Compute! de Septiembre de 1982. ¡Y pensar que en esa época yo tenía 10 años!
Al dar un vistazo en el índice, encuentro lo que podría ser una señal de advertencia relacionada con el devenir meteorológico. La página 84 de la Compute! informa “The Turtle Pilot”.

El artículo expone un nuevo lenguajes basado en la conjunción de PilotLogo Basic. Pero vuelve a mi cabeza el nombre PILOT, acrónimo de Programmed Inquiry, Learning Or Teaching. Ese lenguaje anterior al LOGO que no logró salir con vida de los años 80, fue diseñado en la Universidad de California por el psiquiatra Andrew Starkweather en 1962 como una herramienta para facilitar la construcción de exámenes y cuestionarios en el ámbito de las ciencias médicas.

PILOT, en su más pura escencia, es un lenguaje interpretado muy sencillo, con pocas intrucciones, que cuenta con capacidad de manejo de subrutinas y adolece en la manipulación algebraica y de vectores. El núcleo del lenguaje está compuesto por:

Instrucciones
“A”, para aceptar una entrada alfanumérica
“C”, para efectuar un cálculo
“E”, para finalizar la ejecución de un programa
“R”, para hacer un comentario en el código
“T”, para mostrar un texto
Condicionales y Control de flujo
“J”, para saltar a un fragmento de código determinado por una etiqueta.
“M”, para comparar el último ingreso de teclado con una lista de variables / constantes. En caso positivo, se activará la señal “YES”.
“U”, para utilizar una subrutina definida por una etiqueta
“Y”, para imprimir una linea de texto si el resultado del último “M” es positivo
“N”, para imprimir una linea de texto si el resultado del último “M” es negativo
Opcionalmente, algunas intrucciones pueden combinarse con expresiones lógicas como el caso de “J” y “T” o con los flags “Y”, “N”, producto de comparaciones.
R:Programa ejemplo en PILOT para adivinar un número (8 en este caso) en tres intentos.
C:#N = 8
*INICIO:
C:#V = 3
*VUELTA:
T:Adivina que numero pense
A:#M
J(#M = #N): *ENCONTRADO
C:#V=V-1
J(#V>0) *VUELTA
R:Si llego aqui, es porque no se encontro el numero
T:No acertaste. Queres intentar nuevamente?
A:
M:s,S
JY:*INICIO
E:
*ENCONTRADO:
T:Muy bien!
E:

Por supuesto que existen variantes del lenguaje que surgieron en los 80, destacándose las versiones Atari Pilot por incorporar manejo de gráficos y sonidos y Super Pilot de Apple con características similares. Viniendo un poquito más a la actualidad, existe una versión Open Source llamada R-Pilot, que es necesario compilar para poner en funcionamiento y está basado en el muy tardío standard que empezó a definir la IEEE en 1991 en el documento IEEE 1154-1991, que al día de hoy permanece como un borrador.

Del piloto que tanto busqué, ni noticias. Y creo que seguirá el camino del lenguaje. Caerá en el olvido. Veo que Mauricio Saldivar se equivocó, porque las nubecitas de por allí se están corriendo. Adiós Pilot, buen viaje!