archivo

Archivos Mensuales: mayo 2009

Estaba leyendo la noticia del lanzaiento de KOffice 2.0.0, cuando veo esta captura de pantalla correspondiente a Karbon, el programa de dibujo vectorial de KDE:

karbon-svg-tigerSe trata de una imagen vectorial, en formato SVG y que tiene ya varios años como demuestra esta otra captura:

ld_tigerEl mismo diseño pero casi 20 años atrás y esta vez como fichero de ejemplo del programa LINEdesign para QL (aunque con algunos fallos en cuanto al relleno de degradados), un programa para dibujo vectorial también.

La imagen original es uno de los ejemplos en formato ps parte del paquete Ghostscript. Se ve que el autor de LINEdesign hizo el trabajo de conversión al formato de su programa.

¡Con qué cosas se re-encuentra uno en la red!

htmlSeguramente ya habréis oído hablar, o habréis leído algo sobre ZX Basic de Boriel, un compilador Basic cruzado multiplataforma que es capaz de generar código máquina para el ZX Spectrum. En el mundillo speccy ha tenido un gran impacto y una gran relevancia en la escena internacional.

Hay un artículo fantástico en la revista ZX Magazine escrito por el propio Boriel titulado “ZX BASIC: Un sueño hecho realidad“, donde nos describe de manera resumida y muy amena los detalles de su ZX Basic. La lectura de ese artículo es ¡más que recomendable!.

Da la casualidad que Boriel, es compañero de trabajo (… ¡compañero y sin embargo amigo!, que no es poco, … (:-) …) y además entusiasta de la retroinformática. Dando rienda suelta a la imaginación, en alguna que otra conversación con él, ha salido el tema de la viabilidad de que su compilador pudiera generar código C para luego éste ser compilado a código máquina del 68000 para el Sinclair QL (apoyándonos en esta etapa de alguno de los compiladores C disponibles para el QL). Esta opción sería más simple de desarrollar que la generación directa a código máquina del 68000. De esta manera podríamos tener corriendo en nuestro QL una gran librería de programas escritos en Basic del ZX Spectrum. Tal cual está diseñado ZX Basic, estas posibilidades no son descabelladas (según él describe, sería un trabajo laborioso pero no complicado) ya que el trabajo duro ya está hecho.

Por suerte para Boriel, al final de estas pequeñas conversaciones llega la dosis de realismo y, bueno …, los beneficios reales de todo esto tal vez no justifique el esfuerzo que habría que dedicar a un proyecto así (¡aunque la generación de código C podría ser más que interesante!). No obstante, sí que le he visto con la intención seria de adaptar su compilador para la generación a código máquina para otras plataformas que usen el Z80 (msx, cpc, …).

En definitiva, este proyecto (que ahora es software libre) podría dar mucho de si en el mundillo retro. (Para saber más sobre ZX Basic: http://www.boriel.com/the-zx-basic-compiler/)

Desde QBlog, el reconocimiento a Boriel por su gran trabajo, muchas felicidades por tu “sueño hecho realidad” y todo lo mejor con tus nuevos proyectos.

En otros post anteriores de QBlog hemos visto una utilidad llamada photon para mostrar ficheros .jpg en el QL (tanto con 4, 8, 256 colores y color real). Echando un vistazo por la red, he encontrado también este visor llamado PhotoQL.

PhotoQL es un programa que funciona bajo PE (el entorno de ventanas del QDOS) y además de mostrar imágenes en formato JPG, puede manejar los siguientes formatos: TARGA, BMP, PCX, GIF, JPEG, PNG, PIC, and TIFF.

El programa está escrito por Roberto Porro, y podemos descargarnos una versión etiquetada como 0.19 desde el sitio de Dilwyn Jones (http://www.dilwyn.me.uk/graphics/index.html). Una vez que lo ejecutamos tenemos una ventana “en blanco” con las típicas opciones de las ventanas de PE: redimensionar, mover, sleep (o miniminzar) y la opción ESC. Si pulsamos la tecla ESC o hacemos clic sobre ese botón se nos activa un pop-menú donde se nos ofrecen varias opciones: salir del programa (Quit), cancelar (Cancel) o cargar una imagen (Load). Estas son las únicas opciones disponibles (suficientes ya que sólo se trata de un visor). Si seleccionamos la opción de cargar una imagen (Load) se nos presenta un cuadro de diálogo para seleccionar el fichero de imagen que queremos mostrar. En este cuadro de diálogo podemos navegar por el sistema de ficheros (WIN1_, WIN2_, FLP1_, FLP2_, …) hasta encontrar el fichero deseado. Una vez seleccionada la imagen, PhotoQL cargará la imagen y la mostrará. La imagen está contenida en todo momento en una ventana PE que podemos cambiar de tamaño y minimizar (a diferencia de photon que sólo nos muestra la imagen a pantalla completa).

En lo referente a la calidad de la imágenes, tengo que decir que es algo peor que photon. Photon es superior en cuanto a la transformación de la imagen a 4, 8 y 256 colores. Otra característica en la que destaca Photon sobre PhotoQL es el manejo de la proporción alto-ancho de la imagen. Por último, un pequeño problema de PhotoQL es un error que nos sale cuando intentamos cargar una imagen demasiado grande.

A pesar de todo ello, PhotoQL es una buena utilidad si queremos cargar una imagen en una ventana PE y tener varias imágenes en pantalla al mismo tiempo.

Os muestro a continuación algunas fotos en mi emulador (Q-emulator).

Imagen jpg a 256 colores en ventana PE

Imagen jpg a 256 colores en ventana PE

Imagen completa aquí …

Varias ventanas mostrando fotos, (la de miki es un .gif)

Varias ventanas mostrando fotos, (la de miki es un .gif)

Imagen completa aquí …

¡Ya puedo ver en Q-emulador las fotos tomadas con mi cámara digital! … (suena “friki” ¿no? (:-))


Artículo reproducido en “The Dilwyn Jones Sinclair QL Pages” con permiso de QL Today Volúmen 4, número 3.
Autor: Jochen Merz.
Traducción y adaptación: afx.

En la primera parte de esta serie, yo espero haberte dado una idea de lo que son los Things. Pero ahora, ¿cómo podemos acceder a ellos, cómo crearlos, cómo funciona el sistema de control para poderlos manejar? QDOS y Minerva no tiene llamadas del sistema operativo para añadir o eliminar Things, así que debernos encontrar alguna manera diferente para hacerlo,

Permíteme que empiece el artículo de una forma un poco técnica, en breve relajaremos los tecnicismos. Prometo que mantendré la sección técnica lo más corta posible. Las llamadas al sistema operativo como la reserva de memoria, la vinculación en los drivers, etc. se agrupan todos bajo el “Trap #1”. Éste es el método usado para hacer una llamada al sistema operativo en código máquina. Un registro (D0) contiene el “código de función”. La llamada a los Thing pertenece al mismo grupo, pero hay que tener en cuenta que el sistema operativo del QL está en ROM, no se puede modificar. Además, la lista en ROM no puede ser extendida, no hay un mecanismo para “ganchos” (hooks), etc. Cuando un programador intenta llamar al Trap #1 con un código de función de una llamada a un Thing, el sistema operativo retorna “not implemented” (no implementado). (Sólo para los curiosos: algunas implementaciones de SMS, principalmente SMS2, contienen llamadas a Things como una llamada real Trap#1). Cuando el programador intenta ejecutar una llamada a un Thing y obtiene un “not implemented”, entonces él debe usar un método alternativo de hacerlo -que debería funcionar siempre-. La extensión del sistema “HOTKEY System II” no solo añade mejoras en las facilidades HOTKEY de los sistemas QDOS y Minerva, sino que también añade llamadas a los Thing de una forma ligeramente diferente. No voy a entrar en los detalles ahora, pero un programador puede fácilmente encontrar las llamadas de los Things y ejecutar dicha llamada con los mismos parámetros y códigos de función en DO de forma que se puede trabajar con ellos de la misma manera que otras llamadas al sistema. Ahora ya acabamos con los tecnicismos.

Así, con el fin de obtener Things, tú necesitas tener cargado el HOTKEY System II. Éste está integrado dentro de SMSQ/E, pero si usas QDOS o Minerva entonces necesitas cargarlo separadamente. Además, si deseas ver una lista de Things cargados en tu sistema para verlos en acción deberías también cargar QPAC2. QPAC2 está formado por un conjunto de Things y además te permite listarlos, así que tiene una doble utilidad.
…………
Nota del traductor: A continuación un recorte de código para tu boot, de esta manera puedes cargar HOTKEY y QPAC (se presupone que estás usando Toolkit 2).

100 REMark --- Cargar PE, HOTKEY System II y QPCA2
110 LRESPR "flp1_ptr_gen"
120 LRESPR "flp1_wman"
130 LRESPR "flp1_hot_rext"
140 LRESPR "flp1_qpac2"

Puedes encontrar varias de estas utilidades en los siguientes sitios:
http://www.bytemaniacos.com/sinclairql/
http://www.dilwyn.me.uk/
……….

Bueno, teclea ahora la siguiente instrucción desde el BASIC

EXEP "Things"

Aparecerá una ventana mostrando una lista con los Things de tu sistema. Y …. ¡tú ya habrás usado un Thing llamado “Things”!. Éste último es un Thing ejecutable instalado por QPAC2 el cual te proporciona un job que lista los Things de tu sistema. Así que tú ahora puedes iniciar programas sin acceder al sistema de ficheros para cargarlos. Si ahora estás un poco confuso, entonces por favor lee otra vez la parte 1 de estas entregas – tal vez lo hayas leído hace algún tiempo por lo que habrás olvidado la teoría que explicamos allí-.

Lista de Things

Lista de Things

Si nos fijamos en los Things disponibles, encontraremos Things como “Button”, “Exec”, “Jobs”, “HOTKEY”, y más abajo al final de la lista ordenada alfabéticamente, “Things”. ¡¡ Esto es todo !!

Intenta otra cosa, por ejemplo

EXEP "Pick"

y otra ventana aparece dándote la lista de todos los jobs con CONsolas abiertas que pueden ser seleccionadas (“picked”) en la parte superior de la pila de ventanas.

Intenta ahora

EXEP "Button Frame"

… no ocurre nada. Seguramente habrás notado que el sistema ha intentado acceder al disco floppy y/o al disco duro. “Button Frame” no es un Thing ejecutable, por lo que el comando EXEP intenta abrir entonces un fichero llamado “Button Frame” en el dispositivo predefinido de programas (el cual se puede configurar con PROG_USE).

Bien, regresemos al menú “Things” anterior y hagamos clic en la palabra “Things” en la lista. La ventana cambiará y tú podrás ver que hay (al menos) un job registrado como usuario de este Thing, que es (poco sorprendente) “Things”. ¿Confuso?, presiona ESC para volver a la lista y selecciona Pick. Esto debería ser menos confuso.

Si tú tienes botones en la zona de botones de QPAC2, entonces puedes ver qué job están registrados como usuarios – vuelve hacia atrás, a la lista de Things y selecciona “Button Frame”, podrás comprobar entonces los distintos jobs que hacen uso de este último Thing.

Jobs que usan un Thing

Jobs que usan un Thing

QPAC2 viene con muchos Things pero hay un problema: muchos Things tienen el mismo nombre en diferentes idiomas, pero otros no. Nosotros, los traductores, (Wolfgang Lenerz para la versión en francés y yo para el alemán) decidimos independientemente uno de otro que “Button_Sleep” no era muy significativo para los usuarios en Alemán o en Francés y lo tradujimos. ¡Gran problema! A partir de entonces no fue posible reemplazar una versión Inglesa por una Alemana y viceversa. Pero supongo que ahora es demasiado tarde para cambiar las cosas (o los Things !!). La solución es probablemente tener ambos nombres de Things en Inglés y Alemán (o Francés) para el mismo job … pero eso es una cuestión diferente.

Vamos ahora a crear un nuevo Thing. ¿Deseas convertir XCHANGE en un Thing como por ejemplo el menú “Pick”? Fácil, el HOTKEY System te ayudará a hacerlo:

ERT HOT_CHP ("X","XCHANGE")

Tú debes tener XCHANGE disponible en el dispositivo por defecto para los programas. Mediante esta sencilla instrucción convertimos un ejecutable en un Thing llamado XCHANGE. Comprueba ahora el menú “Things”, XCHANGE estará ahí.

Y, aún mejor, si ahora tecleas

EXEP "XCHANGE"

¡el programa se iniciará sin ningún acceso al disco duro! Por supuesto, se puede iniciar también usando el HOTKEY System II (pulsando ALT X, pero recuerda que el job HOTKEY se activa tecleando HOT_GO primero).

Cuando tú liberas de la memoria la definición HOTKEY, el Thing también será liberado.

El HOTKEY System II ofrece otras funciones que permite que HOTKEYs sean asignados a Things existentes sin que ellos sean eliminados de la memoria cuando el HOTKEY es eliminado, pero esto lo explicaremos en la siguiente entrega de esta serie. También, los Things que están integrados en QPAC2 son más avanzados que los que tu puedes crear manualmente, pero esto también es material para otro artículo.

linus_torvaldsCuando enumeramos las características del QL a alguien que no ha oído hablar de este ordenador en su vida, a menudo se nos cuela orgullosamente la figura de Linus Torvalds en nuestra explicación, -pues fue usuario de este ordenador-, y sólo con decir su nombre parece que se revistan nuestros argumentos de un cierto abolengo.

Es como si quisiésemos relacionar de alguna forma el QL con el nacimiento de Linux a través de la figura de Torvalds, ya que, indudablemente, algo habrá aprendido mientras lo usó que pudo aprovechar en sus desarrollos.

Pero ¿que opina verdaderamente Torvalds sobre el Sinclair QL después de tantos años?

Con motivo del 25 aniversario, Urs König contactó con él, y esto es lo que respondió en su blog bajo el título “Hardware raro”:

«No soy muy sentimental en lo que respecta a la tecnología -los buenos viejos tiempos no fueron buenos del todo-, y yo me siento firmemente liberado cuando se trata de viejos ordenadores y periféricos. Elijo lo más reciente / más pequeño / más rápido frente a aquellas anticuadas máquinas de antaño.

Como resultado de ello, cuando alguien me envía un correo electrónico diciendo que el Sinclair QL ha cumplido 25 años ayer, y que debería mencionarlo en mi blog, me dije “hmm”. Porque aunque yo tuve uno y me gustaba, tengo que decir que fui mucho más feliz con el PC por el que lo acabé reemplazando, y decidí que no volvería a usar una máquina tan excéntrica nunca más.

(Una promesa que luego rompería en varias ocasiones, cuando acabé jugando con ambos alfa y PowerPC en mis esfuerzos por asegurarme de que Linux no era demasiado PC-céntrico. Pues bien. Cada vez acabo volviendo a prometerme que nunca volveré a hacerlo, y cada experiencia me convence más de que el hardware que no tiene un mercado de masas tiende a no ser valorado a largo plazo. Sin embargo, sí puede ser divertido e interesante y una experiencia docente).

Pero el correo de Urs König (alias cowo) terminó distrayendo mi mente y me trajo de nuevo recuerdos nostálgicos. Así que aquí estamos, veinticinco años y un día más tarde, y estoy escribiéndole al QL de todos modos. Era extraño, y era áspero hasta el punto de ser la única máquina en la que tuve que hacer “cirugía” en el hardware para hacerla estable y útil, pienso que yo estaba en una edad impresionable. Y aunque no creo que queden muchos QL de los que alguna vez se hicieron fuera de Gran Bretaña, se trata de una máquina interesante para su tiempo.

He aquí un hardware raro.»

Linus Torvalds, 13 de enero de 2009


El inventor que colocó las cifras de la población de Estados Unidos en tarjetas perforadas y fundó la mayor empresa de informática del mundo.

XHolleritHollerith nació en Estados Unidos en 1860. Después de graduarse en la Universidad de Columbia consiguió empleo en la US National Census Office (Oficina Nacional de Empadronamiento), ayudando a elaborar estadísticas tomadas del censo de 1880. Todo el trabajo se realizaba a mano y resultaba concienzudamente lento; lo era tanto que, de hecho, cuando diez años más tarde llegó el momento de realizar el censo siguiente, en la oficina todavía no habían terminado de tabular los resultados del anterior. Hollerith sabía que su mayor aptitud era su poder de invención; con el objeto de entrenarse como inventor y desarrollar sus cualidades creativas, abandonó su trabajo en la National Census Office e ingresó en la Patent Office (Oficina de Patentes) de Washington.

La primera idea de Hollerith fue la de codificar información en cinta de papel. La cinta de papel estaba dividida en “campos” mediante marcas de tinta. Cada campo representaba diferentes categorías: por ejemplo, varón o mujer o blanco o negro. La presencia de un agujero en el campo varón/mujer significaba la persona era varón, mientras que su ausencia implicaba que se trataba de una mujer, y así sucesivamente. Estos agujeros después se podían “leer” mediante una máquina. Sus primeras patentes se produjeron en 1884 y dedicó los años siguientes a perfeccionar el sistema. Empezó por procesar la información relativa a las estadísticas de sanidad de las ciudades norteamericanas, que se estaban desarrollando rápidamente, y de la administración militar.

Cinco años después, en 1889, perfeccionó la idea de la cinta de papel perforado utilizando tarjetas separadas para cada persona. Las tarjetas eran del tamaño de los billetes de un dólar; se dice que esto se debió, en parte, a que los únicos equipos que se pudieron adaptar habían sido construidos para manipular dinero. Originalmente los agujeros eran redondos y se hacía con el punzón que utilizaban los conductores de autobuses para perforar los billetes, pero luego se construyeron punzones especiales para cortar un agujero cuadrado de 6 mm. Así se podía incluir gran cantidad de información en una sola tarjeta.

La ventaja que ofrecen las tarjetas individuales sobre la cinta continua es que, además de obtener los totales, la información se puede clasificar. Por ejemplo, a usted tal vez le interese saber qué cantidad de mujeres blancas de 80 años de edad viven en la ciudad de Nueva York. Se podrían clasificar todas las tarjetas y las que tuvieran agujeros perforados en estos tres campos se podrían separar mecánicamente del resto. Estas primeras máquinas sólo podían producir totales, pero posteriormente Hollerith introdujo la suma y otras operaciones aritméticas sencillas.

El éxito comercial llegó en 1889, cuando el Bureau of Census (Departamento de Censos) convocó un concurso para proveerse de un sistema de equipos que procesara el censo que se realizaría al año siguiente. Los sistemas se probaron volviendo a tabular los datos obtenidos del censo anterior. La convocatoria la ganó el equipo de Hollerith. Para entonces todas sus máquinas estaban amparadas bajo patentes y él aprovechó su monopolio para cargarle al gobierno 65 céntimos por cada mil tarjetas procesadas. Aunque cada habitante de Estados Unidos tenía su propia tarjeta individual, Hollerith sólo tardó dos años en hacer el trabajo. Anunció que la población del país era de 56 millones de habitantes y presentó la factura al gobierno.

Cuando llegó el momento de realizar el censo de 1900, Hollerith había desarrollado una maquinaria muchísimo más eficaz, pero se negó a rebajar su tarifa. Cuando caducaron sus patentes, el gobierno buscó otras empresas, pero Hollerith superó a la competencia fundando su propia compañía, que posteriormente se convertiría en IBM (International Business Machines), firma que hoy está a la cabeza de las empresas fabricantes de ordenadores en todo el mundo.

(Fuente: Enciclopedia Mi Computer, fascículo 12. Editorial Delta, 1984.)

miniqlis25

Logo oficial del evento diseño de badaman

Cerca de Coventry, en el hotel Allesley, el sábado 18 y el domingo 19 de abril se celebró el 25 aniversario del nacimiento del QL, un evento conmemorativo conocido como QLis25 que, junto a la reunión de socios de QUANTA, contó con visitantes venidos de toda Inglaterra, Francia y Holanda.

Ya el viernes por la noche, los que llegaron antes tuvieron ocasión de cenar y tener una charla previa al encuentro.

Este dio comienzo a las 10 de la mañana del sábado. Además de las habituales mesas de expositores con material a la venta, se preparó una muestra retrospectiva de la historia del QL que contó con verdaderas rarezas como dos ordenadores Thor, un Thor 21 y un Thor XVI, una MCS Multi-ROM, dos versiones de una Sinclair/Micro Peripherals disk interface o una CST Q+4, un muy raro slot para 4 expasiones entre otras cosas.

qlis25_general_view

Vista general del evento

A las 11 empezaron varias charlas interesantes acerca de la actualidad del QL, y así transcurrió el día hasta la noche en la que se reunieron todos para despedir al presidente saliente de QUANTA y se nombraron miembros honorarios a Tony Firshman, Jochen Merz y a Gil Lamb que vive en Tailandia y es el miembro más antiguo de club con 94 años de edad.

A las 2 de la tarde del domingo dio comienzo el AGM, la reunión anual de socios de QUANTA, en la que hubo algunos cambios de directiva siendo elegida la primera mujer directora de su historia y se presentaron novedades en algunas de las actividades del club, como la página web y la biblioteca de software.

La reunión terminó a las 4 de la tarde habiendo disfrutado todos de un fin de semana entre amigos.

Sigue el enlace para leer la noticia original en inglés y ver algunas fotos.

resumen_QL01Desde hace unos meses, con la llegada de QBlog y las traducciones de Afx de material al castellano, los contenidos sobre QL son cada vez más numerosos y ese trabajo ha de destacarse.

Con la idea de hacer resúmenes de lo publicado ponemos a disposición de nuestros visitantes estos coleccionables que recogen enlaces a artículos de gran interés. Es como un Ezine pero en pequeñito, con sólo lo esencial. Apenas una hoja volante de dos caras que esperamos ayude a difundir los contenidos entre los aficionados al mundo retro.

Ya está disponible el primer número en PDF, y esperamos hacer lo mismo 3 veces al año, cada 4 meses. ¡Descárgalo ya! y cuéntanos que te ha parecido.

ACTUALIZACIÓN 19-05-2009: Se me olvidaba decir, para que conste, que la idea de este nuevo invento es cosa de Afx.


Artículo reproducido en “The Dilwyn Jones sinclair QL Pages” con permiso de QL Today Volúmen 4, número 1.
Autor: Jochen Merz.
Traducción y adaptación: afx.

Sé que debería haber escrito este artículo hace algún tiempo, pero yo no estaba seguro de qué escribir y cómo empezar.

Decidí que debería empezar con algún tipo de explicación general acerca de los “Things”, contar lo que podrías hacer con ellos (probablemente, ya los habrás usado durante bastante tiempo sin saberlo) y dar una explicación de cómo usarlos y cómo crearlos. Por supuesto, esto no va a caber en una sola entrega y como no queremos llenar este artículo con un largo listado en ensamblador solamente, yo dividiré el tema en varias partes. Tómalo como un tutorial, y esta es la primera entrega de tres.

Para asegurar de que no se confunde demasiado el término, pondré el término “Things” en mayúsculas, cuando me refiera a los Things de SMSQ.

El término Thing fué usado porque un Thing puede ser virtualmente cualquier cosa. Puede ser un controlador de dispositivo, un área de datos, puede ser un menú, puede ser una extensión del sistema, puede ser un programa …

La primera ventaja de los Thing es que tienen un nombre único. Tu puedes identificar a un Thing por su nombre, y localizarlo en la memoria del sistema. Un Thing puede estar localizado en cualquier sitio en la memoria de tu ordenador, y la única forma de encontrarlo es por su nombre (de forma similar a como nos referimos a un fichero específico en el sistema de archivos por medio de su nombre).

Si un job (tarea) quiere usar un Thing (hay diferentes maneras de usar los Thing, dependiendo de lo que son realmente, pero veremos eso más adelante), en primer lugar, el job tiene que tratar de averiguar si el Thing existe en tu sistema -de otro modo no podría usarlo-. De forma análoga a un archivo, si tratamos de abrir un archivo de disco, debemos buscar previamente si existe o no ese archivo.

Si el Thing existe y se le permite al job usarlo (puede haber limitaciones que dependen del Thing, algunos Thing sólo permite ser usado por un usuario a la vez, otros pueden ser usados por más de un usuario) entonces el job es marcado como un usuario de ese Thing particular, el job “sabe” que el Thing existe y obtiene su dirección de memoria. Es incluso posible que se produzca un timeout cuando se intenta usar un Thing (es posible por ejemplo cuando se intenta abrir un fichero y esa tarea falla), útil para los Thing que pueden ser usados sólo por un usuario al mismo tiempo, por lo que el job puede intentarlo durante un tiempo predefinido o abortar el intento.

La dirección del Thing es lo que obtienes, y eso es todo lo que necesitas porque ésta es la principal idea: una especie de “sistema indexado” para partes del sistema software de tu ordenador, junto con un registro de usuarios. Suena simple ¿no es así? y en realidad lo es.

Un job es un usuario del Thing hasta que lo libera (similar al “cierre”). En la medida en que un job es un usuario de un Thing, su “vida” depende de la presencia del ese Thing. Como SMSQ es, al igual que QDOS, un sistema con auto-limpieza, eso significa que si se remueve algo del sistema, todos los ítems relacionados con él son también de alguna manera cerrados o liberados. Si tu remueves un trabajo en SMSQ/QDOS, entonces todos los canales que son propiedad de este job son automáticamente cerrados por el sistema, toda la memoria propiedad del job es retornada a la lista de memoria libre, todos los jobs de los que éste es propietario son liberados y así de forma recursiva hasta que todos los recursos que son propiedad o usados por este job son liberados.

Los Things van un paso más allá. Cuando un job se convierte en un usuario de un Thing, parece lógico que quiere hacer algo con él y confía en su presencia. Si el Thing es liberado de la memoria, entonces naturalmente todos los jobs que están registrados como usuarios de ese Thing son liberados también por el sistema, de otro modo ¿cómo podría continuar la ejecución de un job si el Thing necesario ya no está disponible? Esto podría conducir a resultados inesperados y seguramente nosotros preferiríamos tener un sistema estable. Pude sonar un poco tosco el remover jobs de esta manera, pero piénsalo ¿qué otra cosa se puede hacer?

DIFERENTES THINGS …

Como ya he mencionado … es posible tener diferentes tipos de Things. Teóricamente es posible que cada trozo o sección de la memoria pudiera ser un “Thing”. Esto probablemente sería “excesivo”, pero sin embargo sería posible. No es necesario que todas las localizaciones de memoria sean reconocibles por su nombre, pero si lo piensas bien, podrías encontrar que es útil el que largas partes de la memoria, que contienen diferentes partes del sistema operativo y controladores de dispositivos sean reconocidos por su nombre. Podrías personalizar tu sistema mientras esté en funcionamiento, agregar controladores, liberar controladores, actualizar controladores.

En el pasado, añadir otro controlador de disco-RAM mientras otro controlador de disco-RAM estaba siendo usado no conducía a un sistema limpio. El antiguo controlador de disco-RAM permanecía en el sistema y tú te encontrabas con dos entradas “RAM” en la lista de dispositivos de QPAC2, la primera no se eliminaba. Todavía podías acceder a él, esto podría ser un poco complicado, pero es posible. ¿Y qué ocurre con los ficheros que estaban abiertos en la primera unidad de disco-RAM? Pues que permanecerán abiertos hasta que tú lo cirraras. Si abres de nuevo el mismo nombre de archivo otra vez se abrirá a un diferente disco-RAM …. ooooop, ambiguo, ¿no?

Si el controlador de disco-RAM fuera un Thing, entonces cuando el nuevo disco-RAM fuera cargado el viejo disco-RAM sería removido del sistema, la totalidad de la memoria reservada para él sería liberada y el job con los canales abiertos a ese disco-RAM serían liberados. ¿Qué otra cosa se puede hacer? No hay medias tintas en este proceso.

Los Things también pueden ser muy útiles en las extensiones del sistema. La extensión “Menu” puede es un ejemplo muy bueno. Si tu reemplazas la extensión “Menu” por una versión más reciente, la antigua extensión se descarga completamente de la RAM y se sustituye por la nueva versión. Pruébalo: inicia QD (un editor de texto que usa la extensión “Menu”), intenta cargar un archivo, pero cuando el cuadro de selección del archivo aparece (éste cuadro de diálogo no forma parte de QD sino es que forma parte de la extensión “Menu” en ese momento) regresa al BASIC y vuelve a cargar la extensión “Menu” una vez más (empleando LRESPR MENU_rext). En primer lugar, la antigua copia de la extensión “Menu” es removida (y por tanto, QD también será removido, -recuerda, todos los procesos usuario de un Thing son liberados cuando se libera el Thing) y posteriormente la nueva extensión “Menu” es instalada en el sistema.

QD (y otros programas) solamente usan Things en el momento en el que realmente lo necesita, esto significa que puedes cargar una nueva extensión Menu sin necesidad de remover los jobs que lo están usando en ese momento. Sería posible (y puede que un poco más rápido) para un job registrarse a sí mismo como usuario de la extensión Menu (obteniendo la dirección de la extensión) y luego seguir siendo usuario de esa extensión y llamarla cada vez que se necesite, esto ahorrará algunas llamadas y también funcionaría (recordemos que la dirección no cambia: si reemplazamos la extensión Menu, lo que llevaría a un cambio de esta dirección, no provocaría ningún daño, porque en ese momento los usuarios de la extensión serían liberados).

QD (editor)

QD, editor de textos de Jochen Merz que hace uso de Things

Thing Menu

Thing Menu, un Thing creado por Jochen Merz que actúa como cuadro de diálogo para buscar ficheros, es muy popular y es usado por muchas aplicaciones

Espero que por ahora no estés muy confundido, una vez más piensa en el sistema de los Things como un sistema de identificación y registro.

No hay ningún límite sobre lo que pueden ser los Things. Parece lógico que si podemos tener extensiones Thing, nosotros podemos tener Things ejecutables también (al igual que con los archivos, puedes observar la analogía en todo momento). Es posible tener muchos canales de entrada al mismo tiempo, así ¿por qué no tener muchos usuarios que utilizan el mismo código de programa el cual sólo existe una vez en memoria?.

Este es el concepto de los Things ejecutables. El código de programa, es el mismo todo el tiempo sin importar si cero, uno o cualquier número del mismo job lo usa, sólo necesita estar en memoria una sola vez. Todos los programas QPAC2 son Things ejecutables, y tú puedes ejecutar tantos como tú quieras mientras dispongas de memoria.

Ahora, seguramente estarás definitivamente de acuerdo que los jobs o usuarios de los Things deben desalojarse si éste se elimina de la memoria, ¿cómo se pude ejecutar un programa si su código necesario se ha ido? Como podrás ver, el concepto no suena demasiado radicla ¿no?

El tercer tipo general de Thing es el Thing de tipo “datos”. Una vez más, es responsabilidad del programador definir la estructura de datos que se almacenan aquí, cómo se organizan y como deben ser usados. No me canso de repetirlo: el sistema de Things es una herramienta para ayudar al job (a la tarea) a encontrar y a registrar un conjunto de información o de datos para luego usarlos.

Creo que eso es suficiente por el momento. En la próxima parte vamos a echar un vistazo a los Things en tu sistema (siempre que hayas cargado QPAC2) y una de las varias formas que existen para crear un Thing tú mismo


Zuse logró en Alemania resultados similares a los obtenidos por Von Newuman en Estados Unidos.

XZuse

Con frecuencia en distintos lugares del mundo se producen inventos simultáneamente a partir de ideas que surgieron y se desarrollaron independientemente unas de otras. En la década de los cuarenta, mientras en Estados Unidos se estaba construyendo el primero ordenador de válvulas (el ENIAC), un ingeniero alemán, Konrad Zuse, trabajaba en una calculadora programable, que se considera como el primer ordenador de la historia.

Zuse nació en Berlín el 22 de junio de 1910. Después de estudiar en la Universidad Técnica de la ciudad, trabajó como ingeniero aeronáutico para la Henschel Aircraft Company, dedicándose al diseño de alas. Los principios matemáticos básicos aplicados al refuerzo de las alas de los aviones ya se habían establecido en la década de 1920. No obstante, los cálculos individuales necesarios para producir cada par de alas requerían equipos de personas trabajando con máquinas de calcular mecánicas y reglas de cálculo. Zuse comprendió muy pronto la necesidad de contar con una máquina que pudiera efectuar con rapidez este trabajo que ocupaba tanto tiempo. Por las tardes, en compañía de otros amigos, emprendió, en el piso de sus padres, la labor de construir un ordenador que pudiera realizar esta tarea.

Su primera máquina, el Z1, era un dispositivo mecánico que podía efectuar las cuatro operaciones aritméticas elementales, calcular raíces cuadradas y convertir números decimales a notación binaria y viceversa. Aunque no estaba enterado de los logros de Charles Babbage, cuyo ingenio diferencial se había creado para efectuar los laboriosos cálculos que requerían las tablas náuticas, Zuse había llegado a conclusiones similares y a otras que eran mucho más avanzadas. El descubrimiento más sensacional de Zuse se produjo al comprobar que una palanca era un interruptor que se podía colocar en una de dos posiciones (encendido o apagado) y que, por consiguiente, se podría utilizar ya como medio para almacenar datos, ya como dispositivo de control.

Zuse pretendía representar tanto los datos como las instrucciones en forma binaria, y en el año 1941 inició la construcción de un ordenador electromagnético, al que llamó Z2. Dedicado de lleno al esfuerzo de la guerra, el gobierno alemán se mostró poco interesado, al principio, en el invento. No obstante, finalmente acabó por reconocer el potencial interés militar del aparato y le proporcionó fondos a Zuse para desarrollar el Z3. Éste había de ser un ordenador eléctrico, con un tendido de cables eléctricos, que posibilitaron un diseño más compacto y elegante, en lugar de los enlaces mecánicos que utilizó en las máquinas anteriores.

Zuse construyó el Z3 pese a no pocos contratiempos. Los bombardeos de Berlín por los aliados le obligaron a trasladar su taller en diversas ocasiones. Dos veces lo llamaron a filas, sólo para mandarlo de vuelta desde el frente oriental para que continuara con su trabajo. La escasez de materiales durante la guerra le forzó a improvisar, obligándolo a servirse de piezas extraídas de los engranajes de conmutación telefónicos y a utilizar copias de antiguas películas, perforadas con códigos de ocho agujeros por fotograma, en lugar de cintas de papel.

El Z3 podía almacenar 64 palabras, cada una de ellas de 22 bits de longitud. A la información se le daba entrada a través de un teclado y los resultados se exhibían visualmente en un conjunto ordenado de lámparas montadas sobre un tablero. Lamentablemente, el Z3, al igual que todos los ordenadores anteriores de Zuse, fué destruido en 1945 durante un bombardeo de Berlín.

Uno de los ordenadores lo adaptó la Henschel Aircraft Company para ayudar en la construcción de la bomba volante HS-293. Se trataba de un avión no tripulado que se lanzaba desde un bombardero y se guiaba hasta su objetivo por radio.

El último ordenador que produjo Zuse, durante la guerra, el Z4, había incrementado la longitud de sus palabras a 32 bits. Cuando los aliados se acercaban a Berlín, la máquina fue trasladada a Gotinga. Finalmente quedó instalada en Basilea (Suiza), donde estuvo en funcionamiento hasta 1954.

Zuse no consiguió fabricar ordenadores en la Alemania de la postguerra, por lo cual dedicó sus esfuerzos a la teoría informática. Desarrolló un sofisticado lenguaje denominado Plankalkul que podía tratar lógicamente tanto con matemáticas como con información más general. Cuando pudo volver al campo de la creación de ordenadores, fundó la Zuse Company, que fue la fábrica más importante de ordenadores de Alemania hasta 1969, en que fue absorbida por Siemens Corporation.

(Fuente: Enciclopedia Mi Computer, fascículo 13. Editorial Delta, 1984.)