Búsqueda

jueves, noviembre 26, 2009

RoboCop 3: más hacking

Carátula de RoboCop 3

Este fin de semana pusieron en en canal autonómico de Castilla-La Mancha, la película RoboCop 3, bastante malilla en mi opinión e indigna sucesora de las dos primeras. Pero esto no es un blog de crítica de cine, así que vamos a lo que nos interesa, retomando un poco la temática de la última entrada.

En la peli, uno de los personajes es una niña que supuestamente sabe mucho de electrónica e informática. Al inicio de la misma, se une a un grupo de resistencia que se opone al deshaucio indiscriminado que están sufriendo algunos barrios de Detroit. El grupo se mete en un almacén de armas de la policía para saquearlo, pero se topan con un ED-209 (RP-209 en el doblaje de la primera peli); ya sabéis, el robot grande de gatillo fácil que te da 20 segundos para obedecer. La niña, ni corta ni perezosa, se acerca al robot, abre una portezuela de una pata, le conecta un portátil que llevaba con ella mediante unos cables, y en menos de esos 20 segundos se hace con el control del ED-209.

Primer plano de ED-209, mirándo a la cámara, de la primera película

Bueno, como ya sabéis por haberlo repetido muchas veces, la niña debería conocer el funcionamiento del software del ED-209. Además, debería tener previamente en su portátil un programa para controlar un ED-209. Siendo un robot de seguridad, no parece lógico que el OCP (POC en el doblaje de la primera peli) haya hecho públicas todas sus especificaciones. Además, al no ser un sistema conectado a una red, o de uso generalizado, no parece probable tampoco que alguien ajeno al OCP o la policía, pueda haber encontrado una forma de controlarlo.

Pero esto tiene un pase comparado con lo que nos espera al final. Resulta que una corporación japonesa, que ha absorbido al OPC, ante los disturbios en Detroit, envía unos androides llamados Otomo, con apariencia humana y tecnicas de combate ninja. Para que veamos lo mortíferos que son, uno de ellos consigue vapulear a RoboCop sin demasiado esfuerzo. Al final de la peli, RoboCop debe enfrentarse a dos de ellos, en lo que parece una lucha perdida de antemano. Pero entonces aparece la niña con su portátil, y sin conectarlo a nada se pone a teclear, haciendo que los dos Otomo luchen entre sí, destruyéndose mutuamente.

Primer plano de Otomo

Bueno, el ED-209 era un robot más o menos conocido por el público, así que aunque muy improbable, pudiera ser que la niña hubiera averiguado cómo controlar uno. Pero los Otomo eran completamente desconocidos. ¿Cómo pudo la niña hackearlos en unos segundos? ¿Acaso tenían un interfaz sencillo y amigable para que cualquiera los controlase?

Otro detalle a tener en cuenta es la forma en la que el portátil se conecta a los Otomo. La chica no conecta ningún cable a ningún sitio, como la otra vez. «¡Ah, bueno! Usará una conexión inalámbrica» pensaréis. Puede, pero pensad que la película es de 1993. No existía ni nadie imaginaba el Wi-Fi o el Bluetooth (tal vez lo más parecido fuera la antigua red ALOHA). «Pero es una peli de ciencia ficción: de eso se trata, de imaginar tecnologías que aún no existen». Sí, también, pero durante la peli y sus predecesoras, no vemos realmente comunicaciones inalámbricas entre ordenadores. RoboCop, por ejemplo, utiliza un enorme pincho que le sale de los nudillos (en plan Lobezno) para introducirlo en los ordenadores y conectarse, y se sienta en una silla a la que se conecta con cables cuando se realiza el mantenimiento. Para conectarse a un ED-209 son necesarios cables, como se ve en la primera película (en la demo que fue bastante mal) o al inicio de ésta. Todo parece indicar que no existe tecnología inalámbrica en ese futuro cercano.

Y antes de que lo penséis, sí, tal vez los Otomo sí la tuvieran (después de todo, son japoneses), pero ¿y el portátil de la niña? ¿Tiene una tecnología de la que los productos del OCP carecen? Desde luego no se nos muestra previamente, como sí se hace con la habilidad de la niña para entrar en robots ajenos (porque la escena inicial con el ED-209, es precisamente para eso, para justificar su actuación al final con los Otomo). Lo que me lleva a pensar que simplemente los guionistas no pensaron en ese «detalle».

jueves, noviembre 19, 2009

Eureka: Virus informáticos

Carátula de la primera temporada de Eureka

Ultimamente estoy viendo la serie Eureka, que para el que no lo sepa, es una serie de ciencia ficción, a veces bastante fantasiosa, y con momentos cómicos, que trata sobre la vida en pueblo llamado Eureka, habitado por genios científicos que hacen todo tipo de experimentos y descubrimientos. Se podría sacar bastante mala ciencia, pero hoy voy a comentar justo lo contrario: un toque de buena ciencia que me ha llamado la atención.

En uno de los episodios de la primera temporada, un virus informático se introduce en los sistemas informáticos de Eureka. Resulta que allí, todo está controlado por ordenadores conectados entre sí, por lo que se produce un caos. En un momento dado, uno de los personajes dice que el sistema informático no es ningún software conocido por el público en general, sino que que ha sido diseñado ex profeso para Eureka. Por tanto, deduce que el programador del virus debe ser necesariamente alguien del equipo que en su día programó dicho sistema.

¡Bien! Un acierto en el maltratado mundo de la informática en la ficción. Como ya he comentado alguna vez, un virus no es más que un programa, que se aprovecha de vulnerabilidades del sistema a infectar, para ejecutarse ahí y propagarse. Es decir, es un conjunto de instrucciones que aprovecha errores de otros programas, para ejecutarse sin conocimiento de los usuarios. Y parece evidente que para programar algo que aproveche esas vulnerabilidades, éstas deben ser conocidas por el programador. Es así de sencillo.

Además, como cualquier programa, sólo puede ejecutarse en la plataforma para la que ha sido programado. Así, un virus para Windows es no puede ejecutarse en un Mac, y viceversa. Nuevamente, hay que conocer la plataforma destino para poder programar algo que se ejecute en ella.

La propagación o instalación de los virus merece también una mención. Como todo programa, tiene que copiarse de alguna forma en el sistema destino, para ejecutarse. Para ello, o bien se engaña al usuario para que él mismo ejecute el virus (por ejemplo, como adjunto en un correo electrónico que dice que se trata de un salvapantallas de paisajes muy bonitos), o bien se aprovechan nuevamente de alguna vulnerabilidad del sistema para instalarse sin conocimiento del usuario. En este caso, el virus debe poder «llegar» al sistema de alguna forma, mediante la red (aprovechando algún error en el software que gestiona la comunicación entre el sistema y la red), mediante algún soporte físico que se conecte al sistema (antiguamente era habitual el uso de un sector concreto de los viejos disquetes, que el sistema operativo ejecutaba cuando dicho disquete se introducía en la ranura), o de alguna otra forma.

Así que, ciertamente, sólo alguien que conozca cómo funciona el sistema destino, puede programar un virus para él, así como la forma de infectar el sistema.

jueves, noviembre 12, 2009

El color que cayó del cielo

Tras dos entradas dedicadas a cómo percibimos el color ([1] y [2]), es casi obligatorio comentar un relato de H. P. Lovecraft, titulado «El color que cayó del cielo», o «El color de fuera del espacio», dependiendo de la traducción (el título original es «The Colour Out of Space»). La historia gira en torno a un meteorito que cae en el campo, y poco a poco la vida de alrededor se va marchitando, y algunas personas enloquecen. Todo ello debido a algún tipo de ente que llegó a la Tierra en ese meteorito.

A lo largo del relato, se menciona varias veces la presencia de un color desconocido para el hombre, imposible de describir, asociado al meteorito. Así, unos profesores de la ficticia Universidad de Miskatonic estudian un fragmento y «al ser calentada ante el espectroscopio mostró unas brillantes bandas distintas a las de cualquier color conocido del espectro normal». Dentro del meteorito, se halla una sustancia extraña cuyo color se nos describe así: «El color, parecido al de las bandas del extraño espectro del meteoro, era casi imposible de describir; y sólo por analogía se atrevieron a llamarlo color». Las descripciones sobre la incapacidad de describir el color se repiten a lo largo del relato: «su color era tan raro que no podía ser descrito con palabras», «su color era también muy extraño (...) igualmente desconocido para cualquiera que lo viera», «no correspondía a ninguno de los matices que el ojo humano había visto hasta entonces». Bueno, os hacéis una idea ¿no? Un color desconocido por el hombre, nunca visto, y que no se parecía a ningún otro color. Un color de otro mundo.

Pero si habéis leído las entradas anteriores dedicadas al color, comprenderéis que no tiene sentido. El color es un producto de las distintas reacciones de los conos de nuestros ojos ante la luz visible, es decir, ante fotones cuya frecuencia está en un rango determinado del espectro electromagnético. Dicho rango va del rojo al violeta, pasando por todos los colores del arco iris. La radiación electromagnética que cae fuera del rango de la luz visible (y podríamos incluir el ultravioleta cercano en el rango visible, por cierta anécdota contada por Sildur), es invisible para nosotros. No tiene sentido, por tanto, esa referencia a las bandas fuera del espectro normal. Si estaban fuera del espectro de luz visible, entonces no eran ningún color. No era luz visible y no se podía ver con el ojo humano. Y si estaban dentro del rango de luz visible, entonces corresponderían necesariamente a colores conocidos, concretamente, colores espectrales.

Como ya sabéis, el resto de colores corresponden a mezclas de colores espectrales. Uno puede pensar que tal vez haya combinaciones de estimulaciones de nuestros conos, que nadie, o poca gente, haya experimentado, por no encontrarse en la naturaleza. Pero dado que el color es en cierta forma una «invención» de nuestro cerebro, una forma de interpretar esas estimulaciones, ciertamente lo veríamos parecido a otro color familiar. Podéis experimentar vosotros mismos con los sitios Colrd o Colorspire, donde en la propia página podéis mezclar (aditivamente) rojo, verde y azul para obtener cualquier color de la gama RGB. Intentad crear colores raros. Aunque no tengáis un nombre para el color, seguro que podréis describirlos en términos de parecido a otros colores («verde grisáceo amarillento», o «marrón tirando a rojizo»). No creo que encontréis alguno «imposible de describir».

Y antes de que alguien lo mencione, sí, ya sé que así no conseguiremos reproducir toda la gama de color perceptible por el ojo humano, pero si revisáis las figuras de la entrada anterior, veréis que los colores que «faltan» no son especialmente extraños, pues están entre nuestro triángulo y los colores espectrales o la línea recta de los magenta.

martes, noviembre 03, 2009

Gamas de colores

Si recordáis, hace varios meses escribí sobre los colores primarios, y comenté los distintos modelos en los que se parte de tres colores para conseguir todos los demás. Ahí daba a entender que el modelo RGB (donde los primarios son rojo, verde y azul) era el más correcto, el más «natural», puesto que los conos de nuestros ojos nuestros ojos (esos receptores sensibles al color, ¿recordáis?) tienen picos de sensibilidad en el rojo, verde y azul.

Pero resulta que no es exactamente así (gracias Guille, por hacérmelo notar). Los picos de sensibilidad están en las longitudes de onda en torno a los 560 nanómetros para los conos «rojos», 530 nm para los «verdes», y 430 nm para los «azules». Y si miramos a qué color corresponde cada longitud de onda, veremos que la longitud de onda de 560 nm corresponde a un verde amarillento, la de 530 nm a un verde «más verde» y la de 430 nm a un azul violáceo. Por tanto el modelo RGB no se eligió por ser el más «cercano» a la realidad fisiológica de nuestros ojos, sino por otros motivos.

¿Y por qué no usar los colores a los que los conos son sensibles? Pues porque para crear una gama cromática lo más amplia posible, hay que utilizar como primarios, colores bastante «separados» entre sí. Fijáos que los picos de sensibilidad de los conos verdes y rojos (ya sabemos que no son esos los colores, pero vamos a llamarlos así) están muy próximos entre sí. Si usáramos como primario un verde amarillento en vez de un rojo ¿cómo obtendríamos el rojo? Recordad que con el modelo RGB no se puede reproducir con fidelidad el violeta, precisamente porque está «más allá» que el azul (nuestro primario de más baja longitud de onda).

Vamos a verlo de forma más gráfica con un diagrama. Junto a estas líneas, veréis un diagrama de cromacidad, sacado de Wikimedia Commons. ¿El qué? Para explicarlo de forma sencilla, y sin meternos en detalles, es un diagrama de dos dimensiones que nos muestra la variedad cromática que nuestros ojos pueden percibir. ¿Qué representa cada eje de coordenadas? Pues no se trata de ninguna magnitud física, sino de unas funciones matemáticas aplicadas a las respuestas de nuestros conos. La idea es que represente todos los colores de la misma luminosidad. Para entederlo un poco mejor, distintos tonos de grises tienen la misma cromacidad, pero diferente luminosidad (es algo parecido a la luminancia y crominancia que mencioné una vez, relativo a las señales de video).

Bueno, vamos a lo que vamos. Como veis, el diagrama en cuestión tiene una forma que recuerda a la punta de un zapato. El contorno curvilineo corresponde a los colores espectrales, es decir, los colores formados por una única longitud de onda. Los colores del arco iris vamos. Al ver el gráfico, hay que entender que no es una representación fidedigna de la realidad, entre otras cosas, porque ni vuestros monitores, ni el formato de la imagen, pueden reproducir correctamente toda la gama de colores.

Si elegimos tres colores como primarios, y los ubicamos en el diagrama, tendremos tres puntos. Si unimos esos tres puntos, habremos dibujado un triángulo. Pues bien, con esos primarios que hemos elegido, sólo podemos reproducir los colores que estén dentro del triángulo. Una vez entendido esto es fácil ver que lo que interesa es elegir como primarios, tres colores muy separados entre sí, ya que cuanto más separados estén, más área abarcará el triángulo. También es fácil ver que elijamos los colores que elijamos, nunca podremos reproducir toda la gama de colores percibible a partir de tres primarios, porque la gama completa es una figura que no corresponde a un triángulo. Siempre quedará alguna zona que nuestro triángulo no cubrirá.

Supongo que ahora os haréis dos preguntas, a las que no tengo respuesta: ¿Por qué usar el azul como primario, en vez de el violeta (que está más cerca del borde del diagrama)? ¿Por qué limitarnos a tres primarios? Sólo puedo suponer que por una mezcla de razones técnicas, tecnológicas y económicas.