Claude Shannon. Los cimientos de las telecomunicaciones

Hoy Google conmemora en la página principal de su buscador el centenario del nacimiento de Claude Shannon, considerado el padre de la Teoría de la Comunicación. La teoría constituye la base de las telecomunicaciones actuales y a Google no le falta razón para homenajear a otro adelantado a su tiempo.

1024px-Esquema_de_comunicación_Shannon

Este blog quiere aportar un granito de arena a la divulgación de cómo funcionan estas técnicas de comunicación, y hoy recordamos a los que pusieron los cimientos de cómo las máquinas habían de tratar la información.

Cualquier texto que quiera remontarse a los principios de la información ha de hacer una rápida referencia al periodo védico, hacia el siglo IV a.C. Se trata de los textos sagrados de la India antigua, a los que se atribuye una disruptiva concepción de las matemáticas. Parece ser que Pingala, en su búsqueda para entender el concepto del número cero fue el primero en toparse con el sistema binario. Los indios ya usaban métrica decimal (0-9), su concepción de las matemáticas entendía perfectamente las fracciones de la unidad y tendía a pensar en la continuidad de las cosas y los números irracionales. Por ello el cero consituía un problema; la ausencia de magnitud, de longitud, de cantidad, es un concepto binario por naturaleza (ausencia o presencia de algo). He aquí el sistema binario.

Read more

Se llamaba 2147483647

Érase una vez un número, pero no un número cualquiera, era un número perverso y malvado. Era tan terrible que ninguna variable entera con signo quería alcanzar el valor de este número, porque destruía todos los sistemas en que aparecía. Se llamaba 2147483647.

Vale, realmente no es que los destruyera, sino que… digamos… daba lugar a resultados inesperados. Imaginad un programa que use variables del tipo entero con signo, es decir, la mayoría (es el tipo int de toda la vida). Imaginad que el programa realiza operaciones con estos datos, ¿cómo puede un programador asumir un resultado no controlado por él, lo cual sucedería si una sola variable alcanza este número maldito? OK, me refería a un buen programador, algunos no tienen problema en que su programa haga cosas inesperadas.

Eso de alcanzar y superar este número es lo que se llama técnicamente desbordamiento de entero, y no, no es el demonio ni un error que se encuentre por defecto en todas las computadoras. No es una especie de 666 que asusta a los bits y derrite los chips, ni nada que se le parezca. Es un error que hay que conocer y estudiar para que nuestro programa no arroje esos resultados inesperados.

Desbordamiento

El problema inicial se encuentra en las arquitecturas de 32 bits, donde el signo positivo o negativo del entero va en el bit más significativo, quedando el resto para el dato en sí. Por lo tanto, el valor máximo que pueden tener es 01111111111111111111111111111111, en decimal 2147483647. Si tenemos un contador que alcance este valor, el siguiente es el número anterior invertido, en decimal -2147483647 (error), y después se sigue sumando 1 hasta llegar de nuevo a cero. Si en las operaciones del programa introducimos un valor erróneo obtenemos, como decíamos, resultados inesperados. Al final esto es lo que se llama una excepción software, ocurre algo para lo que no existe control de programa. ¿Y cómo se controla? La respuesta es sencilla, su ejecución no tanto: evitando que se produzcan eventos desconocidos, tratando de prevenir todos los eventos que pueden tener lugar en tiempo de ejecución.

(jajaja, risas mil, ¿para eso me estoy leyendo tu post, amigo?)

Intentamos concretar un poco. Para entender mejor el problema, he aquí un perfecto ejemplo en el que un usuario no privilegiado manipula la entrada a un programa para lograr el acceso a una zona privada:

Read more

De Maxwell a Einstein… y 100 años de belleza (parte I)

Recordar brevísimamente la historia del electromagnetismo es recordar la unificación de las teorías de campos eléctricos y magnéticos, en las llamadas ecuaciones de Maxwell, de James Clerk Maxwell. Si Einstein es el artífice de “la belleza” en el siglo XX, Mawell lo fue en el XIX:

Ecuaciones-Maxwell

Primero decir que las ecuaciones de Maxwell son las que aparecen en la columna de “sin monopolos magnéticos”, que son las definen el comportamiento de la naturaleza tal como la conocemos, hasta el momento. Las otras dos columnas son para los expertos en física cuántica:

http://lahoracero.org/monopolos-magneticos/

http://francis.naukas.com/2010/05/02/el-monopolo-magnetico-y-un-inolvidable-dia-de-san-valentin-para-el-fisico-espanol-blas-cabrera/

1. Según la Ley de Gauss, las líneas del campo eléctrico son abiertas. Sabemos que existen cargas eléctricas positivas y negativas (monopolos), que generan el campos eléctricos, pero también dipolos. Por eso aparece ahí la densidad volumétrica de carga eléctrica. El número de líneas de campo eléctrico que atraviesan una superficie cerrada es igual a un escalar, luego las líneas son abiertas. Y si queremos, podemos medir el escalar de flujo eléctrico en un diferencial de superficie.

2. Sin embargo, la Ley de Gauss para el magnetismo dice que las líneas del campo son cerradas, que no existen monopolos magnéticos. Si rompemos un imán, tendremos dos imanes, y cada uno de ellos será un dipolo mágnético (no se pueden separar los denominados polos N y S magnéticos), hasta el momento. Igual que podemos medir el flujo eléctrico, podemos medir el flujo magnético, que es número de líneas de campo que atraviesan un diferencial de superficie. Pero si medimos el número de líneas que entran y salen de una superficie cerrada, esto es cero. Entran y salen el mismo número de líneas, por lo que son cerradas, hasta el momento (no existen monopolos magnéticos).

Las dos primeras ecuaciones de Maxwell son la expresión de la divergencia de los campos vectoriales eléctrico y magnético. Recordar que “nabla” tiene forma de vector, que multiplicado escalarmente por el campo nos da un escalar. Si quieres recordar esto:

http://www.ugr.es/~rpaya/documentos/Teleco/Fund-Mat02.pdf

Read more

Es la ingeniería la que cambia el mundo: La máquina de vapor

Empiezo este post con palabras de uno de los genios de la ciencia-ficción, Isaac Asimov:

La ciencia puede divertirnos y fascinarnos, pero es la Ingeniería la que cambia el mundo.

Concretamente hablaré de uno de los hitos más importantes de la revolución industrial, que cambió el transporte de mercancías de la época, el ferrocarril. Y hablar de la aparición del ferrocarril es hablar de la máquina de vapor. La invención de esta máquina es, como en otros casos de la ingeniería, resultado de la inteligencia colectiva de muchas personas. Tanto es así, que quizás debamos remontarnos al siglo I para rememorar los orígenes de esta ingeniosa creación. Herón de Alejandría, griego, creó la máquina eolípila. Esta máquina funcionaba calentando con fuego un depósito de agua, conectado a su vez por tubos a una esfera también rellena de agua. Los dos pequeños tubos de escape de la esfera, dispuestos para favorecer el movimiento de rotación de la misma, la hacían girar:

Eolípila

Read more