Búsqueda

Mostrando entradas con la etiqueta informática. Mostrar todas las entradas
Mostrando entradas con la etiqueta informática. Mostrar todas las entradas

martes, enero 28, 2014

Transferencias de dinero en la red

Hace unos meses recibí un correo de uno de vosotros (hola Fernando), avisándome sobre algo que ocurría en el primer episodio de la serie Arrow (para los despistados, es una versión televisiva del superhéroe de DC, Flecha Verde). En dicho episodio se realizaba una transferencia bancaria (de forma fraudulenta) a través de un ordenador, y se nos mostraba una pantalla, donde veíamos dos barras de progreso (una para la cuenta origen, y otra para la cuenta destino) y un contador de dinero que iba creciendo rápidamente, dolar a dolar.

Esta forma de mostrar una transferencia bancaria online, no es exclusiva de la serie. Se ha convertido en un estereotipo, y la podemos ver en casi cualquier película o serie de televisión, con distintas variantes. En todas ellas vemos una barra de progreso avanzar a la vez que un contador de dinero se incrementa o decrementa a gran velocidad, pero siempre de unidad en unidad.

Como cualquiera que haya utilizado alguna vez la web de un banco sabrá, la realidad es muy diferente. Y el motivo es muy sencillo: el dinero no «viaja» por la red dolar a dolar. Cuando se realiza una transferencia, en realidad se están haciendo apuntes en las cuentas afectadas. A una se le resta una cantidad y a otra se le suma esa misma cantidad. Y no importa si la transferencia es de 1 euro o de 1.000.000. En lo que a los ordenadores se refiere, es exactamente lo mismo, y tardan lo mismo en hacer la operación. Sólo cuando los números implicados son muy grandes y exceden la longitud de su «unidad básica» de aritmética (y con 64 bits, estaríamos hablando de números de 20 dígitos o más), hay que trocear la operación. Pero aún así, el tiempo de cálculo sería casi inapreciable (la suma y la resta son operaciones muy «baratas» en cuanto a proceso).

En realidad, lo que más tiempo puede llevar es la comunicación en sí a través de la red. Es decir, el tiempo que tardan los datos (números de cuenta e importe, por ejemplo) en ir desde nuestro terminal al servidor correspondiente, y el tiempo que tarda el resultado en llegar, una vez completada la operación. Y ese tiempo es también independiente del importe (alguien podría decir que no es exactamente así, pero la diferencia debida a los pocos bytes de más que podrían suponer el mandar un número más grande, comparado con el resto de datos y metadatos, es casi despreciable).

Es interesante hacer notar que, cuando la transferencia es de un banco a otro, no siempre en inmediatamente efectiva. ¿Qué quiere decir esto? Que aunque la información haya viajado en pocos segundos, dependiendo de los acuerdos entre bancos, o incluso de la legislación, es posible que una vez realizada la transferencia, en realidad pasen unas horas (o días) hasta que el dueño de la cuenta destino vea efectivamente su saldo incrementado (como también, muchos de vosotros ya habréis experimentado). Y eso ya no depende de elementos técnicos (la información ha viajado correctamente), si no de procedimientos internos de cada banco.

martes, febrero 26, 2013

Los apuntes de adeteran

Una pequeña cuña de autopublicidad.

He comenzado otro blog llamado «Los apuntes de adeteran». Con él pretendo documentar problemas y soluciones que he encontrado en mi vida de informático, o pequeñas recetas o recordatorios que considere de interés. Está centrado sobre todo en el desarrollo de aplicaciones web sobre Java, así que va dirigido a un público bastante concreto.

¿Y cómo es que me meto en este fregado, si me quejo constantemente de que casi no tengo tiempo? Pues porque para mejorar en mi trabajo es casi una necesidad. Si me obligo a escribir sobre esa característica no documentada de la librería X que encontré por casualidad, o ese error extraño que tardé horas en resolver y era una tontería, se quedará mejor en mi memoria y tendré una referencia escrita. Sí además, alguien sale beneficiado, y se ahorra algunas horas de trabajo si se topa con el mismo problema, pues mejor. Pero no os preocupéis, que seguiré con MalaCiencia como hasta ahora, intentando no disminuir más la frecuencia de los posts.

En breve, continuaremos con la programación habitual.

jueves, noviembre 18, 2010

Hatsune Miku no es un holograma

La semana pasada los medios se hicieron eco de una cantante virtual llamada Hatsune Miku, que causaba furor en Japón. Según muchos de ellos se trataba de un holograma que cantaba y bailaba, y en los noticiarios de televisión se mostraba un vídeo de un concierto donde veíamos una animación por ordenador de una chica con estética manga, bailando en un escenario, y aclamada por el público. Las alarmas saltaron inmediatamente en mi cabeza. ¿Un holograma? Precisamente hacía unas semanas, había aparecido en los medios otra noticia, sobre un sistema que permitía transmitir y refrescar una imagen holográfica cada 2 segundos, lo que era un avance extraordinario. Entonces ¿cómo era posible que en unos días, se haya pasado de un refresco de 2 segundos y una calidad de imagen bastante mejorable, a una animación perfecta? Pues fácil, no era posible. Lo que se ve en el vídeo no es un holograma.

Lo primero que hay que tener muy claro es qué es un holograma. Un holograma es una imagen tridimensional real. ¿Qué quiero decir con «real»? Pues que parezca un objeto que está realmente ahí, de forma que si me muevo alrededor de la imagen, la puedo ver desde varios ángulos. Fijáos que esta característica no aparece por ejemplo en la proyecciones 3D tan de moda ahora. Aunque se crea una ilusión de profundidad bastante real (haciendo que cada ojo vea una imagen ligeramente diferente), si nos desplazamos no podremos ver otros ángulos. Si un personaje mira a la cámara, parecerá que nos mira a nosotros, no importa dónde estemos. Con un holograma, sin embargo, si un personaje nos mira, al movernos alrededor de él dejará de mirarnos.

Entonces ¿qué era exactamente lo que se veía en el concierto? Pues no era más que una proyección convencional, sobre una pantalla transparente, situada en el escenario, entre los músicos y el público. Si veis con atención el vídeo que incluyo, podréis comprobar que se ve el público parcialmente reflejado en dicha pantalla. En algún plano, se ve el borde de la misma y la propia luz del proyector. Se aprecian sobre todo en los planos generales con mucha ilumunación (como el que hay a los pocos segundos del inicio). La animación en sí estaba hecha por ordenador, y según se indicaba en algún medio, el movimiento del personaje fue previamente capturado de una persona real.

Lo gracioso es que con toda la atención centrada en el personaje infográfico y su errónea clasificación como holograma, lo más interesante de la noticia (al menos para mí) pasó desapercibido. Resulta que la voz de Hatsune Miku no es real, es decir, no hay una cantante que ponga la voz al personaje (como sucede en las películas de animación). Quien «canta» es un software de síntesis de voz llamado Vocaloid. La voz no es es totalmente sintética, ya que se usan muestras de voz de una actriz de doblaje japonesa llamada Saki Fujita, pero el resto del trabajo (componer palabras, frases, y darles la entonación adecuada) lo hace el software, de forma similar a como funcionan los sintetizadores (instrumentos) modernos.

viernes, mayo 21, 2010

Routers en Smallville

Carátula de la octava temporada de Smallville

Hace unas semanas terminé de ver la octava temporada de Smallville, una serie donde la informática tiene la misma irrealidad que los poderes de Clark y compañía. Hubo un episodio que me llamo especialmente la atención en este aspecto. Para los que no sigan mucho la serie, Lex Luthor ya es el villano desalmado que conocemos del cómic, aunque durante esta temporada está desaparecido. Los protas intentan localizarlo de vez en cuando, especialmente Oliver Queen a.k.a Flecha Verde, que está obsesionado con él, al averiguar que la muerte de sus padres cuando era niño, no fue un accidente, sino que estuvo orquestada por el padre de Lex.

La cuestión es que en el episodio 10 de la 8ª temporada, Oliver le pide a Clark que sustraiga un router por el que pasó un e-mail enviado por Lex a su sucesora en la LuthorCorp, para poder rastrear su origen. Clark lo hace, y router en mano se reune con él. Pero en vez de entregárselo le da una charla sobre lo obsesionado que está, y toda esa moralina, y al final se va con el router. Pero como Oliver es muy listo, había contratado a un hacker, y a escondidas, descargó la información del router vía Wi-Fi, mientras Clark y Oliver hablaban.

Bueno, empecemos por lo básico. Durante la conversación entre Clark y Oliver, Clark tiene el router bajo el brazo en todo momento. Así que la pregunta que hay que hacerse es ¿cómo demonios puede nadie interactuar con un router apagado? Porque no hay ningún motivo por el que Clark cargara con el aparato encendido, aún suponiendo que el router en cuestión tuviera una batería como si fuera un portátil (que es mucho suponer, ya que creo que no se fabrican «routers portátiles»).

Sigamos con lo más sutil. ¿Qué es un router? Bueno, un router (o encaminador, como los llamábamos en la universidad, hace ya más de una década) es un dispositivo realtivamente sencillo, pero vital para el funcionamiento de una red medianamente compleja. Se trata de un aparato con varios puertos (conectores donde enchufar cables de red, para entendernos), y que únicamente encamina el tráfico de datos. Todo elemento de red tiene una dirección IP que lo identifica. Los datos se transmiten por la red en forma de paquetes, y cada paquete lleva (entre otras cosas) la información de las direcciones IP origen y destino. Cuando un paquete llega a uno de los puertos de un router, éste determina por qué otro puerto retransmitirlo, en función de estas direcciones. El proceso de decisión puede ser tan simple como consultar una tabla almacenada en la memoria o disco del router, o algo más complejo, como consultar a otros routers. En el caso de routers inalámbricos, basta con pensar que el espectro está dividido en canales, y que cada canal sería un puerto.

Un router «no sabe» dónde están los demás elementos de red, en el sentido geográfico. Sólo sabe que si le llega un paquete con destino a la dirección IP X, tiene que mandarlo por el puerto Y. Y por supuesto, no sabe dónde está lo que haya al otro extremo del cable. Por tanto, no nos puede decir dónde está ubicado físicamente el origen de un mensaje determinado.

El origen geográfico de un paquete de datos podría obtenerse a través de su dirección IP origen (y para obtener esta dirección no es estrictamente necesario hackear el router, sino que puede hacerse en el ordenador donde se ha leído el e-mail, si no se ha borrado). Y digo «podría» porque no siempre es posible. Hace tiempo expliqué qué era una URL y una dirección IP, y comenté más o menos cómo se podría hacer. En cualquier caso, requiere de un proceso de investigación adicional y laborioso, sobre todo si tenemos en cuenta que en este caso, Lex no quería ser encontrado (por lo que podemos descartar que el proveedor que utilizase tuviera sus verdaderos datos). Además, hoy en día puede ser bastante sencillo conectarse a la red sin dejar rastro, bien desde un cibercafé (ya que el ordenador no es nuestro), bien accediendo a alguna red Wi-Fi pública (ya que la dirección IP nos la asigna la propia red).

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.

martes, julio 28, 2009

Sistemas operativos gratuitos ¿Novedad?

En el último número de El País Semanal (para los despistados, el suplemento dominical del diario El País), aparece un artículo titulado 25 oportunidades en tiempos de crisis, donde enumera 25 casos en los que la crisis económica actual ha supuesto en realidad una oportunidad o ventaja. El punto 19 se titula «Tecnología para geeks», y entre otras cosas, dice lo siguiente:

El netbook ha propiciado que los sistemas operativos, los programas generales que hacen funcionar el ordenador, también se abaraten. Pronto serán gratis. Google ha anunciado el lanzamiento de Chrome OS, que se descargará desde Internet sin pagar un euro.

Bueno, no es que los sistemas operativos pronto serán gratis. Es que ya los hay. Y desde hace varios años, además. Imagino que a muchos de vosotros os sonará Linux. No es el único SO gratuito, pero sí es el más conocido. Apareció a inicios de los 90, y si bien al principio no era algo que cualquier usuario pudiera utilizar, hace algunos años que es una alternativa viable al omnipresente Windows (salvo para algunos usuarios concretos, con necesidades específicas). De hecho, ya se pueden adquirir PCs con alguna distribución de Linux preinstalada (creo que desde hace uno o dos años), como el que tengo en casa.

Cuando se habla de estos temas, es habitual confundir una serie de términos, que si bien están relacionados, son cosas diferentes. La mayoría de la gente se queda con el hecho de que determinado software es gratuito, y ya está. Esto es normal, ya que es la ventaja que más directamente puede apreciar. Pero la verdadera cualidad de Linux y de mucho otro software que hay por ahí, es que se trata de software libre.

¿Qué quiere decir eso de libre? Pues que podemos hacer lo que queramos con él. Podemos copiarlo cuantas veces queramos, y darselo a otro. Podemos estudiarlo por dentro, y ver cómo funciona, Podemos incluso modificarlo, para que se ajuste mejor a nuestras necesidades. Obviamente, si tenemos libertad para copiarlo y distribuirlo, el software debe ser gratuito (no tendría sentido cobrar por una copia). Si queremos estudiarlo y modificarlo, debemos poder tener acceso al código fuente del mismo, es decir, a lo que han tecleado los programadores al hacer el programa (el código fuente es posteriormente traducido por otro programa, en código binario entendible por el ordenador). Esto es lo que se conoce como software de código abierto, en el que no sólo se proporcionan los ficheros binarios (lo que la máquina puede ejecutar), sino el código fuente (lo que el programador puede leer y escribir).

Fijáos que, como he mencionado, estos tres conceptos no son el mismo. Un programa puede ser gratuito, pero no de código abierto. Un programa puede ser de código abierto, pero no gratuito. Y también, un programa puede ser gratuito, de código abierto, pero no libre, ya que pueden existir restricciones en la licencia de uso, como el no poder modificarlo (si bien, en la práctica, el acceso al código fuente hace muy difícil hacer efectivas las limitaciones que queramos imponer).

Pero volvamos al artículo de El País Semanal. Como veis, el hecho de que el sistema operativo de Google sea gratuito, no es ninguna novedad. Es más, va a estar construido precisamente sobre el núcleo de Linux (si bien el entorno de ventanas parece que será creado desde cero). Y es que por ser libre, existen muchas distribuciones de Linux, esto es, «paquetes» que incluyen el SO y determinadas aplicaciones, de forma bastante homogenea e interrelacionada. Existen distribuciones de propósito general, pero hay también distribuciones de usos específicos, como las que se centran en la parte multimedia, o en la seguridad y recuperacón de datos.

De hecho, algunas Comunidades Autónomas han realizado su propia distribución, siendo famoso el caso de Extremadura y su LinEx, que llegó a salir en los medios. Esto, unido al hecho de que hace poco fue noticia el debate sobre si los famosos «portátiles por alumno» que anunció el Gobierno, debían llevar Windows o Linux, hace un poco incomprensible la frase «pronto serán gratis» y la novedad de que Chrome OS «se descargará desde Internet sin pagar un euro».

jueves, mayo 21, 2009

Smallville, spyware y seguridad

Hoy seguiremos un poco con Smallville y cuestiones informáticas. Antes, os tengo que poner un poco en antecedentes. Uno de los personajes principales, Chloe Sullivan, se supone que es un genio con los ordenadores. Durante la séptima temporada (ojo, posible spoiler menor), la chica en cuestión tiene una relación intermitente con Jimmy Olsen (imagino que no es necesario aclarar quién es). Pocos episodios después del de los monitores con nieve, una mujer de la NSA aborda a Jimmy y le convence para que instale un spyware (que ella le proporciona) en el ordenador de Chloe. Una vez hecho esto, la siguiente vez que Chloe lo utliza para «meterse» sin permiso en sistemas ajenos (con el noble propósito de ayudar a Clark Kent, por supuesto), aparece una ventana en rojo, en medio de la pantalla, con un indicador de progreso, y la leyenda «Copiando ficheros...» o algo similar. Como genio informático que és, se pone a teclear como loca, y entonces aparece una ventana (también en rojo, claro), con los datos personales de Jimmy Olsen, llevándose una gran decepción.

Bueno, empecemos por la ventana con la barra de progreso. La función del spyware que le dan a Jimmy, es monitorizar la actividad de Chloe y enviar la información obtenida a la NSA. Se supone que el programa debe hacerlo discretamente, para que la víctima no sospeche, no anunciarse con una enorme ventana roja. Eso es algo impensable para un programa de este tipo.

La única posibilidad es que, dado que Chloe es una hacker, tal vez tenga instalado algún programa que alerte de ciertas actividades. Después de todo, hay muchos cortafuegos por software en el mercado que pueden configurarse para que sólo determinados procesos puedan acceder a la red. Tal vez ella tenga algo similar. Pero lo que hace este tipo de software es precisamente impedir una acción. En la serie, Chloe actua mientras los ficheros se copian (y llegan a su destino). No parece una protección tan buena. Además, puestos a tomar medidas de protección, la más básica es no dejar tu cuenta de usuario abierta a cualquiera, cuando dejas el ordenador. Qué menos que protegerla con una contraseña, y cerrarla o bloquearla cuando te vas.

Vayamos ahora con la ventana con los datos personales de Jimmy. ¿Cómo puede saber cualquier tipo de software, quién es la persona física que lo ha instalado? No me imagino a la NSA creando un spyware en el que sea necesario introducir tus datos personales para instalarlo. ¿O es que Jimmy Olsen tenía una cuenta propia de usuario? Siendo así, y dependiendo del sistema (que como es habitual, no parecía ninguno de los más utilizados), Chloe podría haber averiguado que la instalación se realizó desde esa cuenta. Bueno, en ese caso ¿por qué tenía Jimmy una cuenta de usuario? El ordenador en cuestión no era suyo, ni de uso habitual para él. Además, para instalar un programa así, debería tener determinados permisos. O bien el usuario de Jimmy tenía permisos de administración, y podía instalar algo en todo el sistema, o bien la seguridad de las cuentas era muy cutre, y se podían escribir ficheros en las cuentas de otro.

Y aquí llegamos a una contradicción. Si Jimmy tenía un usuario propio desde el que poder instalar programas, que afecten a otros usuarios, es que la seguridad del sistema era bastante pobre. En ese caso, no es creíble que hubiera algún tipo de monitor «anti-spyware». Y si Chloe tenía la precaución de tener dicho monitor, entonces lo que no es creible es que le diera a Jimmy un usuario con los permisos necesarios para instalar algo. Una correcta gestión de usuarios es algo básico en temas de seguridad.

En fin, como uno de vosotros apuntó en el envío anterior, la informática en la ficción es un mundo aparte.

jueves, mayo 14, 2009

Monitores con nieve

Actualización (18 de mayo de 2009): He cambiado parte de la explicación, ya que la causa no es que la señal sea analógica, sino que esté modulada en radiofrecuencia.

Hace poco, viendo un episodio de Smallville, me fijé en un recurso que me suena haber visto en otros sitios. La escena era la siguiente: una habitación con las paredes cubiertas de pantallas, y un ordenador con su respectivo monitor, en el centro de la misma. Un virus informático es introducido en el sistema, y entonces las imágenes de los monitores comienzan a bailar y desaparecer, hasta ser sustituidas por la clásica imagen de ruido o nieve que aparecía en las televisiones algo antiguas cuando seleccionábamos un canal no sintonizado. Sin embargo, esto no puede ocurrir en un monitor de ordenador, a menos que deliberadamente reproduzcamos un vídeo a pantalla completa de dicho fenómeno (y no creo que eso estuviera en las prioridades del programador del virus).

Foto de una televisión mostrando ruido blanco

¿Por qué se produce (o producía) la nieve? Antes de las pantallas de plasma, la alta definición, la televisión digital y todas las modernidades que nos rodean, la televisión que todo hijo de vecino tenía en su casa era un armatoste con un tubo de rayos catódicos, y una única entrada de radiofrecuencia (a la que llamábamos «toma de la antena» o simplemente «antena»). Por dicha entrada llegaban las señales (que efectivamente, procedían de la antena) de los distintos canales, todos ellos modulados en radiofrecuencia. ¿El qué? Bueno, hace bastante expliqué un poco qué es eso de la modulación. Resumiendo un poco, la información de audio y vídeo debe «meterse» en una señal electromagnética, de forma que luego se pueda extraer. Además, como hay muchas emisoras, cada una tiene que limitar su señal a un rango determinado de frecuencias. Esto se hace eligiendo una frecuencia concreta (portadora) a cuyo «alrededor» viaja la información. Pues bien, al proceso de generar una señal electromagnética, en un determinado rango de frecuencias, y con la información que queremos (en este caso, audio y vídeo), se le denomina modulación (y pido perdón a mis compañeros telecos por la extremada simplificación de esta explicación).

Así que tenemos múltiples emisoras, emitiendo en distintas frecuencias. Todas estas señales electromagnéticas llegan a nuestra antena, que las convierte en corrientes eléctricas para que puedan llegar por un cable hasta el sintonizador de nuestra tele. Como cada emisión va en una frecuencia diferente, lo que hay que hacer para seleccionar un canal es determinar la frecuencia portadora que nos interesa, y descartar el resto. Una vez hecho eso, la señal se «demodula», obteniendo el audio y vídeo del que queremos disfrutar.

Pero el audio y el vídeo son en realidad señales eléctricas, así que hay que utilizar un altavoz para convertir la señal de audio en sonido, y un cacharro más complejo para convertir la señal de vídeo en una secuencia de imágenes. En las televisiones de tubo o CRT (las que tenían una enorme parte trasera) el aparato era un tubo de rayos catódicos que dirigía un haz de electrones sobre una pantalla fosforescente. El punto donde los electrones impactaban en la pantalla, brillaba durante un instante (y el brillo dependía de la intensidad del haz). Así, el haz recorría toda la pantalla, una y otra vez, dibujando imágenes, con la suficiente rapidez como para crear la ilusión de movimiento (25 imágenes por segundo en el sistema PAL, que es lo que se usa por estos lares).

Lo importante de toda esta historia que os he contado, es que hay que demodular la señal, es decir, hay que extraer la información de esa frecuencia portadora. Debido al sistema utilizado para ello, el sintonizador «intenta» extraer la información, sin importar lo que haya en la entrada. es que la electrónica del aparato era analógica. ¿Qué quiere decir? Pues que las pequeñas variaciones de la señal electromagnética se traducían directamente en variaciones de la imagen. Además, el haz barría la pantalla una y otra vez, sin importar si había señal o no. ¿Y qué pasaba si no habia señal? Pues que las únicas señales variaciones eléctricas que aparecían era el inevitable ruido blanco que aparece en todo sistema eléctrico, es decir, el sintonizador demodulaba el ruido, y que el haz seguía como patrón una pequeña señal aleatoria, de forma que dibujaba puntos claros y oscuros de forma aleatoria.

La entrada de radiofrecuencia no es la única que tiene un televisor, al menos, uno mínimamente moderno. Es habitual encontrar al menos una entrada euroconector (esa que es muy ancha, con dos hileras de pines), y no es raro que tenga también una entrada de audio (formada por dos conectores, pintados de color rojo y blanco) junto a una de vídeo compuesto (un conector igual a los de audio, pero de color amarillo), o una de S-Vídeo (redondo, más grueso, con pines). La señal que llega a cualquiera de estas entradas no está modulada en radiofrecuencia, sino que viaja «tal cual» (por decirlo de alguna forma, aunque no sea demasiado exacto). Y si no hay señal, no se pinta nada en la pantalla, de forma que si uno selecciona una de estas entradas sin señal, veremos simplemente una imagen negra.

¿Cómo funciona un monitor de ordenador? Bueno, a un monitor llega una señal digital, que es interpretada por el aparato para mostrar imágenes. Una señal digital es básicamente una secuencia de números. Como podéis suponer, los números no viajan así como así, sino que son representados de distintas formas (por ejemplo, pulsos de distinta intensidad). La ventaja de una señal digital es que es más resistente al ruido: podemos distorsionar levemente la señal, y seguir siendo capaces de interpretar los números de forma correcta. La entrada de un monitor es distinta a las que he mencionado, pero lo importante es que la señal no está modulada en radiofrecuencia, y el monitor no tiene un sintonizador, como ocurre con un televisor. Como consecuencia de ello, ante la ausencia de señal, no se interpretará el ruido de fondo de ninguna forma, es decir, no sé intentará «pintar» el ruido blanco, sino que no se pintará nada. Veremos una aburrida imagen negra (o si el aparato es más sofisticado, un pequeño letrero de «Sin señal», «No signal» o similar).

Así que, si por el motivo que sea, un ordenador deja de transmitir la señal de vídeo al monitor, no veremos nieve, sino una pantalla negra, tal vez con algún mensaje generado por el propio monitor. Y eso sólo si la señal se interrumpe, lo que quiere decir que el virus debe alterar la configuración de video del ordenador infectado, o apagarlo (cosa que no veo de utilidad a la hora de destruir datos). Puede quedar muy efectivo que las pantallas muestran nieve, para informar al espectador de lo que ocurre (otros directores prefieren la animación de una calavera con dos huesos cruzados; no-premio al que sepa de qué peli estoy hablando), pero a menos que el diseñador del virus sea tan gracioso que haya programado una rutina específica que simule nieve en un monitor, es algo que no puede ocurrir.

viernes, febrero 13, 2009

El correcaminos

Hace unos días vi en algún informativo de TV, que estaban hablando del correcaminos. No, no me refiero al resabiado pájaro que persigue el pobre coyote, sino al superordenador Roadrunner de IBM. Este superordenador es actualmente el más potente construido, y está en el número uno del llamado TOP500 (lista de los 500 ordenadores más potentes del mundo). La cuestión es que, entre otras cosas, afirmaban que este ordenador era «tan inteligente» que podría encontrar la cura al cancer (sí, así como lo leeis).

Bueno, como seguro que supondréis, ni el correcaminos ni ningún otro ordenador construido es inteligente en absoluto. Un ordenador es únicamente una máquina capaz de ejecutar programas, y un programa no es más que una secuencia de instrucciones. Estas instrucciones son básicamente cálculos matemáticos, operaciones lógicas (lo que se denomina álgebra de Boole) y sentencias condicionales (también llamadas decisiones, que determinan si hay que ejecutar unas instrucciones u otras, dependiendo de un valor o resultado anterior). Y ya está. Todas las maravillas que vemos hacer a los ordenadores, desde espectaculares animaciones a complicados análisis de datos, son una inteligente e ingeniosa combinación de estas instrucciones básicas, «redactadas» por personas. A veces, estos programas son tan sofisticados, que parecen inteligentes. Pero sólo lo parecen. En el fondo, la inteligencia artificial no son más que elaborados algoritmos. La inteligencia está realmente en quien crea el algoritmo.

Este superordenador fue noticia hace varios meses, por superar el petaflops. ¿El peta-qué? Veamos, en el mundo de la informática, para medir la velocidad de cálculo de un ordenador, se utiliza una unidad llamada FLOPS, que significa «operaciones de coma flotante por segundo» (FLoating point Operations Per Second). Un petaflops son 1015 flops (mil billones, de los europeos). Para hacernos una idea, los PCs con Intel Core 2 Duo (la mayoría de PCs domésticos a la venta actualmente) andan por la decena de gigaflops (entre 10 y 30, más o menos, dependiendo del modelo y la frecuencia del reloj), es decir, que su velocidad de proceso es del orden de 1010 flops (recordad que el prefijo giga- indica 109). Por tanto, la potencia de cálculo del correcaminos equivaldría más o menos a la de 100.000 PCs de esos.

La velocidad de estos superordenadores no se alcanza con procesadores mucho más potentes y rápidos que los que podemos encontrar en un PC moderno o una videoconsola de última generación. Lo que se hace es juntar muchos procesadores, miles de ellos, debidamente comunicados y sincronizados. Y esto requiere un cambio en la forma de elaborar un programa. Antes he dicho que un programa es básicamente una secuencia de instrucciones. Voy a definir otro término muy importante en informática: el proceso. Se denomina proceso a la ejecución de un programa. Es decir, un programa es una lista de instrucciones, y un proceso es la ejecución de esas instrucciones. Pues bien, si nuestro programa es totalmente secuencial, es decir, las instrucciones deben ejecutarse una después de otra, un supercomputador no nos serviría de mucho, ya que habrá un único proceso en uno de los procesadores, mientras el resto está sin hacer nada. Pero si nuestro programa puede dividirse en tareas que pueden ejecutarse individualmente, podemos diseñarlo para que cada una de esas tareas sea un proceso. Así, podremos ejecutar dichos procesos en paralelo, es decir, cada proceso se ejecuta en un procesador distinto, y de forma simultánea. Aquí sí que aprovecharemos la capacidad de un superordenador de este tipo, pues podremos ejecutar varias tareas a la vez, en lugar de una detrás de otra.

Por tanto, un superordenador con múltiples procesadores nos ofrece una potencia de cálcula inimaginable, pero sólo si podemos dividir nuestro algoritmo en trocitos más o menos independientes. Afortunadamente, hay muchos problemas que entran en esta categoría. Como modelos climáticos, económicos, astronómicos... y sí, análisis y cálculos relacionados con la biología y la genética.

Así que desde ese punto de vista, sí, el correcaminos nos ayudará a combatir el cáncer (que por cierto, no es una única enfermedad, sino una denominación común que se le da a enfermedades muy dispares). Pero no lo hará el sólito. Alguien tendrá que haber realizado investigaciones y estudios, a partir de cuyos datos se puedan modelar algoritmos, que luego deban implementarse en forma de programas. No basta con plantarse delante del correcaminos y preguntarle por «el sentido de la vida, el universo, y todo lo demás» (no-premio a quien conozca la respuesta a tan profunda pregunta).

viernes, diciembre 05, 2008

La magia informática de CSI Miami

Poster de la serie

Los que sigáis la serie «CSI: Miami» habréis comprobado que, el equipo informático del que dispone la policía de Miami está más cerca del de Minority Report que del que podamos ver en el mundo real, con gigantescas pantallas transparentes con elaboradas animaciones 3D (aunque sea para mostrar una huella dactilar). Pero ahora no voy a hablar de eso, sino de una escena del episodio de esta semana, que hizo sonar mis pequeñas alarmas de la cabeza.

En el episodio, los protas investigaban a una empresa privada de mercenarios, que recibía encargos de la administración pública (eran sospechosos de haber utilizado un arma ilegal para matar a tres traficantes de armas). El presidente (o director general, o algo similar) de la empresa es posteriormente asesinado, y los CSI recuperan su ordenador portátil, para ver qué encuentran. Mientras lo están utilizando, de pronto el disco duro comienza a borrarse (con los inevitables porcentaje y barra de progreso, que nos indican lo que queda para terminar). No pueden hacer nada para evitarlo, pero se dan cuenta que la causa es una señal exterior, que se ponen a localizar. Cuando a los pocos segundos el disco es borrado completamente, los protas han conseguido averiguar el origen de la transmisión.

Bueno, en una escena de pocos segundos ocurren varias cosas destacables. Lo primero y que seguramente llamará la atención es la imposibilidad de apagar el ordenador. Nada más fácil ya que toda máquina que funciona con electricidad necesita inevitablemente... pues eso, electricidad. Basta con interrumpir el suministro eléctrico. Y sí, estamos hablando de un portátil, y puede que tuviera batería para rato, pero entonces basta con extraerla. Bueno, vale, es el portátil de una empresa de seguridad, que se ha molestado en instalar un mecanismo para borrar datos de forma remota; tal vez esté atornillada o algo así. Pero es que los protas ni siquiera lo intentaron.

En realidad, a la hora de examinar el contenido de un disco, parece más lógico y seguro hacerlo extrayendo dicho dispositivo, y utilizar un ordenador diferente o un hardware específico para ello. De esta forma uno se evita cualquier «trampa» que pueda haber en el sistema. Comenté algo similar hace tiempo, a raíz de otro «disco trampa» en la serie Mentes Crinimales.

Otro detalle, más sutil, es la brevedad en la que se borra el disco. Como también comenté en el otro artículo, un borrado rápido convencional, en realidad no borra datos, sino que marca el espacio ocupado por los ficheros como disponibles. Los datos siguen ahí y pueden ser recuperados con el software adecuado. Para evitar esto, se debe sobreescribir lo que se pretende borrar, y esto es algo que lleva más tiempo. Además, parece que aún así, con un equipo muy especializado, es posible recuperar datos, por lo que es preferible sobreescribir varias veces, y con distintos datos basura.

Dejemos ahora el mundo de los ceros y unos, y fijémonos en cómo se activa el proceso de borrado: una señal externa (necesariamente electromagnética) que al recibirse ejecuta un programa. Obviamente el portátil debe disponer del hardware adecuado para ello, pero no puede tratarse de un simple receptor Wi-Fi, ya que la señal es transmitida desde otro punto de la ciudad. El Wi-Fi tiene un alcance bastante limitado, de varios metros (no llega al kilómetro ni de lejos), por lo que debe ser algún hardware muy específico. Pero lo importante de todo esto es que en un momento dado, mientras el CSI teclea como loco para averiguar el origen de la señal, menciona algo de una transmisión vía satélite. El diálogo es muy confuso, y la verdad, no sé si se refería a que la señal llegaba vía satélite, o a que estaba utilizando un satélite para localizarla. Bueno, en realidad no importa, ya que en ninguno de los dos casos es posible localizar la señal.

Si se referían a que la señal estaba llegando vía satélite, cualquier intento que hubieran hecho para localizar el origen de la señal habría dado como resultado... ¿lo adivináis? El satélite. Cuando se utiliza en comunicaciones, un satélite no es más que un repetidor en órbita. El emisor terreno transmite con una antena especialmente diseñada (las famosas antenas parabólicas) hacia el satélite, en determinadas frecuencias. Es satélite entonces traslada la información a otras frecuencias (para no interferir) y transmite hacia la superficie terrestre. Cualquier técnica que se nos ocurra para localizar una emisión electromagnética, dará como origen el satélite.

Si se referían a que estaban utilizando un satélite para localizar el origen de la transmisión, tampoco habrían podido. Como todos sabéis o imagináis, las emisiones de radio se atenúan con la distancia. Los satélites están en órbita alrededor de la Tierra. Muy, muy altos, del orden de cientos o miles de kilómetros de altura (concretamente, la órbita geoestacionaria, que es donde se encuentran la gran mayoría de satélites de comunicaciones, está por encima de los 35.000 km, que es más de 5 veces el radio terrestre).

¿Cómo se pueden utilizar entonces como repetidores? Bien, cuando se emite hacia un satélite, se concentra la emisión de ondas electromagnéticas en una sóla dirección (apuntándo al satélite, claro), en forma de haz. El satélite emite de forma similar, aunque abriendo un poco el haz, para abarcar una buena parte de la superficie terrestre. En las emisiones terrenas, sin embargo, o se utilizan antenas que emiten en todas direcciones, o se usan antenas con algo de direccionalidad, evitando siempre apuntar al cielo. En el primer caso, hay que pensar que el frente de onda sería algo parecido a una superficie esférica centrada en la antena, que se hace cada vez más grande. Esto que hace que la señal se atenue mucho con la distancia, debido a que cuanto más lejos, la misma potencia debe repartirse por una superficie mucho mayor (concretamente, la superficie aumenta con el cuadrado de la distancia). En el segundo caso, es obvio que si se intenta evitar transmitir hacia el cielo, un satélite no captará nada.

Como remate final, todo eso lo hacen desde el mismo portátil que está siendo manipulado desde el exterior. Es una norma de sentido común no utilizar un ordenador que está siendo comprometido. ¿Quién me asegura que además de borrar el disco, no están manipulando los datos para proporcionarme información errónea? Además, parece de sentido común que si me preocupa que los datos se vean comprometidos ante el robo del portátil, e instalo un sistema que permita borrar el disco de forma remota con una transmisión de radio, no instalaré también un sistema para rastrear dicha señal (hardware y software).

jueves, octubre 16, 2008

CSI NY: «Crackeando» con chaquetas inalámbricas

Carátula de la cuarta temporada

Tras ver el episodio de CSI: NY de esta semana (y si no lo habéis visto, no sigáis), no puedo evitar comentar la «chaqueta inalámbrica» que usan los delincuentes. Recordemos un poco la trama: un genio fabrica unas chaquetas (de esmoquin, creo recordar) en cuyo interior hay una serie de alambres a modo de antenas, y un microprocesador. La chaqueta es capaz de conectarse de forma inalámbrica a los dispositivos que tenga cerca (no solo ordenadores, sino PDAs, móviles, etc.), y descargarse todos sus datos. Además, de alguna forma, las ondas electromagnéticas que emite, interfiere en aparatos eléctricos, de forma que las luces se encienden o parpadean. Así, en el laboratorio de los CSI, tras cortar la corriente al descubrir que había un acceso no autorizado en la red informática, a los pocos segundos se encienden las luces de la mesa donde estaban examinando la chaqueta.

Bueno, obviemos el hecho de que no nos explican de donde obtiene la energía, o dónde almacena los datos la chaqueta (podría tener pequeñas baterías, y memorias flash en su interior). Lo primero que debe de llamarnos la atención es que la chaqueta parece ser capaz de meterse en cualquier red o dispositivo. Sin embargo, por la propia naturaleza de un acceso inalámbrico, el dispositivo en cuestión debe permitir dicho sistema de comunicaciones. Es decir, a menos que el aparato en cuestión tenga Wi-Fi, Bluetooth o algo similar (y que la chaqueta además tenga implementado dicho acceso) será imposible hacer nada. Si la conexión de tu aparato con el mundo exterior, es únicamente con cables, no hay nada que hacer.

Uno puede imaginar que un PC doméstico moderno, es fácil que tenga algún acceso inalámbrico (a la mayoría de la gente le gusta tener lo último), pero me cuesta creer que la policía de NY tenga redes inalámbricas en sus edificios. Una comunicación de este tipo es inherentemente más insegura que una comunicación por cables. Independientemente del cifrado que pueda tener la comunicación (usar Wi-Fi sin cifrar es una invitación a todos los amigos de lo ajeno), cualquiera puede «escuchar» una transmisión por el aire, sin ser detectado. Interceptar una comunicación por cable es más complicado, puesto que hay que tener acceso físico al cable, en primer lugar. Además, un «pinchazo» puede detectarse, ya que si el aparato utilizado es pasivo, al receptor legítimo le llega la señal con menos potencia, puesto que parte de ella es desviada hacia la escucha ilegítima. Con una conexión inalámbrica esto no sucede, puesto que se irradian ondas electromagnéticas en todas direcciones. Sería como intentar averiguar si, al hablar, alguna persona extraña de alrededor está escuchándote o no.

Tenemos también el hecho de que la chaqueta accede sin problemas a toda la información. Todos conocemos más o menos que es eso de los «hackers» y «crackers» (que conviene no confundir: el cracker vendría a ser un hacker seducido por el lado oscuro), y sabemos que ocurren robos de información, ataques a ordenadores, virus informáticos, y todo eso. Pero cualquier tipo de acceso no autorizado, es debido a un error de programación del sistema. Un error que además permita hacer ciertas cosas que no se deberían hacer. Y eso ocurre, pero cada sistema tiene sus diferentes vulnerabilidades (si las tiene). La chaqueta del episodio, parece ser capaz de «crackear» todo lo que se le ponga a tiro, lo que supone que sabe aprovechar todas las vulnerabilidades conocidas de todos los sistemas. Y no sólo estamos hablando de todo el posible software que puede tener un ordenador (y no todo es Windows en el mundo), sino de vulnerabilidades en PDAs y teléfonos móviles.

Pero no lo ya no tiene ningún sentido es que la chaqueta encienda luces y aparatos. Al principio del episodio, el ladrón es sorprendido con las luces encendidas, cosa que extraña a los CSI. Más adelante, deducen que las luces se encendieron solas, por obra de la chaqueta, al igual que la iluminación de la mesa del laboratorio se encendió, pese a haber cortado el suministro eléctrico.

Un aparato eléctrico cualquiera, y las luces no son ninguna excepción, funciona cuando es sometido a determinado voltaje, y atravesado por determinada intensidad de corriente. Un interruptor eléctrico, como su nombre indica, interrumpe la corriente eléctrica. Puede ser algo tan simple como un pequeño trozo de material conductor, que mecánicamente abre o cierra el circuito, interrumpiendo o permitiendo la circulación de la corriente eléctrica. Y si el circuito está abierto, no hay nada que hacer.

Bueno, uno puede pensar que habrá instalaciones muy sofisticadas, cuyos interruptores no sean mecánicos, sino electrónicos, de forma que se puedan encender y apagar las luces con mandos a distancia, o cosas así. Pero en la escena del laboratorio, los CSI cortan la corriente de toda la habitación, tanto alumbrado como enchufes, lo que implica el uso de algún interruptor general, fusible o el clásico «automático», que son mecánicos, e interrumpen físicamente el circuito. Así, no hay forma de que las luces de la mesa se puedan encender.

viernes, junio 06, 2008

El Windows «Táctil»

Hace pocos días, Microsoft anunció una de las novedades de la nueva versión de Windows, realizando una demostración con una pantalla «multi-touch». Como es habitual en noticias relacionadas con la informática, la mayoría de los medios no han entendido bien qué es lo novedoso (y qué no). Así, podemos leer titulares como «Windows 7 será táctil», «La próxima versión del sistema operativo Windows permitirá funciones táctiles», o «El próximo Windows 2007 funcionará con pantallas táctiles». ¿Y cuál es el problema? Pues que el hecho de que Windows o cualquier otro sistema operativo, pueda funcionar con pantallas táctiles, dista mucho de ser una novedad. Lo novedoso es que soportará lo que se denomina multi-touch (que podríamos traducir como «multi-tacto»).

Las pantallas táctiles aparecieron hace ya bastante tiempo. Seguro que muchos de vosotros las habéis visto y utilizado en determinados museos o exposiciones, o simplemente en el Metro de Madrid (las máquinas expendedoras). Para que una aplicación o un sistema operativo pueda utilizar una pantalla de este tipo, no es necesario hacer nada en el programa, específico para ese dispositivo (salvo diseñar una apariencia amigable). Por norma general, una aplicación (el sistema operativo en realidad) no se comunica directamente con el hardware, sino que para ello se utilizan los llamados «drivers» o controladores. Estos controladores son pequeñas piezas de software que proporcionan a la aplicación que los utiliza, un interfaz determinado. La idea es que no importa la marca del dispositivo(un disco, un DVD, un ratón), o cómo esté fabricado, o cómo funcione internamente, sino que el controlador se encarga de proporcionar a la aplicación un interfaz conocido. Así, la aplicación no necesita estar preparada para las peculiaridades de cada aparato.

Pensad por ejemplo en un coche. Independientemente de cómo esté hecho el motor, o la electrónica, tendrá un volante en el asiento del conductor, así como un pedal para acelerar y otro para frenar. Tenemos un interfaz entre el coche y el conductor, que aparece en todos los modelos y marcas.

Otro ejemplo lo tenemos en los ordenadores portátiles. Aunque les podemos conectar un ratón, todos tienen su propio dispositivo que cumple la misma función, como un pequeño botoncito en medio del teclado o una pequeña superficie táctil. El sistema operativo tendrá instalado el driver adecuado, de forma que no sabe (ni necesita saber) qué es lo que está actuando exactamente como ratón. Podríamos incluso inventarnos un nuevo dispositivo, como un mando similar al de la Wii, programando un driver que traduzca la información de movimiento del mismo, a la esperable de un ratón. Nuestro sistema operativo no necesitaría ningún tipo de actualización (salvo la instalación del driver, claro).

He elegido el ejemplo del ratón de forma deliberada. Imaginad que tenemos una pantalla táctil, y que el fabricante nos proporciona un driver adecuado, de forma que nuestros toques en la pantalla se traduzcan en «clicks» de ratón (en realidad, serían eventos de pulsar y soltar el botón, según apoyemos y levantemos el dedo, pero dejemos los detalles). Como podréis imaginar, el sistema operativo no tiene que estar implementado de forma especial. De hecho, mi primer trabajo consistió en hacer una pequeña aplicación de ventana completa, que sería utilizada con una pantalla táctil. Se ejecutaba en Windows 95 (cómo pasa el tiempo), y durante todo el desarrollo y las pruebas, utilicé un PC normal y corriente. Sólo en la última fase se instaló en un PC con pantalla táctil, y no fue necesario hacer nada, salvo instalar correctamente el driver de la pantalla.

Las pantallas táctiles convencionales, tienen una limitación, y es que sólo funcionan correctamente si las tocamos con un sólo dedo cada vez. Si las tocamos con dos o más dedos simultáneamente, tendremos efectos no deseados, posiblemente que el puntero se posicione en algún punto indeterminado entre los dedos. El motivo es evidente: independientemente de que la tecnología de la pantalla permita la detección precisa de varios toques simultáneos (puesto que hay pantallas que directamente no son capaces de ello), debemos traducir la información a las coordenadas de un único puntero (la flechita que movemos por la pantalla, a la que se en ocasiones se le llama también ratón, de forma errónea). Y es aquí donde está realmente la novedad. Si disponemos de una pantalla multi-touch, capaz de detectar la posición de toques simultáneos, y queremos que esa capacidad sirva para algo, no podemos simplemente traducirla a eventos de ratón. Necesitamos que nuestro sistema operativo haga algo diiferente. Y ahí está la novedad de la nueva versión de Windows: el soporte multi-touch, para poder hacer las virguerías del famoso iPod Touch de Apple, como tocar con dos dedos sobre una foto, y separarlos o juntarlos, para aumentar o disminuir su tamaño.

Es decir, no es ninguna novedad que Windows se pueda utilizar con una pantalla táctil. Eso ya se podía hacer desde hacía una década. La novedad es que se pueda utilizar con pantallas multi-touch.

jueves, abril 17, 2008

Un poco más sobre URLs

En el artículo anterior, uno de vosotros me animó a explicar el resto de cosas que puede tener una URL, y que no mencioné por no extenderme demasiado (con lo visto, ya era suficiente para ver la diferencia entre una URL y una dirección IP). Así que, vamos a ello.

Había explicado que una URL, en el caso más genérico, identifica un recurso en la red. Siendo más específicos, podemos decir que entre otras cosas, identifica un fichero en un ordenador. La URL nos dice también cómo acceder al recurso, es decir, qué protocolo utilizar. Nos quedamos con tres elementos básicos de la URL: el protocolo (lo que va antes de «://»), la máquina (identificada por su dirección IP o por su nombre de dominio), el puerto (tras «:», aparentemente opcional, aunque implícito si no aparece), y el recurso (tras el siguiente «/», también opcional, aunque se configura un recurso por defecto).

Fijaos que intento evitar la palabra «fichero» y referirme siempre a «recursos». Esto es porque no todos los recursos son ficheros. Pensemos en un buscador cualquiera (como Google, por ejemplo). Uno introduce sus palabras de búsqueda, y tras pulsar la tecla «Enter» o clicar el botón correspondiente, vamos a la siguiente página, que es una lista de resultados. Imagino que no pensaréis que dichas páginas existen en forma de ficheros en los servidores de Google, Yahoo, o el que sea, y que cientos de currantes han creado todas las páginas posibles, para todas las combinaciones de palabras posibles. Es obvio que algún programa genera en ese momento la página que vemos, y que ésta no tiene existencia real en ningún disco duro (salvo en alguna caché). Fijaos también que en este caso, en la página con la lista de resultados, la URL que vemos en la cajita de direcciones es muy larga, con símbolos «raros», y que aparecen las palabras que habéis tecleado.

Bien, eso es otro fragmento que puede aparecer en la URL, y que se denomina «query string» (que podríamos traducir como «cadena de consulta»). Esta «query string» aparece tras la ruta, precedida del símbolo de interrogación de cierre «?». Habitualmente (sobre todo en el caso de HTTP), consiste en parejas de tipo «nombre=valor» separados por el símbolo «&», donde «nombre» sería el nombre de un parámetro, y «valor» su valor. Si buscáis algo en Google, por ejemplo, veréis que la URL de la página de resultados comienza por «http://www.google.es/search» (si estáis en España, si no, el sufijo será diferente, como «.com», «.mx», «.ar», etc.), tras lo cual sigue la interrogación, y luego la «query string». En ella podemos observar un parámetro llamado «q», con los términos de búsqueda. Fijaos que los espacios en blanco han sido sustituidos por el símbolo de sumar «+», y que algunos caracteres (como eñes o vocales acentuadas) han sido sustituidos por una misteriosa secuencia de símbolos de porcentaje («%») seguidos de letras o números. Esto es porque en una URL no puede aparecer cualquier caracter, por lo que si queremos transmitir algún parámetro con uno de estos caracteres «prohibidos», hay que transformarlos (y el servidor, se ocupa de recuperarlos nuevamente).

Un recurso también puede ser un fragmento de otro recurso (por ejemplo, una sección en una página HTML). Para identificar un fragmento de un recurso, se coloca el caracter «#» al final de la URL (que identifica el recurso «padre»), seguido del identificador del fragmento. Si váis a cualquier artículo más o menos completo de la Wikipedia (por ejemplo, el relativo a URL), veréis que tras una breve introducción aparece una tabla de contenidos, consistente en varios enlaces. Estos enlaces llevan a secciones de la propia página, y si ponéis el puntero sobre ellos, veréis que la URL es la misma que la de la página, pero seguida del caracter «#» y un nombre. Si clicais sobre cualquiera de ellos, os desplazaréis por la página sin que ésta se recargue.

Finalmente, hay otro elemento que puede aparecer en una URL, pero esta vez, delante del identificador de la máquina (tras el «://»). Un recurso puede estar protegido, y sólo ser accesible a determinados usuarios, de forma que necesitamos autenticarnos. Si intentamos acceder a un recurso de este estilo mediante nuestro navegador, y la autenticación se realiza mediante nombre de usuario y contraseña, nos aparecerá una pequeña ventanita pidiendo dichos datos (ventanita que pinta el propio navegador, no la página, por lo que su apariencia varía de un navegador a otro, y es consistente con la de éste y la plataforma). En las aplicaciones web no es habitual, ya que la autenticación suele hacerse mediante un formulario HTML, integrado estéticamente en el diseño de la página. Sin embargo es algo que se puede hacer, y que sí es muy habitual en el caso de utilizar FTP. Si queremos, podemos evitar que aparezca la ventanita, añadiendo el nombre de usuario y la contraseña en la propia URL. Para ello, justo después del «://» se coloca el nombre de usuario, deguido del caracter de dos puntos («:»), la contraseña, el caracter arroba («@») y finalmente el resto de la URL (máquina, puerto, etc.). Así, nos quedaría algo de este tipo: «http://usuario:contraseña@dominio.com/recurso».

Como la contraseña aparecerá en la URL, y puede que no queramos que sea tan visible (y que quede guardada en algún registro de direcciones accedidas), podemos no ponerla, y utilizar sólo el nombre de usuario. En este caso, tras el nombre de usuario iría directamente la arroba, y luego el resto de la URL. El navegador nos mostrará igualmente la ventanita, pero con el nombre de usuario ya puesto, aunque esto ya depende del navegador: Opera lo hace así, Firefox muestra la ventana sin rellenar (al menos, en la versión 2), y Explorer, directamente no soporta añadir usuario y contraseña a la URL (al menos, en la versión 6).

Llegados a este punto, no puedo evitar mencionar una curiosidad sobre la arroba (que también es una antigua unidad de masa). Os habréis dado cuenta que la forma «usuario@dominio» es igual que la utilizada para una dirección de correo electrónico. Esta misma sintaxis se utiliza para otros protocolos y aplicaciones (como el telnet). Y es que en inglés, al simbolito en cuestión se le denomina «at», que dependiendo del contexto se puede traducir como «en» o «a». Por tanto, «fulanito@gmail.com» (por ejemplo), se puede leer como «fulanito en gmail.com». ¿A que ahora tiene más sentido lo de la arroba? Dejo a los filólogos e historiadores, el cómo surgió dicho simbolito, y cómo adquirió distintos significados.

jueves, abril 10, 2008

URLs y direcciones IP

Hace varias semanas, recibí un correo electrónico comentándome un detalle de un episodio de la serie de TV Life, que trata de un policía reintegrado en el servicio, tras pasar 14 años en prisión por error. En el episodio en cuestión, los protagonistas deben localizar a una chica (víctima de una violación, y que no había denunciado a su agresor) que solía conectarse mucho a Internet. Entre ellos se produce el siguiente diálogo (gracias JM):

—Ojala las personas tuviesen GPS.

—Los ordenadores lo tienen.

—¿En serio?

—Sí. Se conectaba a estas páginas desde su ordenador. Si no se ha desecho de él, podemos averiguar cual era su URL y localizarlo.

Aquí hay un error de concepto importante, ya que parece que se está confundiendo una URL con una dirección IP. ¿El qué? Bueno, empezaremos explicando qué es una URL.

Una URL es literalmente un localizador uniforme de recursos (Uniform Resource Locator). ¡Ah! ¿Y eso qué es?. Pues se trata de una serie de caracteres que se utilizan como nombre de un recurso en Internet (como páginas, imágenes, vídeos) y que además nos proporciona su localización en la red. ¿Ein? Bueno, hablando llanamente, es lo que aparece en la «caja de direcciones» de vuestro navegador, lo que tecleáis para acceder a un sitio.

Cada «trozo» de la URL (sí, aunque sean siglas de «localizador...», en castellano se suele utilizar el género femenino) tiene un significado concreto. Las letras que hay antes del «://» identifican el protocolo a utilizar, normalmente «http» o «https» (para los protocolos HTTP y HTTPS), aunque podéis encontrar otras cosas, como «ftp» (para el viejo amigo FTP) o «file» (para acceder al sistema de ficheros local; si utilizáis Windows, teclead «file:///C:/» y veréis). Lo que viene después del «://» nos dice dónde está lo que queremos. En el caso de un protocolo de red como HTTP, lo que viene es el identificador de la máquina (o máquinas, ya que pueden ser varios ordenadores trabajando conjuntamente), que normalmente es el nombre de dominio de la misma, aunque también puede ponerse su dirección IP (ya iremos a lo que es). Por ejemplo, para acceder a este vuestro blog, ponéis en la barra de direcciones lo siguiente: http://www.malaciencia.info.

Opcionalmente, para protocolos de red, se pueden poner el caracter de dos puntos («:») seguido de un número, que identifica un puerto. ¿Un puerto? Sí. Veréis, un ordenador puede ofercer varios servicios simultaneamente, a través de distintos protocolos (o a través del mismo, pero en procesos diferentes). Para diferenciar las peticiones a uno u otro servicio, existe el concepto de puerto, que viene a ser un canal de comunicaciones identificado por un número. Así, para diferenciar las peticiones a uno u otro servicio en el mismo ordenador, se utiliza el número de puerto. De hecho, toda comunicación de red se realiza a través de un puerto, lo que ocurre es que cada protocolo tiene un puerto asociado por defecto, de forma que si no se pone, la aplicación asume que se usa dicho valor por defecto. En el caso del protocolo HTTP es el puerto 80, de forma que es lo mismo poner http://www.malaciencia.info que http://www.malaciencia.info:80.

Tras el servidor y el puerto, puede aparecer una ruta hacia un recurso concreto (una página HTML, una imagen...). Por ejemplo, si colocáis el puntero sobre el «enlace permanente» de este artículo (al final del mismo), veréis que tras «malaciencia.info» aparece una ruta similar a la de un sistema de ficheros. Esa ruta identifica un recurso concreto dentro del servicio (en este caso, un fichero HTML). Al igual que antes, siempre debería ser necesaria esta información, lo que ocurre es que la mayoría de los sitios web tienen configurado un recurso por defecto, de forma que si no se especifica uno concreto, se utiliza dicho recurso (normalmente, la página de inicio).

Opcionalmente, pueden ir más cosas detrás de la ruta, pero de momento nos quedaremos aquí. Lo importante es darse cuenta de que una URL identifica básicamente un documento en una máquina (o en varias), que los hace públicos mediante algún servicio. Y eso sólo ocurre en servidores. El usuario medio, rara vez configurará su ordenador como servidor (al menos, de forma consciente). Es decir, en un ordenador que sólo se utilice para navegar por Internet, y no tenga funcionando un servicio HTTP, FTP, o similar (por ejemplo, si queremos que nuestro sitio web se ejecute en nuestro propio ordenador, en vez de buscar un alojamiento), no tiene ningún sentido hablar de URLs.

Por el contrario, una dirección IP sí que identifica un ordenador (o más genéricamente, una máquina, como por ejemplo, un router o una impresora). Se trata simplemente de un número de 4 bytes, y se suele representar como cuatro números entre 0 y 255, separados por puntos («.»). Su función es muy parecida a la de un número de teléfono. Para establecer una comunicación, hay que conocer la dirección IP de la máquina destino, y generalmente, entre los datos que se intercambian, se encuentran las direcciones IP de ambos extremos.

Antes mencioné que en la URL, puede aparecer un nombre o una dirección IP. Para evitar que la gente deba memorizar listas de números, se utilizan los nombres de dominio. Esos nombres son lo que realmente utilizáis y memorizáis (por ejemplo, «malaciencia.info», «google.com», «wikipedia.org», etc). Pero como los protocolos de red sólo entienden de direcciones IP, existen unos servidores especiales llamados DNS que funcionan como bases de datos, y que nos dice qué dirección IP corresponde a cada nombre de dominio.

Vemos por tanto que a lo que realmente se referían los protagonistas, es a la dirección IP del ordenador de la chica, no a la URL, que no tiene sentido. Una dirección IP identifica una máquina, mientras que una URL identifica un recurso concreto (un fichero) en esa máquina.

Y hay más. Una única dirección IP, no se corresponde necesariamente con una única máquina. En el caso de un usuario normal, que se conecte a Internet mediante un proveedor, puede que cada vez se le asigne una IP diferente, y puede que su IP esté siendo utilizada por más clientes. En estos casos, hay que conocer la fecha y hora de la conexión, para que el proveedor de servicios nos proporcione la información deseada (mediante la orden judicial correspondiente). Además, lo único que puede hacer éste, es darnos los datos que el cliente le haya proporcionado, que puede que no se correspondan con la ubicación física real del ordenador. La dirección IP sólo es un identificador, como un DNI o un número de teléfono. En este aspecto, la analogía con el GPS es totalmente incorrecta. Si deseamos conocer la ubicación física del ordenador, habría que ir «más abajo», y pedir la información a la compañía que mantenga la infraestructura telefónica si el acceso es por modem o ADSL, o a la que mantenga la infraestructura de cable (y que no tiene por qué ser la misma que la compañía que nos da el servicio de acceso a Internet).

La identificación del proveedor es sencilla, ya que existen organismos públicos que gestionan quién tiene qué direcciones (porque nuestra dirección IP, pertenece al proveedor), y dependiendo de aquél, puede que podamos disponer de forma rápida de información geográfica limitada, como el país, provincia o incluso la ciudad, a la que corresponde la IP (depende de cómo administre las direcciones el proveedor). Hay incluso sitios en la red donde se puede consultar toda esta información, y «contadores de clicks» que hacen estadísticas con los orígenes de los mismos (así puedo saber, por ejemplo, que aunque la mayoría de vosotros estáis en España, hay visitantes de México, Argentina, e incluso de Japón).

Estamos dando por sentado que la dirección IP se puede obtener sin problemas. Bueno, es muy fácil saber qué dirección IP se está utilizando para conectarse a un servicio nuestro. Pero en el caso que nos ocupa, se trata de obtener la dirección IP de conexiones de hace tiempo. Para ello necesitamos que el proveedor de servicios de internet, o el administrador de la web a la que se haya accedido, guarde un registro con dicha información (hace poco, hubo polémica con una ley, o intento de ley, o similar, que obligada a guardar esta información varios años). Además, necesitamos saber las fechas y horas en las que la persona que buscamos haya accedido a determinados sitios (o bien, que la información guardada incluya cosas como datos de autenticación, cosa que también es controvertida).

Una dificultad añadida podría ser obtener la dirección IP real del ordenador. Veréis, en muchos casos, el acceso se realiza a través de lo que se denomina proxy (literalmente, «representante», en inglés), que consiste básicamente en un «intermediario». Dependiendo de la tecnología y sistema utilizado, una posible consecuencia es que la dirección IP que vea el otro extremo (el administrador de la web) no sea la que tenemos nosotros en realidad.

Lo gracioso de todo este asunto, es que según me cuentan en el correo, la chica que buscaban se había mudado, después de frecuentar la red. Y aquí, o la portera del antiguo domicilio sabe algo, o no hay nada que hacer.

miércoles, noviembre 30, 2005

Apagando un ordenador

Hace tiempo cayó en mis manos un correo electrónico con anécdotas graciosas de un chaval que se encargaba de mantener un aula de informática en una universidad. En una de ellas contaba que un alumno se le acercó y le dijo que había cerrado el Windows, había apagado el PC, y al volverlo a encender le aparecía un mensaje que ponía "Ahora puede apagar su ordenador" (estamos hablando del Windows 95, y de la época en la que los PCs no se apagaban automáticamente). Lo había apagado y encendido varias veces y siempre pasaba lo mismo. Ante la perplejidad del chaval, fueron a comprobarlo:

—Mira, mira, lo apago y...
—Eso es el monitor.
—...
Pantalla de cierre de Windows 95, que indicaba al usuario que ya podía apagar el ordenador

Vale, muy gracioso, pero ¿y esto a qué viene? os preguntaréis. Bueno, uno siempre tiene la duda de si estas anécdotas son verídicas o son leyendas urbanas. Parece difícil de creer que haya gente que no sepa distinguir entre apagar el ordenador y apagar el monitor (sobre todo en una universidad). Pues resulta que sí, que hay gente así: los que hacen series y películas.

En la serie Motivos Personales, es bastante habitual ver cómo un personaje enciende o apaga el ordenador, pulsando únicamente el botón del monitor. Y esto canta especialmente en el momento del encendido, ya que tras pulsar el botón, aparece inmediatamente el escritorio del Windows, sin secuencia de arranque ni nada.

Carátula de la película Nadie Conoce a Nadie.También ocurre lo mismo en la película Nadie Conoce a Nadie, en una escena en la que Eduardo Noriega "enciende" el ordenador de su compañero. En realidad lo que hace es encender el monitor. Por cierto que esta película muestra una visión totalmente falsa y falaz de los juegos de rol, y aunque esto no tenga nada que ver con mala ciencia (más bien, "mala cultura"), como antiguo jugador del Dungeons & Dragons, es algo que tengo que revindicar (y de paso, recomendar este artículo).

Uno no sabe si es que los que ruedan la escena no tienen ni idea de ordenadores, o creen que es el espectador el no sabe y no se va a dar cuenta. Pero lo cierto es que este tipo de secuencias abundan en el cine y la televisión. Hace unos años tal vez pudiese justificarse el desconocimiento de algo tan básico por la mayoría de la gente, pero hoy es casi imperdonable.

miércoles, octubre 26, 2005

Los mitos de Linux

Si escogiera a una persona cualquiera al azar, y le preguntara qué opina de Linux, posiblemente me conteste que de qué estoy hablando. Si tengo suerte y la persona sabe algo del tema, tal vez me diga que que "dicen que es muy bueno" pero que es sólo para "expertos" ya que es complicado de instalar y configurar. Y es posible que añada que no detecta todo el hardware que uno pueda tener en su PC.

Imagen del pingüino TuxPara los que no hayan entendido nada del primer párrafo, me explicaré. Linux es un sistema operativo, al igual que Windows. ¿Y qué es un sistema operativo? Bueno, se pueden dar varias definiciones, pero se puede decir que es el software básico de un ordenador, que permite que un usuario y otras aplicaciones, puedan utilizar el hardware. ¡Ah! El Windows ¿verdad? Sí, el Windows es un sistema operativo, pero no es el único que existe, ni el único que se puede instalar en un PC.

Linux tiene fama de ser más seguro, fiable y robusto que Windows. Además es libre y gratuito. Libre quiere decir que puedes modificarlo y distribuirlo a tu antojo (lo de gratuito supongo que todo el mundo lo entiende).

Pero este sistema operativo también se ha ganado una fama de dificil de utilizar, instalar y configurar, y que no siempre reconoce todo el hardware del ordenador, teniendo que buscar por Internet algun parche que solucione el problema. Eso era cierto en el pasado, pero hace ya unos pocos añitos que esa fama es inmerecida. Linux no es más dificil de utilizar que Windows. No es más dificil de instalar y no es más dificil de configurar.

Es verdad que aún no reconoce absolutamente todo el hardware existente en la instalación, pero esos casos son los menos, y hace poco tuve una experiencia personal en la que comprobé que una instalación normal de Windows XP puede tener más problemas con el reconocimiento de hardware y la instalación de drivers que Linux.

Veamos, yo tengo un ordenador portátil con Windows XP y SuSE Linux, con arranque dual (eso quiere decir que al encender el portátil puedo seleccionar qué sistema operativo arrancar). El XP ya me vino preinstalado de la tienda. El Linux me lo instalé yo.

Antes de hacerlo, tuve que reparticionar el disco duro, para crear una partición para Linux. ¿El qué? A ver, una partición es una división lógica de un disco, de forma que si tienes varias particiones, cada una de ellas se comporta como si fuera un disco independiente, aunque en realidad sólo tengas un disco físico. Esto que parece tan complicado, no lo es tanto si dispones del programa adecuado (como el Partition Magic, o las propias herramientas de una buena distribución Linux) y es necesario si quieres tener más de un sistema operativo instalado (da igual cuáles).

Después tuve que buscar una distribución completa. Es muy habitual que revistas de informática regalen un CD o DVD con una distribución de Linux, pero en la mayoría de los casos (sobre todo con CDs) es incompleta, y la instalación puede fallar cuando ves son asombro que te pide el "CD 3" y en la revista sólo venían 2 (un tirón de orejas para las revistas). Bueno, no pasa nada, un amiguete me pasó una distribución SuSE 9.0 completa.

La instalación fue de lo más sencilla, limitándome a pulsar el botón aceptar varias veces. Reconoció todo el hardware menos el modem (interno), ya que se trataba en realidad de un softmodem (es decir, un modem barato con muy poco hardware, que necesita un software especial para funcionar). Bueno, tras buscar un poco por internet y mirar la configuración de mi Linux, vi que sí que había reconocido el hardware e instalado el driver adecuado, pero por alguna razón, estaba deshabilitado en el arranque. Pues nada, edité el ficherito de configuración correspondiente (sólo tuve que "descomentar" una línea), y a correr.

Poco meses después (o puede que más de un año) me actualicé a la versión 9.2. Ningún problema, salvo que el modem me dejó de funcionar. ¡Vaya! El driver instalado, todo correcto... gracias a Internet descubro a otra persona que le pasa lo mismo. Resulta que en uno de los scripts de arranque (un fichero de texto con instrucciones) faltaba una instrucción (tirón de orejas a SuSE). La pongo y ya está todo solucionado.

Bueno, eso demuestra que Linux tiene problemas con algún hardware ¿no? Sí, pero vayamos ahora a una instalación de Windows XP. Resulta que hace unos días se me corrompió algo en el Windows y no podía arrancar. Probé todas las opciones de arranque posibles, y nada. El día anterior se me acabó la batería justo mientras estaba cerrando el Windows, así que tal vez algún fichero importante (o incluso el famoso registro de Windows) se estropeó. Podía haber ido a la tienda a que me lo reinstalaran, pero tenía miedo de que me hicieran un destrozo con las particiones y me borraran el Linux (y todos los datos que tengo), así que cogí un CD de instalación de Windows XP.

Crucé los dedos para ver si el CD de instalación detectaba que había una versión de Windows XP instalada, y me ofrecía repararla. Vaya, pues no. Sólo me ofrecía la posibilidad de una "consola de recuperación" en la que podía teclear comandos, pero que no me sirvió para nada (básicamente eran para copiar ficheros de un sitio a otro, chequear el disco, y cosas así). Así que opté por reinstalar el XP. Vaya, ahora sí, al decir que instale, detecta la versión que ya tengo instalada. Pero lo único que me dice es que para instalar la nueva versión debe eliminar la antigua, por lo que me borra todo el contenido de C:/Windows. Bueno, pues qué le vamos a hacer.

Tras la instalación, como me temía, la mayoría de programas que tenía instalados no me funcionaban, pues necesitaban DLLs que el proceso de instalación me había borrado. Bueno, pues nada. Formateo la partición y lo instalo de nuevo, ya en un entorno totalmente limpio.

Lo primero que noto al arrancar el XP es la ausencia de la musiquita tan característica que todos conocemos. Miro la configuración y descubro que no hay instalado un driver para el chip de sonido. Es más descubro que no hay driver instalado para el modem, el controlador USB y el chip gráfico (aunque debía de utilizar algún driver genérico, ya que lo que es funcionar, funcionaba, aunque sin todas las posibilidades de aceleración por hardware que tenía). Cuatro componentes de hardware sin funcionar correctamente.

Resultado final, Linux 1 - Windows 4 ( y no gana precísamente el del número más alto).

Gracias otra vez a Internet, he conseguido los drivers necesarios y ya tengo el XP funcionando otra vez, pero nunca olvidaré esta experiencia, y lo que he aprendido de ella. Linux no es más difícil de instalar que Windows. Eso es un mito. Y puedo decir eso de "lo digo por experiencia".

martes, octubre 25, 2005

Redes P2P

Últimamente ha vuelto a la primera plana la eterna polémica de los derechos de autor y la propiedad intecelcual, siempre relacionada con las recientes tecnologías que permiten copiar música y vídeo sin pérdida de calidad, así como distribuir las copias por la Red. Todo ello con un coste muy pequeño. Inevitablemente, uno de los términos que aparecen en estas discusiones es el de "redes P2P". En la mayoría de los casos, las explicaciones que se da de lo que es una red P2P es inexacta, o incluso completamente equivocada.

¿Qué es eso del P2P? A ver, P2P son las siglas en inglés de "peer to peer", que podría traducirse como "de igual a igual".

¿Y por qué se llaman así? Bueno, la mayor parte de aplicaciones o servicios que utilizan Internet (la Web, el correo electrónico) utilizan lo que en informática se conoce como modelo cliente-servidor. ¿Y eso qué es? En un modelo cliente-servidor, existen dos tipos de procesos (programas en ejecución, para entendernos): clientes y servidores. Un cliente solicita información a un servidor, y éste responde al cliente con ella. La iniciativa corresponde al cliente. El servidor simplemente espera a que algún cliente le pida algo, y se lo da.

Cuando navegamos por la Web, el navegador que utilizamos es el cliente. Cada vez que tecleamos algo en la barra de direcciones, o pinchamos un enlace de una página, el navegador envía una petición al servidor web correspondiente, el cual contesta enviando el fichero solicitado (normalmente, otra página).

En una red P2P, todos los procesos son a la vez clientes y servidores. Son iguales entre sí (de ahí el nombre). Un programa como el eDonkey, no sólo descarga ficheros (cliente), sino que atiende peticiones de descarga de otros usuarios (servidor). De esta manera, en una red P2P, no estamos descargando nada de ningún servidor, sino de otro usuario doméstico como nosotros. Existen redes P2P en las que se hace uso de servidores, pero únicamente para facilitar la búsqueda de otros usuarios. Nunca para almacenar los ficheros que se descargan los usuarios.

Fijaos que estoy hablando siempre de ficheros, y eso es porque las redes P2P se utilizan en para intercambio de ficheros en general. En la mayoría de menciones de estas redes en los medios de comunicación, se da a entender que están diseñadas para descargar música y vídeo, y esto no es así. Están diseñadas para intercambiar cualquier tipo de fichero, si bien es cierto que existen redes especializadas en música o vídeo.

Fijaos también acabo de decir intercambio, y no descarga. Cuando utilizas una red P2P, no sólo descargas ficheros, sino que permites que otro usuario se descarge un fichero tuyo. Normalmente se "premia" el que aportes ficheros, y se "penaliza" el que no lo hagas (en la red eDonkey, por ejemplo, si limitas la velocidad de subida, la velocidad de bajada disminuye). La idea es potenciar el intercambio.

Hay otro matiz que la inmensa mayoría de las veces pasa desapercibido, pero que es fundamental a la hora de debatir la legalidad o no del intercambio de material con copyright por estas redes. Cuando utilizas una red P2P, y seleccionas qué ficheros quieres compartir, el programita en cuestión hace pública esa lista de ficheros. Difunde por la red esa lista, pero sólo la lista. Los programas del resto de usuarios solicitarán al tuyo alguno de esos ficheros, pero como estamos tratando siempre con ordenadores domésticos, con un ancho de banda limitado (aunque sea ADSL), todas esas peticiones se organizarán en una cola, de forma que tu programa sólo esté permitiendo unas pocas descargas cada vez.

Como digo, desde el punto de vista legal, este matiz es muy importante: sólo se publica o difunde la lista. Desconozco el significado exacto de términos legales como "difusión" o "comunicación pública", pero hay que tener una cosa muy clara. Una red P2P no se puede comparar a una emisora de radio o TV, en la que el contenido en cuestión se difunde de forma masiva a todo el que disponga de un receptor. La analogía correcta sería la de un grupo de personas que publican en algún medio (periódico, tablones de anuncios, listas de correo electrónico) una lista de canciones, películas, o lo que sea, y sus datos de contacto, para intercambiar copias. La consideración legal en ambos casos, debería ser la misma (aunque desconozco cual es exactamente).

miércoles, octubre 05, 2005

Servidores colapsados

Durante y tras el eclipse del pasado lunes, han sido muchos los que se han quejado de sitios web en las que se realizaba un seguimiento del mismo y terminaron colapsándose. Y no eran sitios de particulares, sino de entidades como el Planetario de Madrid o el Ministerio de Fomento. El punto común en casi todas las quejas ha sido el insuficiente ancho de banda disponible, culpando bien a los responsables del sitio web en cuestión, bien a la insuficiente infraestructura de comunicaciones existente en nuestro país.

Pero el ancho de banda no tiene nada que ver con el colapso de un servidor web. Y si existe una relación, es más bien al contrario: cuanto mayor ancho de banda, más fácil es colapsar un servidor.

¿Qué es el ancho de banda ese del que todo el mundo habla? Pues en el mundo digital, básicamente es la máxima velocidad de transmisión soportada, y se mide en bps (bits por segundo) o cualquier múltiplo de esta unidad, como Kbps (Kilobits por segundo) o Mbps (Megabits por segundo). A modo de ejemplo, una conexión mediante un módem de toda la vida, suele tener una ancho de banda de 54 Kbps. Una conexión ADSL suele tener entre 256 Kbps y 4 Mbps. Una conexión ADSL2+, puede alcanzar los 24 Mbps.

Pero no perdamos de vista que siempre estamos hablando de velocidad máxima. Una persona puede tener una flamante conexión ADSL de 4 Mbps y estar descargándose un fichero a una velocidad muchísimo menor. ¿Por qué? Bueno, todos recordaremos del colegio los tres elementos básicos de toda forma de comunicación: emisor, medio y receptor. El ancho de banda sólo se refiere a la máxima velocidad permitida por el medio (en este caso, la red). El emisor (el servidor web) y el receptor (nuestro PC) deben poder operar a esa velocidad.

El receptor nunca debería ser un problema (a menos que usemos un PC de más de 10 años, que simplemente no pueda tratar los datos a la velocidad que los recibe). Pero el emisor es otro cantar, puesto que no está para nosotros solos, sino que debe atender a multitud de usuarios. Un servidor web funciona básicamente de la siguiente manera: recibe una petición (cuando tecleamos en la barra de direcciones, o pinchamos en un enlace), y en fución de ella, envía datos (la página que queremos ver). Estamos obviando toda la complejidad de la propia Red, pero para lo que nos interesa, esta explicación nos vale. Un servidor tiene un número máximo de peticiones que puede atender a la vez. Si se supera ese número, el resto de peticiones pueden quedar en espera o descartarse (dependiendo de cómo esté configurado). Una petición descartada supondrá un mensaje de error en el navegador del que la haya enviado. Si se quedan en espera y el ritmo de peticiones no disminuye, llegará un momento en el que se empiecen a descartar las peticiones, o simplemente el servidor se "caiga" (como siempre, dependiendo del servidor en cuestión).

Cuantos más ordenadores y más potentes sean, más peticiones se podrán atender. Pero claro, todo esto cuesta dinero. Normalmente, los responsables de un sitio web intentan dimensionar sus máquinas para atender con holgura el número de peticiones que reciben normalmente, pero sin pasarse demasiado. Un evento extraordinario (como el eclipse del lunes) puede multiplicar por 10 o por 100 el número de peticiones, desbordando todas la previsiones. Y claro, de donde no hay, no se puede sacar. Los servidores se colapsan.

Así que no se puede achacar a la falta de ancho de banda el colapso generalizado del lunes. Es más, con un ancho de banda más pobre, tal vez se habrían colapsado menos servidores, ya que habría menos peticiones simultáneas.

jueves, septiembre 08, 2005

Mision Imposible

Carátula de Misión Imposible.Al hablar el lunes de Misón Imposible 2, inevitablemente me vino a la cabeza la primera película. Hay una escena más o menos por el principio, en la que Tom Cruise quiere hacer un trato con una traficante de información (creo que se llamaba Job). Él ha obtenido un disco, supuestamente con información valiosa, pero Cruise sospecha que se trata de una trampa, y que al leer el disco, se alertará al servicio secreto de turno. La mujer decide arriesgarse y mete el disco en un ordenador portátil (no recuerdo si era un disquette, un CD, un disco Zip, o algo así, pero era extraible). Tras un rato de tensión en el que el ordenador intenta leer el disco y no ocurre nada, llegan unos tipos trajeados y armados al edificio. Sin embargo, Cruise y compañía consiguen huir.

La gran pregunta que surge es ¿cómo demonios hace el disco ese para avisar a nadie? No es imposible que el disco llevase un virus de algún tipo para que, al ser leído el disco, haga algo. Un CD autoarrancable malicioso puede causar estragos en un Windows, por ejemplo. Aunque parece un poco extraño que una persona que se dedica a traficar con información y estar a la última en cuanto a tecnología, tenga un ordenador vulnerable a esos ataques.

Suponiendo que el programa de marras consiga ejecutarse, el verdadero problema es ¿cómo demonios envía una señal a ningún sitio? Vale, tenemos la omnipresente Internet, pero si uno va a utilizar un disco que sospecha que puede enviar información a alguien sin que nosotros queramos, pues no hay nada más sencillo que desconectarse de la red para evitarlo. Y es algo tan simple somo quitar el cable de red o teléfono. ¿Y si la conexión es inalámbrica? pues se quita la tarjeta inalámbrica y santas pascuas, que además en un portátil es de lo más sencillo del mundo, pues utilizan tarjetas PCMCIA que se insertan o extraen en una ranura, sin necesidad de abrir la carcasa ni apagar el ordenador.

En fin, una escena que pretende crear tensión, pero que me parece absurda.