Logo de Torre de Babel
Portada Libros Artículos Perfil Scholar

Shaders en la práctica (IV) - Un PS sencillo

Los PS son programas con una estructura muy similar a la de los VS, si bien los parámetros de entrada y salida sobre los que trabaja son diferentes. La finalidad de un PS básicamente es la de definir el color que tendrá un fragmento o pre-píxel, normalmente usando información procedente de la geometría, texturas, etc.

El color de entrada se recibe en el parámetro gl_Color, que no debe confundirse con el parámetro del mismo nombre existente en los VS. Este parámetro contiene el color obtenido a través de una interpolación en la que intervienen los varying gl_FrontColor y gl_BackColor, normalmente establecidos por el VS, y la orientación que tenga la geometría a la que corresponde el fragmento.

Continuar leyendo ...


Publicado el 25/8/2010

Microordenadores Sinclair (I) - Historia y muchas fotografías

Mientras al otro lado del Atlántico empresas como Commodore y Atari fabricaban los primeros ordenadores dirigidos al ámbito doméstico, en Europa también aparecían emprendedores con la misma visión de futuro y, sin duda alguna, uno de los más importantes fue Sir Clive Marles Sinclair, cuyo apellido dio nombre a una de las gamas de microordenadores más populares en multitud de países entre ellos España.

Desde que fundara en 1961 su primera empresa, con la denominación Sinclair Radionics Ltd., este inventor obsesionado por la miniaturización creó calculadoras de bolsillo, ordenadores, mini-televisores, coches eléctricos y relojes con calculadora, casi siempre adelantándose a su tiempo. Fuera del Reino Unido, no obstante, por lo que más se conoció la marca Sinclair fue por sus microordenadores, de los cuales tengo una pequeña representación como puede verse en la fotografía inferior.

Sí, soy consciente de que los modelos Spectrum +2, Spectrum +3 y PC 200 fueron fabricados por Amstrad tras la adquisición por parte de ésta de todo el negocio de microinformática de Sinclair, pero son productos que seguían bajo la marca Sinclair, marca que ya pertenecía a Amstrad, y por ello los he incluido en este grupo.

En 1977 Sinclair, entonces bajo el nombre Science of Cambridge, lanza un microordenador en forma de kit llamado MK14, basado en el microprocesador INS8060, con 256 bytes de RAM, un display de siete segmentos y un teclado. Opcionalmente podía equiparse con un circuito para mostrar texto (32 columnas por 16 líneas) e incluso gráficos (con una resolución de 64x64 píxeles).

Continuar leyendo ...


Publicado el 23/8/2010

Libros sobre Word, Excel y Access 2010

Portada del libro

Portada del libro

Portada del libro

En los últimos meses he estado trabajando en varios libros sobre Office 2010, la última versión de la suite ofimática de Microsoft. Concretamente he revisado y actualizado uno sobre Word, otro sobre Excel y un tercero sobre Access.

El Manual imprescindible Word 2010 va dirigido a cualquier usuario que, teniendo unos conocimientos básicos de informática (uso del teclado, ratón, etc.) necesite trabajar con este procesador de textos. No se requieren más conocimientos previos, ya que el libro parte de los conceptos más básicos y poco a poco va elevando el nivel de manera didáctica y entretenida, a través de una serie de ejercicios que van desde la redacción de un cuento a la creación de carteles, preparación de cartas personalizadas o la publicación en la web.

El Manual avanzado Excel 2010 y el Manual avanzado Acccess 2010, como indica el nombre de la propia colección, son libros con un nivel algo más alto que el anterior. A pesar de que se incluye un capítulo cero en el que se describen todos los conceptos básicos, éstos no se explican paso a paso asumiendo ya un cierto conocimiento de la herramienta por parte del usuario. A partir de ahí, cada libro en el producto al que va dirigido, se explica cómo aprovechar las características más avanzadas de la interfaz, crear macros, programar funciones propias, etc.

Como es habitual, en la sección Libros puedes encontrar todos los detalles sobre éstos y los demás libros que he publicado hasta el momento, incluyendo imágenes de sus portadas y el índice completo de contenidos.


Publicado el 22/8/2010

Píldora histórica (11): 21 de agosto de 1980

El 21 de agosto de 1980, hace justo hoy 30 años, se produjo una importante reunión entre la empresa IBM y un jovencísimo Bill Gates que, junto con Paul Allen, ya había fundado Microsoft y vendido intérpretes de BASIC y otros lenguajes a multitud de fabricantes de hardware de microordenadores desde mediados de los 70.

IBM planificaba la que sería su línea de ordenadores personales, el famoso PC ancestro de la mayoría de ordenadores actuales, con una arquitectura abierta que sería pública para favorecer que terceras empresas creasen periféricos y todo tipo de dispositivos. IBM necesitaba software para hacer funcionar aquella máquina y el 21 de julio de 1980, tras la firma de un acuerdo de confidencialidad por parte de Gates y Steve Ballmer, la reunión se produjo el citado 21 de agosto. En ella IBM acordó comprar toda la línea de lenguajes de Microsoft: BASIC, COBOL, FORTRAN y Pascal, por un importe de 600.000 dólares.

Durante esa reunión IBM plantea a Gates la necesidad de contar con un sistema operativo de 16 bits para el PC, un tipo de software del que Microsoft no dispone y en el que no tiene experiencia (hasta ese momento se habían dedicado exclusivamente al desarrollo de lenguajes), por lo que Gates les hace saber que Digital Research está acabando el desarrollo de CP/M-86, una versión de CP/M (el sistema operativo más difundido en ordenadores de 8 bits) para equipos de 16 bits. Es más, Gates habla personalmente con Gary Kildall, le hace saber el interés de IBM y acuerda una reunión entre ambos.

Los hechos que se desarrollaron en los siguientes días/semanas son bien conocidos: IBM no llega a un acuerdo con Digital Research (al parecer por el rechazo de Kildall a firmar un acuerdo de confidencialidad y otorgar derechos para introducir cambios en el código de CP/M-86), vuelve con su necesidad a Microsoft que, tras llegar a un acuerdo con Tim Paterson, adquiere QDOS y lo renombra como MS-DOS.

En el documento Bill Gates (scribd) puede encontrarse el relato detallado de lo que ocurrió ese día y muchos otros en la vida de Gates y Microsoft.


Publicado el 21/8/2010

Microordenadores Atari - Historia y muchas fotografías

Una vez limpios, protegidos y empaquetados, los microordenadores de Commodore han dejado paso a un nuevo envío desde el retro-sótano: los microordenadores de la empresa Atari. La inferior es la fotografía de familia, con cinco ordenadores expuestos y un sexto (el 130XE) en su caja.

En la secuencia de tres imágenes siguiente se han agrupado los ordenadores según la generación que les corresponde dentro de la gama Atari: en la primera los Atari 400/800, en la segunda el Atari 800XL y en la tercera los modelos 65XE, 130XE y 520ST. También aparecen la unidad de casete del 800XL, la unidad de casete del 130XE, manuales, transformadores y software en distintos soportes: cartuchos, cintas y discos.

La empresa Atari fue fundada por Nolan Bushnell y Ted Dabney en 1972 tras haber lanzado el primer juego tipo arcade de la historia: Computer Space. Dicho juego lo desarrollaron en 1971 para una tercera empresa, llamada Nutting Associates y, tras iniciar Atari su actividad, planificaron la creación de un juego de tenis que, a la postre, se convertiría en el famosísimo Pong. Tanto Computer Space como Pong eran juegos pensados para máquinas arcade que, con el tiempo, fueron sustituyendo en las salas recreativas a los futbolines y otro tipo de máquinas más antiguas.

Continuar leyendo ...


Publicado el 18/8/2010

Shaders en la práctica (III) - Un VS que se comunica con un PS

Como se apuntó en una entrada previa, los VS y PS pueden comunicarse a través de parámetros varying. Para ser más exactos habría que decir que el VS puede entregar información al PS, por ejemplo a través de los campos gl_FrontColor y gl_TexCoord[N]. También pueden declararse parámetros varying a medida, declarándolos antes de la función main() con la siguiente sintaxis:


varying tipo nombre;

Esta declaración se haría tanto en el VS como en el PS, de forma que el segundo pueda leer el valor asignado por el primero.

El código siguiente es un ejemplo de VS en el que se modifica el parámetro uniforme gl_FrontColor, usado por el PS que genera por defecto Shader Maker para dar color a los fragmentos. Lo que se hace es aplicar una modificación periódica a cada componente, excepto el canal alfa. En este caso la posición de los vértices no se altera.



uniform float time; // Tiempo que lleva ejecutándose el shader

void main()
{
    vec4 v = gl_Vertex; // Tomamos el vertice de origen

    // Se aplica establece el vértice transformado como posición
    gl_Position    = gl_ModelViewProjectionMatrix * gl_Vertex;

    // Se aplica una transformación variable y periódica
    v.x = v.x * abs(sin(time)) + 0.1;
    v.y = v.y * abs(cos(time)) + 0.1;
    v.z = v.z * abs(sin(time)) + 0.1;

    // Modificamos el color que se aplicara a las primitivas
    gl_FrontColor  = vec4(v.xyz,1.0);

Al ejecutar este shader se verá cómo el color aplicado a la geometría va cambiando, algo que no es posible apreciar en una captura de pantalla. En el caso del cubo se produce una suave transición en los colores de cada esquina, variando del verde al robo, magenta, azul, negro, etc.

En la próxima entrega abordaremos el desarrollo de nuestro primer pixel shader.


Publicado el 12/8/2010

Microordenadores Commodore - Historia y muchas fotografías

Tras proteger y empaquetar adecuadamente todas las unidades de almacenamiento y soportes de la entrada del pasado día 5 mi mesa de trabajo quedó vacía, preparada para acoger todos los equipos de Commodore que guardaba en el sótano. Tras varias horas de limpieza y pruebas el aspecto de la mesa era el que podía verse en la imagen inferior.

Familia de microordenadores y periféricos Commodore

En la secuencia de tres imágenes siguientes se pueden apreciar mejor la docena de ordenadores (algunos están dentro de sus cajas) y algunos periféricos. Aparecen, de izquierda a derecha y de detrás hacia adelante, un PET 2001, un VIC-20, un 64C, un CBM 3032, un 16, un Plus-4, un 128 en su caja, un 128D y un 128, un 64C en su caja, un 600HD en su caja y un 500 Plus, aparte un par de unidades de casete, unidad de disco externa, software y manuales.

Commodore PET 2001, Commodore CBM 3032, Commodore VIC-20, Commodore 16, Commodore 64C y Commodore Plus/4Commodore Amiga 600HD (en su caja), caja del Plus/4, Commodore 64C (segunda unidad, en su caja), Commodore 128D, Commodore 128 y Commodore Amiga 500 Plus, unidades de casete 1530 y 1531, joysticks, manuales, software y cablesSegunda unidad de Commodore 128 en su caja

Commodore es una de las marcas míticas para todos aquellos que comenzamos en la informática entre los 70 y los 80. La empresa, no obstante, nació en 1955 como un negocio de reparación de máquinas de escribir y, posteriormente, se dedicó a la fabricación de calculadoras, antes de convertirse, a mediados de los 70, en el primer fabricante de ordenadores personales (no kits, como los que ofrecían por entonces otros fabricantes).

Quizá más mítico que la propia firma fue su fundador, Jack Tramiel, un emprendedor que abandonó Commodore en 1984, dejándola en su apogeo, para iniciar una nueva empresa que se hizo con Atari, por entonces de capa caída tras el fracaso de sus últimos productos en el campo de las videoconsolas de juegos. El objetivo de Tramiel era crear un ordenador de próxima generación, algo revolucionario partiendo desde cero, pero esa es otra historia.

Continuar leyendo ...


Publicado el 10/8/2010

Píldora histórica (10): El origen de MVC

En el campo de la ingeniería del software los denominados patrones representan las buenas prácticas que se emplean para resolver un problema bien conocido. Existen patrones de código, como singleton para evitar que se cree más de una instancia de una clase o strategy para desacoplar la interfaz pública de un sistema respecto de su implementación. En un nivel superior están los patrones arquitectónicos, cuya finallidad es guiar la arquitectura de un sistema software más que resolver un problema discreto.

De los patrones arquitectónicos existentes seguramente el más conocido sea MVC (Model View Controller/Modelo-Vista-Controlador). Se utiliza al construir aplicaciones que cuentan con una interfaz de usuario y permite separar desde un punto de vista lógico los elementos que representan el modelo de la aplicación; el modelo (la información y el estado sobre el que se opera), de la forma en que se presentará al usuario y los medios que se usarán para comunicarse con éste (la vista), actuando el controlador como un gestor que ejecutará las acciones solicitaddas comunicándose con el modelo y actuando sobre la vista. Este desacoplamiento no solamente facilita el diseño, implementación y posterior mantenimiento de un sistema sino que, además, permite que éste cuente con varias vistas intercambiables.

El primer documento en que se habla de la separación de los elementos de un sistema software en un modelo de ordenador, un software controlador y una vista manipulable por el usuario surge en los Xerox PARC (Palo Alto Research Center) en 1978, mencionándose un componente adicional, llamado Editor, que forma parte de la vista.

Durante el desarrollo de una aplicación (por parte de un científico visitante que pasaba una temporada en el PARC) se hizo patente la necesidad de buscar una solución general al problema que planteaba el control de un conjunto de datos grande y complejo por parte de un usuario. El objetivo era adaptar el modelo de ordenador de esos datos al modelo mental de la persona que debía usarlos, interponiendo los componentes software apropiados para ello. La aplicación a desarrollar era un sistema de planificación y en él se empleaban cuatro metáforas: thing, model, view y editor, extrapolación del objeto de interés para el usuario, la abstracción de ese objeto en forma de datos en un ordenador, una o más posibles representaciones de dicho objeto y la interfaz entre el usuario y esas vistas, respectivamente.

Tras un proceso de refinamiento se definió el modelo como una representación del conocimiento con el que debe trabajar el sistema, la vista como una representación visual de ese modelo y se introduce el controlador como el enlace entre el usuario y el sistema. Estas ideas se plasman en un documento publicado el 10 de diciembre de 1979 con el título Model-Views-Controllers, naciendo el acrónimo MVC. La primera implementación de MVC como patrón arquitectónico, más allá de la aplicación puntual que le dio origen, se efectuó en el propio PARC para la librería Smalltalk-80. A partir de ese momento comenzó su popularización y se extendió su uso, con independencia de plataformas, lenguajes de programación e incluso arquitectura del sistema a desarrollar.


Publicado el 9/8/2010

Evolución del almacenamiento externo en los ordenadores personales

Ayer apilé en una mesa, tras subirlos del sótano y dedicar unas horas a su limpieza, los dispositivos y soportes de almacenamiento que pueden verse en la imagen inferior (clic sobre las imágenes para verlas a tamaño completo) y que abarcan varias décadas de evolución en este campo, desde las fichas perforadas y discos de tambor hasta las actuales tarjetas microSD, pasando por distintos formatos de cintas magnéticas y discos flexibles.

Los dispositivos y soportes apilados

En la secuencia de tres imagenes siguientes se pueden apreciar mejor los diferentes dispositivos, repartidos de izquierda a derecha en la misma mesa. A excepción de las fichas perforadas y el disco de tambor, situados en el extremo izquierdo de la primera fotografía, el resto de dispositivos y soportes son de ordenadores personales, sobre todo microordenadores de los 70-80.

Disco de tambor, fichas perforadas y unidades de disco de 8 y 5.25 pulgadas Unidades y discos de distintos tamaños, unidad de CD y unidades de cinta Unidades y cintas de diferentes formatos

En las dos últimas fotografías, en la parte delantera, se ha colocado una llave USB y una tarjeta microSD, lo cual permite apreciar el tamaño relativo de cada elemento.

Continuar leyendo ...


Publicado el 5/8/2010

Curso de shaders

Torre de Babel - Francisco Charte Ojeda - Desde 1997 en la Web