Arte ASCII retro en las sondas espaciales de la NASA
El NAIF (Navigation and Ancillary Information Facility) de la NASA es un grupo de trabajo, perteneciente a la División de Ciencia Planetaria de la agencia espacial, que se creó para liderar el diseño y la implementación de un sistema de navegación e información auxiliar conocido como SPICE. Este sistema SPICE ayuda a científicos e ingenieros a diseñar misiones, planificar observaciones, analizar datos y realizar diversas funciones de ingeniería asociadas a proyectos de vuelo a lo largo del ciclo de vida de las misiones científicas planetarias de la NASA. Básicamente es un sistema informático y técnico que posibilita a los científicos la planificación e interpretación de las observaciones y el manejo de los instrumentos a bordo de las sondas robóticas interplanetarias.
Si bien las misiones planetarias fueron el enfoque original, hoy SPICE también se usa en algunas misiones de heliofísica y ciencias de la Tierra. Por lo tanto, está disponible de manera gratuita para agencias espaciales, científicos e ingenieros de todo el mundo, siempre sujeto a una serie de reglas, pero también para el público en general, con la salvedad de que el soporte que ofrece NAIF en este caso es muy limitado.
El sistema SPICE incluye, además, un paquete de software conocido como SPICE Toolkit, que consta de diversas API que los clientes pueden incorporar en sus propias aplicaciones para leer los archivos de datos auxiliares de SPICE y, con ellos, calcular geometrías de observación, como altitud, latitud y longitud, ángulos de iluminación, etcétera.
Lo más curioso del asunto es que, aparejado a todo este hipermoderno sistema de millones de dólares, existe una serie de ficheros de información —al alcance de cualquiera— que versan acerca de todas y cada una de las sondas espaciales. Estos ficheros, en modo texto ASCII básico, explican perfectamente las especificaciones técnicas y el funcionamiento de cada uno de los sensores e instrumentos en cada sonda. Asimismo, incluyen detallados esquemas de los instrumentos que, al estar recogidos en un archivo de texto plano, han tenido que ser diseñados tirando del conocido como arte ASCII, un medio artístico que utiliza recursos computarizados fundamentados en los caracteres de impresión del Código Estándar Estadounidense de Intercambio de Información.
Sondas, antenas, espectrómetros, roveres, módulos de aterrizaje y hasta las propias naves, todo ello dibujado y esquematizado al más puro retroarte informático que existe. Para disfrutarlos, sólo debemos acudir a la web donde se encuentra la tabla de contenidos de SPICE, seleccionar un módulo espacial (columna Archive Link
) y, una vez dentro, acceder a los subdirectorios DATA
, primero, y FK
, después. Los archivos que nos interesan son los que tienen extensión .TF
.
Todo un lujo de arte viejuno traído al pleno siglo XXI y a la información técnica de los dispositivos de ingeniería más avanzados del mundo.
El origen informático del cursor parpadeante de escritura
Omnipresente en todos nuestros escritos en pantalla, el cursor parpadeante nos indica con precisión dónde aparecerá el siguiente carácter que pulsemos en el teclado. Con ese pulso constante y regular, ha sido comparado con los latidos de un corazón o con el balanceo de un metrónomo; el ritmo que marca, constante, la espera de la escritura y que llama la atención sobre el punto exacto de la continuación de nuestro tecleo.
El cursor de escritura, también conocido como cursor de texto o punto de inserción, es un indicador visual que se utiliza para especificar la posición en la que se insertará el texto cuando el usuario escriba. El origen del cursor de escritura se remonta a los primeros días de la informática. A principios de la década de 1960, los terminales computacionales se usaban, casi exclusivamente, para la entrada y salida de datos. En aquellos aparatos tontos, generalmente conectados a computadoras centrales, los usuarios ingresaban comandos y datos a través de un teclado.
Tras la linotipia —inventada por Ottmar Mergenthaler en 1886—, un instrumento de escritura de tipos sobre un lingote de plomo que mecanizaba el proceso de composición de un texto para ser impreso, apareció un nuevo avance tecnológico, una máquina diseñada en 1970 con la capacidad de componer páginas a partir de matrices fotográficas o negativos de letras que producía cintas fotográficas construidas por la acción mecánica: la fotocomponedora, nombre que dio origen al término fotocomposición.
La composición tipográfica casi siempre consistía en poner palabras y espacios, lenguaje escrito, de tal manera que luego se pudiera jugar con él. No era simplemente un proceso mecánico, sino un trabajo con el valor añadido de, completamente de forma manual, seleccionar la fuente del texto, poder cambiarla, variar el ancho de las columnas, mover texto de un sitio a otro, etcétera. Si comparamos aquel proceso analógico con el tratamiento de textos moderno, eran las manos humanas las que asumían el papel del cursor parpadeante o punto de inserción, pues si se hacía necesario cambiar la posición de una palabra, el tipógrafo movía los bloques de texto como un rompecabezas.
Durante todo el siglo XX, pues, la composición tipográfica atravesó varios momentos evolutivos, desde las aburridas máquinas de escribir hasta las primeras computadoras, pasando por máquinas de teletipo y fototipo. Si bien todos estos avances hicieron que el trabajo fuera mucho más rápido para los editores, sobre todo con la aparición de los ordenadores, un aspecto crucial de la composición tipográfica antigua se había perdido en el progreso: una forma intuitiva de insertar o eliminar texto. Pero la respuesta a aquella pregunta ya la había empezado a resolver el ingeniero electrónico Charles Kiesling, de Murdock, Minnesota (EE UU).
Nacido en 1930, Charles Kiesling, Chuck para sus amigos, era un veterano naval de la Guerra de Corea que dedicó sus años inmediatamente posteriores a la contienda a un nuevo desafío: la explosión de la era informática. Kiesling llegó a trabajar, junto con otros ingenieros, en computadoras del tamaño de una habitación, como la IBM 650 o la antigua ENIAC. Se unió a la compañía estadounidense Sperry Rand, ahora Unisys, en 1955 y ayudó a desarrollar todo aquello que no se ve de los sistemas informáticos pero que es de vital importancia, como, por ejemplo, lo circuitos lógicos que le permiten a un ordenador tomar decisiones condicionales complejas como ‘o’, ‘y’ o ‘sólo si’, en lugar de simplemente el ‘sí’ o el ‘no’ de los primeros momentos de la computación. Y uno de aquellos avances, aparentemente inocuo, tomó forma en la solicitud de patente del 29 de septiembre de 1970 que Kiesling hizo para un cursor parpadeante, literalmente BLINKING CURSOR FOR CRT DISPLAY.
El cursor, representado por un guion bajo, un carácter de bloque o una línea vertical, se usaba para indicar la posición en la pantalla donde se insertaría el siguiente carácter cuando el usuario escribiera. A medida que evolucionaron las computadoras y el software, el cursor adquirió nuevas formas. En las décadas de 1970 y 1980, el cursor, a menudo, se representaba con un bloque o una barra vertical parpadeante, diseño que tenía la intención de hacerlo más visible y más fácil de rastrear en aquellas primeras pantallas de fósforo verde o naranja saturadas de texto.
El cursor parpadeante, desde su patente hasta tal como lo conocemos hoy día, no haría su debut público general durante algunas décadas. Su funcionalidad primigenia apareció por primera vez en el Apple II de 1977 y, después, se incorporó al Apple Lisa de 1983. El antiguo ingeniero de Apple, Andy Hertzfeld, contaba la historia de que la inserción del cursor en el Apple II se produjo a expensas de otra característica informática común que el famoso diseñador de la máquina, Steve Wozniak, decidió eliminar: las letras minúsculas. Y es que aquel Apple II original no soportaba letras minúsculas, lo que aún sorprende a la mayoría de las personas. Wozniak tenía la teoría de que los caracteres parpadeantes eran mucho más importantes que las letras minúsculas, y la elección se hizo en función de una necesidad basada en la memoria limitada de los chips en ese momento; era o una cosa o la otra. En el Apple II, el parpadeo de caracteres y del cursor se habilitaba mediante hardware. Posteriormente, en el Apple Lisa y en el Macintosh se hizo utilizando gráficos y software del sistema.
Al principio y mucho antes de su aparición comercial, el cursor estaba atascado en la parte inferior de un documento de texto, pero la posterior invención del ratón —en 1964, por Douglas Engelbart— y la adición de las teclas de cursor a los teclados facilitaron a los mecanógrafos moverse por el documento con facilidad. En las décadas de 1990 y 2000, el cursor de texto dio paso al cursor del ratón, cuya funcionalidad era prácticamente la misma: visualizar en todo momento dónde vamos a hacer el clic al pulsar el botón. Al principio se representó como un perfil de doble T (lo que se conoce en inglés como I-beam), cuando las interfaces eran aún eminentemente de texto, y, después, como una punta de flecha, cuando las ventanas ocuparon nuestros ordenadores personales.
Sin embargo, el cursor parpadeante de escritura nunca llegó a desaparecer. Hoy en día sería difícil encontrar una plataforma basada en texto que no incluya ese cursor que late silencioso, ya sea buscando algo en Google, publicando en Twitter o escribiendo una carta en Word. Tras más de cincuenta años después de su invención, los ingenieros más atrevidos vaticinan su desaparición en épocas venideras, haciendo alusión a los métodos de selección o posicionamiento en tecnologías como la realidad virtual, la realidad aumentada o el metaverso, donde parece que los gestos reales van a desplazar a todas aquellas tecnologías.
BRIEF, el Visual Studio de los ochenta
En un anuncio de la archiconocida revista BYTE aparecido en el número de agosto de 1985 se podía leer algo así como «¡Avance en la edición de programas! Logra un 20 % más de productividad». El llamativo reclamo era por cuenta del software conocido como BRIEF —acrónimo de Basic Reconfigurable Interactive Editing Facility—, un editor de texto para programadores que se hizo muy popular en la década de los ochenta y principios de los noventa. Fue un programa muy adelantado para su tiempo, pues incluía, entre otras características, edición mediante el uso de ventanas WYSIWYG, gestión de expresiones regulares o un potente lenguaje de macros.
Lanzado originalmente (por 195 $) para el MS-DOS de Microsoft y, después, para IBM OS/2 y Microsoft Windows, BRIEF fue diseñado y desarrollado por UnderWare Inc., una compañía fundada en Providence, Rhode Island (EE UU), por David Nanian y Michael Strickman, y publicado por Solution Systems en 1985. En 1990, y visto el éxito que recabó, la compañía contrató a Eric Perkins para desarrollar la versión OS/2 y la de Windows lo más rápido posible. En sólo seis meses, el equipo formado por el propio Perkins y por Blake Nelson y Jeff Simpson, trabajando en estrecha colaboración con los desarrolladores originales, consiguió llevar BRIEF a esas dos plataformas utilizando una arquitectura MVC. Fue precisamente esta versión la que se mostró en la COMDEX de Las Vegas de 1991, algo que impactó de tal manera a la gente de Borland que, posteriormente, la compañía tejana compraría BRIEF y el conjunto completo de herramientas de software de Solutions Systems.
En una época en que la memoria RAM y otros recursos eran escasos, BRIEF se convirtió en una herramienta muy poderosa. Podía editar programas de cualquier tamaño, ofrecer múltiples niveles de deshacer/rehacer, gestionar varios archivos al mismo tiempo y hacerlos visibles en diferentes ventanas.
Disponía, como ya hemos dicho, de un lenguaje de macros similar a LISP y otro inspirado en C, teclado completamente configurable, edición de plantillas y sangría inteligente, tamaño de archivos sólo restringido por el espacio en disco, depurador y compilador interno con soporte para todos los principales compiladores del momento, almacenamiento en caché EMS para todos los archivos y macros, soporte para ratón, operaciones de edición completas y búsqueda y reemplazo de expresiones regulares, entre otras muchas singularidades.
Lo que quizá más llamaba la atención era aquel completo lenguaje de macros, como decíamos inicialmente basado en LISP y luego usando una sintaxis similar a C. Y es que, además, muchas de las funciones propias del editor usaban dichas macros, lo que permitía a los usuarios personalizar los flujos de trabajo existentes a su voluntad, algo similar al actual Sublime Text.
Más de treinta años después, BRIEF sigue vivo y muy vigente en SourceForge por medio del llamado GRIEF, un clon en modo consola para plataformas Unix, Windows y Mac. También en la web de Brief Editor y a través del proyecto CRiSP, un producto comercial en este caso.
Manual de desarrollo en MicroPython para la placa BBC micro:bit
El autor de este humilde blog se complace en presentarles su libro ‘Manual de desarrollo en MicroPython para la placa BBC micro:bit‘, una obra de consulta y aprendizaje ideal para todos aquellos que se quieran iniciar o deseen profundizar en la programación de tarjetas micro:bit en lenguaje MicroPython.
La placa o tarjeta micro:bit es un sistema de hardware integrado, de código abierto, basado en la arquitectura informática ARM y diseñado por la BBC británica con un objetivo eminentemente educacional. Es una computadora de bolsillo que te introducirá en el mundo del desarrollo informático, interactuando de manera conjunta con el software y el hardware.
Python es un lenguaje de programación interpretado simple, de propósito general y orientado a objetos. Además, es también de código abierto. Por su lado, MicroPython es una implementación ágil y eficiente de Python 3.0 —su última versión mayor, por el momento— que incluye un pequeño subconjunto de las bibliotecas estándar del lenguaje padre, la sintaxis y funcionalidad completa, y que, además, está optimizado para ejecutarse en microcontroladores y en entornos restringidos, como en el interior de micro:bit, entre otros.
Con este ‘Manual de desarrollo en MicroPython para la placa BBC micro:bit’ aprenderás de una forma sencilla e intuitiva cómo programar una tarjeta micro:bit para que haga lo que tú quieras. Las posibilidades son infinitas, desde un sensor de humedad para tus plantas hasta un detector de CO2 para controlar el aire que respiras, pasando por un timbre inalámbrico, un medidor de pasos, un generador de voz, mover un motor o encender luces led. ¡Y mil cosas más!
Estás ante el manual de programación en MicroPython para micro:bit en español más completo del mercado. Cuenta con 284 páginas, fotografías, esquemas gráficos, ejemplos de código fuente y aplicaciones prácticas:
- Explicaciones detalladas, amenas y muy completas de todas y cada una de las características de la tarjeta micro:bit y de sus componentes, así como del lenguaje MicroPython.
- Infinidad de ejemplos prácticos de código fuente en MicroPython que sirven de explicación a cada uno de los capítulos, epígrafes y apéndices de información contenida en el libro.
- Rigurosos esquemas de conexión que explican los pormenores de la interacción de micro:bit con elementos externos, cables, pinzas, placas protboard, placas de pruebas, etcétera.
- Descripción minuciosa de proyectos completos de aplicación con fotografías, código fuente, explicaciones, conexiones y hojas de especificaciones de componentes.
Disponible, en Amazon, en tres formatos, a saber: Tabla blanda, tapa dura y versión Kindle.
CONTENIDO GENERAL DE CAPÍTULO PRINCIPALES.
CAPÍTULO 1. La placa BBC micro:bit
CAPÍTULO 2. Programando la placa micro:bit
CAPÍTULO 3. Lenguaje Python para principiantes
CAPÍTULO 4. ¡Hola, mundo!
CAPÍTULO 5. El objeto display
CAPÍTULO 6. El objeto accelerometer y la gravedad
CAPÍTULO 7. Orientación: el objeto compass
CAPÍTULO 8. Los botones de micro:bit, la clase Button y sus dos instancias
CAPÍTULO 9. Generando sonido (los módulos audio y music) y captándolo
CAPÍTULO 10. El módulo speech, porque micro:bit habla y canta.
CAPÍTULO 11. Manejando el tiempo: el módulo utime
CAPÍTULO 12. El sistema de archivos local de micro:bit
CAPÍTULO 13. Administración del sistema de archivos local: el módulo os
CAPÍTULO 14. Los pines de entrada y salida: analógicos, digitales, I2C, SPI y UART
CAPÍTULO 15. Temperatura y otros asuntos internos de micro:bit
CAPÍTULO 16. Comunicación entre dispositivos: redes cableadas y redes inalámbricas
CAPÍTULO 17. Entorno de programación REPL
APÉNDICE A. Referencia del lenguaje Python
APÉNDICE B. Secuencias de escape
APÉNDICE C. Conectividad Bluetooth
APÉNDICE D. El runtime de micro:bit
APÉNDICE E. Actualizar el firmware de micro:bit y compilar MicroPython
APÉNDICE F. WebUSB en micro:bit
APÉNDICE G. Especificaciones técnicas de micro:bit V2 (frente a V1)
APÉNDICE H. Economizar memoria a la hora de programa
BIBLIOGRAFÍA
¡Disfrútalo, y a desarrollar para micro:bit!
De cuando, en 1987, nos trolearon con un programa en BASIC para ZX Spectrum
Corría el mes de abril de 1987 cuando la revista ZX Computing, a la sazón la mayor y más afamada publicación británica para los usuarios de Sinclair, publicaba entre sus páginas un programa en BASIC para el microordenador ZX Spectrum, en sus versiones 16K y 48K. El código fuente lo firmaba un tal Toni Baker —asiduo publicador de artículos similares en revistas de la época— y lo titulaba ‘Memory Expansion Program‘.
En sólo treinta líneas de código BASIC, Toni aseguraba que este pedazo de software era capaz de aumentar la memoria de los ordenadores de Sinclair ZX Spectrum de 16 y de 48 kB hasta llevarlos hasta los 128 kB que tenían sus hermanos mayores de Amstrad, como el ZX Spectrum +2 o el ZX Spectrum +3. La base científica consistía en que todos estos equipos, realmente, compartían hardware, pero el Spectrum de teclas de goma había sido «capado» o recortado para llegar sólo hasta 16 o 48 kilobytes y poder venderlo a menor precio. Según Baker, las funciones avanzadas de los Spectrum de 128 kB, como la memoria adicional, el editor de pantalla completa, etcétera, siempre habían estado disponibles en los Spectrum antiguos y sólo había que saber encontrarlas.
Toni Baker incluía, además, datos técnicos (totalmente inventados) como que los ordenadores de 128 kilobytes enviaban un byte al puerto 7FfD
para paginar la memoria adicional, y eso era lo único que deberíamos hacer en el resto de equipos para conseguir dicha memoria y, de hecho, todas las funcionalidades de un Spectrum «grande».
Y de ello se encargaba el programita adjunto, un simple cargador mediante sentencias POKE
de código máquina almacenado en declaraciones DATA
que se ejecutaba, finalmente, con una instrucción RANDOMIZE USR
. Una vez tecleado el programa, al correrlo notaríamos un breve retraso mientras el código máquina se carga en memoria y, como por arte de magia, nuestro equipo reducido se convertiría en un Spectrum 128K hasta el momento en que interrumpiéramos su alimentación eléctrica. ¡Increíble!
Evidentemente, esto no era más que producto del April Fools’ Day, el día dedicado a las bromas en muchos países anglosajones. Lo que ocurría al ejecutar el programa no era otra cosa que la aparición de una pantalla, centelleante hasta el ataque epiléptico, con el texto ‘APRIL FOOL’ escrito multitud de veces.
El caso es que, aunque ZX Computing admitió la broma con posterioridad, el imaginario de la época nos parece rememorar que, probablemente, se la colaron de lleno a ellos también. Pues parece que un redactor, apurado por el tiempo, incluyó el programa sin comprobarlo, pues venía de la mano de un asiduo y reputado colaborador.
Sea como fuere, los que sí nos tragamos aquel troleo fuimos los usuarios que, ávidos de aumentar la capacidad de nuestra exigua máquina, tecleamos impacientes las treinta líneas del engaño más simpático del mundo retroinformático.