miércoles, 13 de febrero de 2013

Lenguas Muertas I - Yoda Programa

Creo que debe ser uno de los fanáticos de Star Wars más jóvenes que conozco. Con sólo tres años y medio, ya vió toda la saga y sigue viendo algunos fragmentos de sus episodios favoritos, como el enfrentamiento el primer enfrentamiento de Qui-Gon Jinn y Obi Wan Kenobi contra los droides en la nave de la federación de comercio en Episodio 1 o el escape de Luke Skywalker y sus amigos del pozo de Carkoon , con su frase “Jabba...es tu última oportunidad...libéranos o muere...” en Episodio 6. 

Entre sus personajes favoritos están Obi Wan y Anakin Skywalker antes de ‘hacerse malo. Aunque también le cae simpático Yoda. Tal vez porque se ve representado por el tamañoo tal vez porque le resulta simpática esa forma especial que el maestro Jedi tiene de hablar utilizando estructuras gramaticales compuestas con verbo , sujeto y modificadores directos, de modo tal que suele decir frases como  “ir tu debes”.

Este hablar “alrevés” del maestro Yoda me lleva a asociarlo con un lenguaje de programación puesto en escena a principios de los ‘70 y que no pudo proyectar una posición más allá de mediados de los ‘80. Se trata del Forth, creado por el físico Charles Moore con el objeto de controlar el posicionamiento de los telescopios de su lugar de trabajo, el National Radio Astronomy Observatory of Arizona.

El origen de su nombre tiene dos raíces, por un lado de una simplificación de la palabra fourth que aludía a un lenguaje destinado a las computadoras de cuarta generación, es decir, aquellas que adoptaron los primeros circuitos integrados en su construcción, y por otro, del sistema operativo de la máquina IBM 1131 en dónde se compiló el primer entorno, que contaba sólo con cinco caracteres para los nombres de los archivos. Por esta limitante, el archivo compilado se llamó FORTH.

Forth es un lenguaje imperativo, de nivel medio y sus implementaciones consisten en una consola de comandos y un compilador interactivo con el que se puede extender el lenguaje, creando nuevas palabras, que serían el equivalente a rutinas o funciones en otros lenguajes. Esta arquitectura recuerdo un poco a la de Smalltalk, en donde es posible definir e interactuar con los objetos que viven en el entorno. 

Pero volviendo a Forth, digamos que siempre estuvo pensado para interactuar con pocos recursos de hardware y de hecho, para interactuar con dispositivos pequeños y medianos en forma embebida. Hasta principios de los ‘90, por ejemplo, Federal Express utilizó un dispositivo denominado SuperTracker, con un firmware desarrollado en Forth,  para registrar encomiendas guardando los ID escaneados en una RAM y luego sincronizando contra una computadora central regional. Otro uso de Forth tuvo lugar en un proyecto de plataforma para la creación de Smartcards en Europa, en 1995, llamado Open Terminal Architecture. Pero hay más ejemplos de uso que pueden encontrarse en esta dirección.

Esa gramática distintiva de Forth está dada por la estructura de pila de datos con que operan todas sus palabras, puesto que no existe el pasaje de parámetros ni los retornos de valores sino que son tomados y almacenados en esta estructura. Recordemos que como toda pila, por ejemplo la de platos lavados, el primer elemento a guardar, será el último plato que se lavó.

Utilizar esta metodología para cálculos, nos brinda el sistema con notación postfija que también es conocido como notación polaca inversa y que se utiliza en las calculadoras Hewlett-Packard. Recordemos que con este sistema, el uso de paréntesis en las expresiones algebraicas es innecesario. Supongamos, por ejemplo, que en una planilla de cálculos ingresamos la siguiente cuenta:

3 x (5 + 15)

El resultado es 60. Pero si ahora lo quisiéramos calcular con nuestra HP-48GX, deberíamos ingresar:

3 5 15 + *

Y deberíamos interpretar de la siguiente manera: apilar los números 3, 5, y 15, sumar los últimos dos números ingresados (5 + 15) y resultado dejado en pila, multiplicarlo con el primer número. Más gráficamente:

P1            P2            P3
*
+            *
15    =>        20        =>    60
5            3
3

Volviendo al primer cálculo hecho con nuestra planilla, si no hubiesemos utilizamos paréntesis, el resultado sería otro, puesto que la suma separa los términos: 3x5 =15 + 15 = 30

Con el ejemplo anterior en mente, estamos más o menos en condiciones de aceptar que las palabras en Forth, consumen sus argumentos de la pila (es decir, los sacan), hacen lo que tienen que hacer y finalmente dejan en la estructura el valor resultante. Veamos por ejemplo, cómo escribir una estructura condicional:

3 4 < IF .“ TRES es menor que CUATRO” ELSE .“ TRES es mayor o igual a CUATRO” THEN;

A no alterarse! Pensemos en la pila! Se ingresan los operandos 3 y 4. Luego se aplica la palabra “<”, es decir 3 y 4 son los argumento del operador lógico <. El resultado de la operación es 0 -porque representa a TRUE-  va a parar al tope de pila. Este valor es el argumento del IF,  y por ser verdadero, ejecuta lo que está antes del ELSE, en este caso imprime -es lo que hace el punto- el literal entre comillas. Lo que está luego del ELSE es opcional y en este caso particular, nunca se ejecutará y sólo aparece para mostrar la estructura completa que finaliza con THEN

Y qué pasaría con un ciclo definido? Bueno, si quisiéramos imprimir los primeros diez números naturales, podríamos escribir:

11 1 do . I loop;

Aqui, el 11 y el 1 se alojan en la pila y este último valor pasa a ser el valor inicial del ciclo que deberá iterar y ejecutar el contenido diez veces (en la vuelta once terminaría). Notar la aparición de I, que es una variable implícita del ciclo y conserva el valor del número de iteración, que en este caso, se está imprimiendo. Y por supuesto, el ciclo termina con loop.

Esto, como suele decirse, es sólo la punta del iceberg y en caso de interés, se puede extender el tema visitando Forth o leyendo Thinking in Forth. En mi caso, ambos recursos fueron bastante efectivos y gracias a ellos pude escribir mi primer programa Forth.

Para aquellos nostálgicos que quisieran probar el lenguaje en un ambiente más adecuado a su época de esplendor, podemos decir que prácticamente todas las home computers tuvieron -tienen- su versión de Forth, siendo el máximo exponente la Jupiter Ace de la empresa Jupiter Cantab LTD.
Esta empresa, que fuera fundada por dos ex miembros de Sinclair integrantes del equipo desarrollo de la ZX Spectrum, Richard Altwasser y Stephen Vickers, construyeron una computadora de rasgos similares a la Sinclair ZX81 pero varias distinciones:: poseía un gabinete de color blanco, con un teclado de goma, generador de sonido similar al de Spectrum y 3Kb de RAM, todo dirigido por un microprocesador Z80. Pero el rasgo más sobresaliente resultó ser el entorno Forth que incorporaba en ROM, al contrario de la tendencia de la época de utilizar BASIC. Los programas construidos en Forth se ejecutaban tres veces más rápido que su equivalente en BASIC, pero debido a la dificultad de aprendizaje, la Jupiter Ace tuvo muy poca aceptación de mercado y en sus dos años de producción, se crearon cerca de 8000 unidades.

Antes de terminar, quisiera dejar el listado de mi primer programa Forth. Se trata de un pequeño juego que suelo escribir en distintos sistemas / lenguajes que cae en mis manos, como una alternativa al tradicional “Hola Mundo”. Consiste en un juego de adivinanza, en dónde la computadora selecciona aleatoriamente un número del uno al diez y el usuario cuenta con tres posibilidades para adivinarlo. En cada intento fallido, el programa ayuda informando si es número elegido es mayor o menor al ingresado.
El programa fue escrito en Win32Forth, aunque podría correr en la versión online jsForth. Está dividido en tres secciones: la primera contiene una declaración de variables y constantes, que también dispone el lenguajes aunque su uso no es tan directo puesto que para almacenar o recuperar los valores es necesario hacerlo a través de la pila. En segundo lugar, se definen una palabra para controlar el acceso desde teclado del intento del usuario, que se representa mediante una cadena de caracteres. Éstas, son operadas de manera similar al lenguaje C mediante utilización de punteros que, aunque, las referencias se hacen a través de la pila.

Dado que no existe en Forth un método nativo para elegir valores al azar, hay que definir algún método, como por ejemplo, la congruencia lineal implementada en tercer lugar mediante la definición de la palabra RANDOMN. Por último, la cuarta sección contiene el código de la palabra ADIVINA que dirige la ejecución del programa en sí.

Ahora es momento de dejar de hablar de lenguas muertas y volver al rol de padre, mi hijo Ian, el pequeño fanático de Star Wars, está reclamando una repetición de la pelea final de Episodio III.



http://www.forth.com/resources/apps/more-applications.html

http://www.drdobbs.com/open-source/smart-cards-and-the-open-terminal-archit/184410748



ADIVINA


3 CONSTANT INTENTOS

VARIABLE numero
VARIABLE vuelta
VARIABLE semilla

VARIABLE numero    ( Declaracion de variables)
VARIABLE vuelta   

HERE semilla !    ( la semilla arranca con el valor de la dirección de memoria)

: INPUT$ ( Palabra para efectuar input de hasta 2 caracteres)
         PAD 1+
         2 ACCEPT
         PAD C!
         PAD
;

: RANDOMN  ( Esta palabra recibe un valor limite de numeros aleatorios y actualiza la semilla)
        semilla @ 31421 * 6927 + DUP semilla ! swap mod
;


: ADIVINA
       
        CLS
       
        11 RANDOMN                    ( Numero al azar entre 0 y 10)

        numero !                    ( El valor elegido que quedó en el tope de pila y se guarda en la variable)
       
       
        CR ." Adiviná el numero que pensé, tenés " INTENTOS . ." intentos " cr
       
       
        1 vuelta !                                        ( Vuelta es 1)
       
        BEGIN
            cr ." Intento "  vuelta @ .  ." : "
           
            INPUT$ COUNT NUMBER?                        ( Input y conversión de cadena a entero)
            2DROP                                        ( Se tiran los flags de la conversión, queda en el tope el número ingresado)
           
            dup                                             ( Copia del número ingresado, para la siguiente comparación)
           
            numero @ <> IF  vuelta @ 1 + vuelta !  THEN  ( Si no se adivinó, se da una vuelta más)
           
        numero @ =   vuelta @ INTENTOS >  OR UNTIL         ( En pila está el numero ingresado. Se sale si el igual al elegido o si hay más de 3 vueltas)
       
        CR
         vuelta @ INTENTOS > IF ." PERDISTE! ERA EL " numero @ . ELSE ." ACERTASTE" THEN        ( Resultados)
        CR
;
       
   





,

miércoles, 19 de septiembre de 2012

Tarta de Frambuesas

Hace unos días y luego de casi un mes de espera, llegó a casa la Raspberry Pi que compré por Element14. La verdad es que resulta impresionante el desempeño de esta computadora en relación a su tamaño y características. En una superficie con las dimensiones de una tarjeta de crédito, contiene un conector ethernet, dos USB, una salida HDMI, otra de video compuesto, una salida de audio estéreo y una entrada de tarjeta SD para almacenamiento persistente. La memoria RAM es de 256Mb y parte de la misma es usada por el procesador gráfico VideoCore. Todo esto está dirigido por un microprocesador ARM11. Estas características están presente en la versión B -la última a la fecha- por un costo de 35 dólares más 17 de gastos de envío.
Esta pequeña computadora, promocionada por la fundación de caridad inglesa Raspberry PI, empezó a producirse con esta configuración el 10 de enero de 2012 (este año), con el objeto de difundir y facilitar el estudio de distintos aspectos de la computación y fomentar el uso de software libre en niños y jóvenes de edad escolar. Por esto, en el sitio oficial del proyecto, se encuentran cuatro distribuciones del sistema operativo Linux Debian y tres de ellas incluyen un intérprete Phyton Scratch, un lenguaje gráfico desarrollado por el MIT para despertar el gusto por la programación en los chicos.
Con tan poco tiempo de vida, la Raspberry se convirtió en furor entre geeks y desarrolladores que empezaron a darle uso en proyectos diversos, como controladores de media centers, pequeños dispositivos robóticos, traductores en línea y por supuesto de forma recreativa con algunos juegos, no tan pequeños en algunos casos, como ocurre con Quake 3D.



Raspberry PI Model B


El microprocesador utilizado es uno de los más difundidos entre los smartphones por su potencia y consumo, sin embargo el ARM no es nuevo.


Para hablar de sus orígenes, habría que remontarse a 1983, cuando la empresa inglesa Acorn, fundada en 1978 por Chris Curry -un ex empleado de Sinclair Radionics-  y su amigo Hermann Hauser, iniciara la búsqueda de un nuevo microprocesador para los próximos desarrollos que superase al MOS 6502, en el que venían basando sus cinco modelos System -máquinas de laboratorio-, su primera home computer, la Acorn Atom, el prototipo Acorn Proton y un modelo posterior, la Acorn Electron.

La Proton, diseñada en 1981 a partir de Atom -aunque conceptualmente fuera anterior a este modelo-, fue construida en una semana para concursar en una licitación convocada por la British Broadcasting Corporation-BBC- para su programa de alfabetización informática Computer Literacy Project, basado en una computadora hogareña multipropósito.

Excediendo los requisitos de la BBC, Acorn ganó la licitación con la Proton que pasó a ser producida con el nombre de BBC Micro. De los dos modelos de Beeb -así las apodó el público-, llegaron a venderse un millón de unidades, brindando a Acorn ganancias alrededor de los 8.5 millones de libras.
La mejora financiera permitió pensar en un futuro de nuevos desarrollos basados en algún microprocesador más poderoso que el habitual 6502. Sin lograr encontrar un microprocesador adecuado, la Acorn se propuso construir uno propio basada en arquitectura RISC -Reduced Instruction Set Computer-, asignando a la tarea de diseño del hardware a Steve Fuber y del juego de instrucciones a Roger Wilson, pieza clave de la empresa, puesto que él fue quien diseñó la System-1, la Atom y extendió el lenguaje Basic de esta última, para incorporarlo en la Proton.
Para octubre de 1983, la empresa VLSI Technology fue encargada de implementar el diseño del nuevo procesador de arquitectura RISC. Esta filosofía, recordemos, prepondera a un conjunto de instrucciones pequeño, de tamaño fijo y pocos formatos de uso, de las cuales sólo se accede a memoria con instrucciones especiales y se utiliza registros para efectuar las operaciones. Las instrucciones, además, se encuentran implementadas en hardware, al contrario de la arquitectura CISC, que utiliza microcódigo.

El 16 de abril de 1985, estuvo listo el procesador de 32 bits Acorn RISC Machine v1, también conocido como ARM1. Sus primeros usos fueron en desarrollos internos de la Acorn, pero habiendo demostrado cualidades superiores de velocidad de procesamiento y bajo consumo gracias a sus 30.000 transistores contra los 68.000 del Motorola 68000, en 1987 se utilizó la versión ARM2 como el corazón de la Archimedes, la competidora de Acorn en el terreno de los home computers de 16/32 bits liderado por Commodore Amiga y Atari ST.

No viene al caso hablar mucho de la Archimedes, aunque valdría quizás mencionar que carecía de chips especializados para tratamiento gráfico pero la potencia del ARM suplía esta falta.
Hacia 1990 y ante el avance de las PC clones de IBM, ocurrió una estratégica escisión de la Acorn, dando lugar a una nueva compañía especializada en el desarrollo de microprocesadores, que evitase una imágen monopólica de una Acorn creadora de componentes, computadoras y software.

En una sociedad con VLSI y Apple se creó la Advanded RISC Machines LTD, que se encargó de definir las versiones de la arquitectura del procesador y de la construcción de las familias de dentro de cada arquitectura. Por otro parte, creó un mecanismo de licenciamiento -de la arquitectura-, para habilitar a terceros a construir los ARM para extender sus funcionalidades segun el caso, para diferentes productos.  Así, uno de los primeros interesados en el ARM fue justamente Apple, que en 1991 utilizó una versión modificada de la tercera versión de la arquitectura, conocida como ARM6 en su handheld Newton.

La ARM LTD cambió su nombre a ARM Holdings en 1998 y  en la actualidad liberó la séptima versión de la arquitectura, que define a la familia de múltiples núcleos Cortex: Cortex-ACortex-M y Cortex-R. Como ejemplos de uso, tenemos al nuevo móvil Samsung Galaxy S III con un Cortex-A y nuevamente a la Raspberry PI con un ARM11 -sexta versión de la arquitectura- que además resulta ser un buen ejemplo del licenciamiento: el procesador forma parte de la misma pastilla que contiene, además, la memoria y el procesador de video.


Pero el uso del ARM está muchísimo más difundido: no sólo se estima que el 95% de los smartphones lo utilizan; sino que está presente en las consolas de juegos portátiles como Nintendo Gameboy AdvanceDS ,3DS; receptores GPS, tablets, reproductores de BluRay, smart TVs y routers. Todo parece indicar que se a incluirlo en cualquier dispositivo pequeño / mediano que realice algún tipo de procesamiento o que se catalogue de “inteligente”.

Y qué fue de la vida de los diseñadores de este micro tan poderoso? No es de extrañar que con la presencia del ARM, aún continuen trabajando alrededor de su creación.
En el caso de Steve Furber,  docente de Ciencias de la Computación de la Universidad de Manchester, escribió el libro, ARM System-on-Chip Architecture en donde analiza detalladamente la arquitectura y presenta una lista cuantitativa de familias de procesadores y productos que hacen uso. También pensó en usar los ARM en su proyecto Spinnaker, que consiste en la construcción de una gran red neuronal en hardware en base de un millón de procesadores interconectados.
Por su parte, Roger Wilson, que cuenta con un título de grado en Ciencias de la Computación, tuvo un cambio radical en su vida luego de una operación de cambio de sexo que lo convirtió en Sophie Wilson. En la actualidad es CEO de la compañia Broadcom, dedicada a la construcción de componentes para comunicación y como era de esperar, licenciataria de ARM, pero también integra el directorio de la empresa de juegos Eidos.

Luego de esta breve recorrida por la historia del ARM, voy a instalar el Fuse, el emulador de Spectrum que me pasó un conocido, luego a compilar el navegador Chromium y probar capacidades multimedia. Algo interesante podía surgir de todo esto!

lunes, 23 de abril de 2012

30 años de ZX-Spectrum

Sencilla, poderosa y versátil son los adjetivos que describen a la ZX-Spectrum que hoy, 23 de Abril de 2012 cumple 30 años de su lanzamiento al público. Contruida los laboratorios de Sinclair Research -la empresa de Clive Sinclair- de Cambridge, la Spectrum hizo gala de la simplicidad, economía en sus versiones de 16Kb y 48Kb, manteniendo así las mismas premisas que dieron vida a sus antecesoras ZX-81 y ZX-80

Sin embargo eran varias las novedades incorporadas en esta computadora, comenzando por la cantidad de memoria que, para la época, era más que suficiente y hasta quizás excesiva, como se pensaba acerca del modelo de 48KB. El modo de texto continuaba siendo el de los modelos anteriores, pero se agregaron capacidades gráficas que proporcionaban alta resolución de 192 por 256 pixels con 8 colores. A diferencia de las ZX80 y ZX81, se incluyó el juego de caracteres ASCII. Para la salida de la imagen por RF, se utilizó la norma oficial de Inglaterra, la PAL-B. También se incorporó un generador de sonido sencillo con salida por un beeper, un soporte mejorado de almacenamiento por cassette con mayor velocidad y menor sensibilidad a fallas. Se renovó además el port de expansión.

Se mejoró el gabinete que pasó a medir unos 23 por 14 por 3 cm y el teclado esta vez era de goma de 40 teclas. El sistema de introducción de comandos y funciones continuaba siendo el clásico: una tecla, un comando de un Sinclair Basic  extendido para explotar las nuevas características de la máquina. Internamente estaba conformada por un microprocesador Zilog Z80A de 3.5 MHz, la ROM esta vez ocupaba 16KB y en cuanto a la RAM, como se dijo, variaba según el modelo. Un nuevo integrado ULA fue introducido para administrar las características de video y sonido de la máquina. La alimentación seguía siendo mediante una fuente externa de 9 volts DC. El precio de las unidades se incrementó levemente, 125 libras para la Spectrum 16 y 175 libras la Spectrum 48. La demanda de esta máquina fue tan grande que, en su primer mes, no solo se agotó la tanda inicial de 20.000 unidades, sino que además se registraron 30.000 pedidos adicionales. Luego de regularizar la producción con los altos niveles de demanda, para el año siguiente se llegaron a registrar picos de venta cercanos a las 15.000 computadoras semanales.

Hay que destacar que la Spectrum apareció en una época en que Inglaterra atravesaba el conflicto del Atlántico Sur y su economía incurrió en una etapa depresiva que causó el cierre de numerosas fábricas y generó miles de desocupados, como consecuencia de las medidas económicas adoptadas por el gobierno de Margaret Thatcher. Frente al suceso de la máquina, la primera ministra se convirtió en una ferviente admiradora de Sinclair, y utilizó su figura como símbolo de la lucha frente a las adversidades -económicas-  y del creciente poderío tecnología nacional. Así fue como, en un viaje a Japón en septiembre de 1982, obsequió al primer ministro de dicho país, Zenko Suzuki, una ZX Spectrum 48. Para fines de 1983, Clive Sinclair recibió el título de Sir.

La ZX-Spectrum fue una de las computadoras más clonadas de la historia y sus copias llegaron a utilizarse hasta entrados los años ´90 principalmente en Europa central, oriental y Asia. Algunos modelos exóticos para destacar son el Hobbit ruso, con mejoras en el teclado y 64Kb de Ram y la MicroTIM rumana, con aspecto de PC y un Basic modificado. Aquí puede encontrarse una lista con muchos modelos muy llamativos.

Si de buscar más clones se trata, no tenemos que ir muy lejos. En Brasil se contruyó la TK-90X que presentó cierto grado de incompatibilidad con la Spectrum original producto de modificaciones en la ROM -idioma y rutinas agregadas-, pero que contó con una importante cantidad de usuarios. Esta máquina llegó a Uruguay y a nuestro país, y en éste último caso, compitió con poco éxito con la CZ-2000, el clon nacional 100% compatible de ZX-Spectrum, construido por la división electrónica de la empresa Czerweny de Paraná, Entre Rios.

A pesar de haber sido usuario y ser actual admirador de Commodore 64 , hoy en día no puedo dejar de maravillarme de la simpleza y potencia de la Spectrum. Felices 30 años, morocha!!!!

ZX-Spectrum, muy contenta con sus 30 años


CZ-2000, el clon argentino 100% compatible


TK-90X, el clon brasileño muy utilizado en su país con algunos detalles en su compatibilidad

Old school game

Battle for Asciion nos permite rememorar a aquellos juegos de las máquinas más pequeñas de Sinclair, cuando con pocos recursos  gráficos y de memoria, sorprendían con su calidad.

Construido completamente con caracteres ASCII, el juego se desarrolla de manera similar al Gradius Salamander; pudiendo incrementar la capacidad de fuego de la nave al destruir las olas de enemigo y obtener los powerups...pero dejemos de escribir y vamos a probarlo!

miércoles, 18 de abril de 2012

Y tu mamá también

Mi mamá, mi suegra y algunas otras personas con ciertos años encima, siguen teniendo pendiente sentarse frente a una computadora y empezar a disfrutarla. Están al tanto de la facilidad de operación y saben, por ejemplo, que su  nieta de siete años ya tiene más de dos de experiencia con teclados y mouses. Pero aún así no se animan.

Este grado de facilidad de operación, casi fantástico, que tienen las computadoras actuales, se debe al aprovechamiento de los recursos que hacen sistemas operativos como Windows y los muchos sabores de Linux con sus sistemas gráficos Gnome o KDE.

Todos estos tienen un origen común que se inicia por 1962 en ARPA, cuando el psicólogo John Licklider, que había ingresado a la agencia como parte de un programa que desarrolló el sistema de defensa antimisiles llamado SAGE para trabajar en aspectos de interacción de dispositivos electrónicos y las personas, creó la oficina de Técnicas de Procesamiento de la Información.

Licklider, un egresado de Hardvard, estaba convencido de que las computadoras debería existir una suerte de simbiosis entre humanos y computadoras, para aumentar el conocimiento de las personas y para facilitar las tareas diarias; pero para esto, las computadoras deberían ser suficientemente amigables e interactivas como para que su operación no resultase tediosa. Mientras que su pensamiento quedó reflejado en  un paper llamado “The Man/Computer Symbiosis” , la oficina promovió la investigación cooperativa con las universidades de Stanford y Utah (entre otras) en temas como desarrollo de sistemas gráficos, técnicas de programación e interfaces entre hombres y computadoras.

Los primeros resultados de algunas investigaciones, estuvieron presentes en 1963, cuándo quedó operativo un sistema multiusuario denominado MAC -Machine Aided Cognition-, orientado a la edición de documentos de texto, de programas y su ejecución. Pero detengamos esta historia del MAC y su descendiente MULTICS, para centrarnos en los grupos de investigación de las dos universidades y un tercer actor que completa la historia.

El Human Factor Research Center -HFRC- de Stanford, también hacia 1963, estaba dirigido por Doug Engelbart y tenía como principal proyecto desarrollar una oficina electrónica utilizando computadoras. Esto implicaba la construcción de nuevas interfaces de usuario, que por sus características , el uso exclusivo del teclado como dispositivo de control resultaba incómodo e insuficiente. Para complementarlo idearon un dispositivo que patentaron como X-Y Position Indicator for a Display System , aunque por su forma resultaba más sencillo llamarlo mouse. Hacia 1965, se convirtió en el dispositivo más utilizado dentro del proyecto y para 1968, cuándo se presentó el prototipo de la oficina electrónica, resultó ser la estrella del evento.Sin embargo, el proyecto completo resultaba suficientemente costoso como para ser implementado a corto plazo.

En 1967 un estudiante de doctorado de Ciencias de la Computación de la Universidad de Utah, trabajaba en un proyecto orientado al manejo de la información y la sustitución del material impreso a través de una computadora del tamaño aproximado de una carpeta, con la capacidad suficiente para almacenar, presentar, buscar e intercambiar información a requerimiento. Ideado por Alan Kay, este dispositivo llamado Dynabook no llegó siquiera a la fase de prototipo, pero se convirtió en un concepto que sentó las bases de las modernas máquinas tablet y handhelds. Recordemos que Alan Kay es además uno de los padres de la programación orientada a objetos, puesto que sus investigaciones dieron vida a los lenguajes Smalltalk en 1972 y Squeak hacia 1990. Por otro lado, además de ser bajista profesional de Jazz, fue jefe de la división de I+D de Atari durante la era Tramiel.

A la presentación del HFRC de 1968, concurrió la gente de Xerox que se encontraba bastante preocupada por el avance de la tecnología japonesa y por lo tanto se había puesto en la búsqueda de alternativas para diversificar el negocio de las fotocopiadoras.
En tercer lugar tenemos a la gente de Xerox que se encontraba bastante preocupada para finales de la década del ‘60 por el avance de la tecnología japonesa y buscaba diversificarse del negocio de las fotocopiadoras. Afortunadamente pudieron presenciar aquella demostración de HFRC de 1968 y de ahí surgieron algunas ideas que derivaron en la instalación en Sillicon Valley del Palo Alto Research Center -PARC- cuya principal iniciativa fue crear la “oficina del futuro”. Hacia mediados de 1970, en el PARC, se habían destinado más de 50 millones de dólares para investigación de tecnología de punta y contaba con un equipo más que respetable: gente del ARPA cercana a Licklider, gente del HFRC de Stanford y al mismo Alan Kay de Utah.
Para 1973 se inició el desarrollo de Xerox Alto, una computadora desktop con una pantalla del tamaño de una hoja de resma A4 que podía mostrar documentos en formato bitmap y además contaba con un sistema operativo cuya interfaz gráfica estaba compuesta por íconos, ventanas, documentos y carpetas, todo controlado por un mouse de tres botones. Contaba con 128 Kb de RAM, un disco rígido de 2 Mb, conexión Ethernet y un microprocesador especialmente diseñado. Para 1975 Xerox Alto fue presentada a un público restringido y los primeros usuarios fueron la Casa Blanca y la Universidad de Washington.

La Xerox Alto tuvo una sucesora comercial, la Xerox Star que terminó fracasando debido a su altísimo costo -una workstation valía alrededor de 16.000 dólares -, pero permitió masificar el nuevo paradigma de sistema operativo: Steve Jobs estuvo de visita en el PARC durante el desarrollo de esta máquina y luego de una demostración, casi inmediatamente inició en Apple al proyecto Lisa. Aunque esta última máquina tampoco tuvo una aceptación pública por razones de costo, Apple tuvo su revancha en 1984 con Macintosh. Por otro lado, la gente de Microsoft,
que se encontraba desarrollando las versiones de Word y Excel para Mac antes de salir al mercado, recibió algunos prototipos para efectuar pruebas de las aplicaciones. Pero también tomaron algunas ideas sobre las funcionalidades del sistema operativo de la Mac y pudieron dar vida hacia 1985 a un casi ignorado Windows 1.0.

En resumen, las interfaces gráficas que nos facilitan tanto la comunicación y el manejo de las computadoras tienen cerca de 40 años y surgieron como una forma de agilizar la interacción entre el hombre y la máquina. Ahora me pregunto, habrán tenido éxito los sistemas operativos con interfaz gráfica, puesto que aún mi mamá y mi suegra no se animan a utilizar las compus?

viernes, 16 de marzo de 2012

En memoria del padre de CEFIBA

El 1ro de Marzo de 2012, falleció a los 93 años el Ingeniero Humberto Ciancaglini, un precursor del desarrollo de la computación en el país, oriundo de Salta. Ideó e impulsó la contrucción de la primera computadora de América Latina, contemporanea a la puesta en marcha de Clementina en el Instituto de Cálculo de la Facultad de Ciencias Exactas de la Universidad de Buenos Aires.

Luego de haber trabajado en diferentes paises de europeos para la empresa Phillips, hacia 1957, Humberto Ciancaglini consideró la importancia del desarrollo de las computadoras y la falta de proyectos de tal carácter en Argentina.

Estando al frente del Departamento de Electrónica de la Facultad de Ingeniería de la Universidad de Buenos Aires, Ciancaglini formó un grupo dedicado al estudio de diversos temas relacionados con el diseño de computadoras.

Cuándo el grupo consideró tener los conocimientos teoricos suficientemente sólidos, inició un ciclo de conferencias y hacia 1959 inició el proyecto de construcción de la CEFIBA: Computadora Electrónica de la Facultad de Ingeniería de Buenos Aires, bajo la dirección del Ing. Felipe Tanco, quien había estado trabajando entre 1954 y 1957 en los Estados Unidos en tareas de diseño de computadoras para la empresa RCA junto a los ingenieros Eduardo Ulzurrun y Oscar Mattiussi. Este último, unos años más tarde, tendría participación en el mantenimiento de Clementina. Al grupo se integraron los ingenieros Noemí Kaplan, Ricardo Criado, Edgardo Cohen, Arturo Vercesi y Jonás Paiuk -quien fuera más tarde el encargado del mantenimiento de Clementina-. La programación de la computadora estaría a cargo de la licenciada en Matemática Aida Cohn.

La CEFIBA tuvo dos características distintivas. Primero, diseñada según la arquitectura de Von Neumann, su construcción se basaba en transistores, lo que resultaba novedoso y resistido por la mayoría de los fabricantes de la época que confiaban en las válvulas de vacío. Los transistores contaban con la ventaja de su tamaño, menor consumo eléctrico y menor generación de calor, con lo que simplificaban los sistemas de refrigeración.

La segunda característica era la restricción impuesta por un presupuesto muy escaso, del que se supo sacar muy buen provecho construyendo ingeniosamente muchos dispositivos. Uno de las primeros elementos construidos fue el gabinete de alojamiento de la computadora y sus circuitos de alimentación eléctrica, utilizando dos armarios unidos a los que se agregaron divisiones para delimitar seis estantes y distribuir distintas componentes. También se construyó, a partir de un cilindro de aluminio pintado con ferrita, una memoria auxiliar de tambor magnético, cuya capacidad de almacenamiento era de 4096 palabras de 32 bits, -16 KBytes actuales-. El dispositivo presentó algunas fallas de funcionamiento, por lo cual, luego de varias reparaciones, fue reemplazado por un tambor de memoria comprado a Ferranti.

A partir de una máquina de escribir adaptada con el agregado de selenoides sobre los martillos de impresión, se contruyó una impresora que la computadadora podía accionar, enviando señales a estos dispositivos asociados a los caracteres que se iban a imprimir. Tanto la memoria de tambor como la impresora, estaban dispuestos en una consola de operaciones, fabricada a partir de un escritorio metálico, que además tenía una lectora de papel perforado y una suerte de teclado de entrada, consistente en un tablero de treinta y dos teclas con el cual se ingresaban a la CEFIBA las palabras de 32 bits.

La programación se llevaba a cabo con lenguaje de máquina, plasmado en una cinta perforada preparada a partir de un teletipo. La cinta era suministrada al lector de papel perforado y el contenido se almacenaba en el tambor magnético para ser compilado.

La construcción de esta computadora demoró cerca de cinco años. El 10 de Agosto de 1962, en un acto en la Facultad de Ingeniería y con la asistencia de las autoridades de la UBA, se presentó la computadora exponiendo su funcionamiento y sus detalles técnicos.

En 1966 los acontecimientos que oscurecieron a la UBA, afectaron y disolvieron al grupo que proyectó y construyó la CEFIBA, disolviendo también el destino de la primera computadora desarrollada en America Latina.

jueves, 5 de enero de 2012

Feliz Cumple 64!

De chica se hizo muy popular dándo entreteniendo a gran parte de la familia. De grande, gracias a su personalidad, se convirtió en una leyenda que puede definirse con dos palabras: “un fierro”.Esta semana cumple 30 años de su nacimiento, que por cierto fue una carrera contra reloj para sus padres. Curiosamente, se gestó en secreto y luego de ver la luz, su nombre fue cambiado por el mas glamoroso Commodore 64.

Originalmente se designó como VIC-40 y el primer prototipo se presento -ya con su nombre definitivo- el primer fin de semana de la CES en Enero de 1982, dejando a todos asombradísimos: particularmente la gente de Atari y de Texas Instruments no entendían cómo por sólo 595 dólares, la gente podría acceder a una computadora con excepcionales capacidades de video, audio, 64kb de Ram y posibilidades de expansión.

Construida bajo un sencillo diseño apoyado por los chips dedicados VIC II (video) y SID (un sintetizador de sonido), por los ingenieros Bob Yanes, Robert Russell y Dave Ziembicki, tuvieron listo el prototipo en dos meses, el tiempo que formaba parte de las directivas exclusivas de Jack Tramiel, así como el tamaño de memoria, la reutilización del gabinete de la VIC-20 -para aprovechar el éxito comercial- y el precio final.

Si bien la Commodore 64 empezó a comercializarse a mediados de 1982 y surgieron algunos inconvenientes justo antes de éste evento -algunas fallas en una ROM, que impedian el funcionamiento de la tecla SHIFT-, la aceptación de la máquina fue tan extraordinaria que en diez años de producción, se vendieron más de 17 millones de unidades.
Feliz cumpleaños a esta verdadera leyenda de 8 bits que estuvo muy presente en Argentina y de la cuál guardo muchísimos buenos recuerdos!