Criptografía, Robótica, Linux, como afectan a nuestra vida la tecnología y más.

28 feb 2011

Rodilla motorizada

2/28/2011 Posted by Unknown No comments
Una de los campos que está experimentando una gran avance en los últimos tiempos es de la biotecnología, es decir, aplicar conocimientos de robótica a problemas de movilidad, sobretodo amputados.

Por ello, han nacido empresas como la alemana ÖSSUR que ha puesto a la venta una rodilla motorizada para personas que hayan sufrido una amputación por encima de la rodilla. Con sus escasos 3,2 Kg de peso y con una batería que permite una autonomía de un día entero.

Esta rodilla dará a los usuarios la capacidad de volver a andar largas distancias, y subir y bajar escaleras como lo hacían antes.

Aunque estas prótesis todavía no solucionan el problema de la integración con la pierna, que provoca serios dolores a las largas horas de uso, aporta una movimiento que imita muy bien el caminar normal de una persona.


Algunos vídeos dentro...

17 feb 2011

HackU Barcelona

2/17/2011 Posted by Unknown No comments
intro

Aunque quizás un poco tarde este fin de semana del 4 de febrero tuve el placer de participar en un concurso de programación organizado por Yahoo en la Facultad de Informatica de Barcelona(UPC). El concurso se llama HackU y consiste en crear un pequeño proyecto. En primer lugar, Yahoo te presenta algunas de sus tecnologías más punteras, librerías como YQL, que permite hacer búsquedas en internet como si fueran sentencias SQL (realmente impresionante), o Yahoo Maps entre otras.

Y si al día siguiente crees que tienes una buena idea, puedes desarrollarla durante 24 horas sin descanso. Todo esto teniendo en comida, bebida, música, y todo lo que necesites para aguantar unas horas intensivas de programación y de diversión.


<span class=

Al final de esas 24 se hace una pequeña presentación y se deciden los ganadores.

La idea

Desde el primer momento teníamos la intención de pasarlo bien, y no tomarnos el concurso como una afrenta personal. Creo que esa fue una de las razones por las que nos dedicamos cada uno a una parte y fuimos capaces de organizarnos de manera ordenada.

Después de un BrainStorming de ideas disparatadas quizás no aptas para desarrollarlas en 24 horas, elegimos una de ellas.

Nuestro proyecto consistió en controlar mediante Twitts un robot de LegoMindstrom controlado por bluetooth. Además este Robot contestaría creando un cierto feedback escribiendo en un blog un pequeño registro de las ordenes que iba recibiendo, y mediante la API de google maps geolocalizar desde donde recibíamos las ordenes.

La verdad es que en el momento nos pareció una idea alocada, pero ahora que tengo que explicársela a la gente me parece una completa locura de desarrollar en 24 horas.


Diferentes módulos

Nuestro proyecto lo desarrollamos como cualquier proyecto real debe diseñarse, utilizando una metodología por módulos, que después se integran en un proyecto común.

En primer lugar, teníamos la comunicación entre el ordenador que contenía el servidor y el robot por Bluetooth. Para esto usábamos la biblioteca LEJOS que permite utilizar la potencia del lenguaje java dentro de la plataforma LEGOMindtrom.

En segundo lugar, usamos la apide aming de twitter para registrarnos a un conjunto de tags y poder detectar cuando alguien enviaba un twitt desde cualquier parte del mundo que representara una orden para nuestro robot.

Por último, desarrollamos una pagina web, que mediante llamadas a la librería YQL, podía hacer inserciones en un blog alojado en WordPress y donde se encontraba el mapa que geolocalizaba los twiits. Para este último usamos la API de google Maps.

Entrega de premios

He de decir, y para no hacerme más pesado de la cuenta que ganamos el concurso. Contra todo pronostico, aunque haciendo balance de todo lo que usábamos quizás era más que razonable. El premio fueron un Ipod shuffle, 25$ en Itunes y un trofeo muy majo.

<span class=


Enlaces de interés:
http://developer.yahoo.com/hacku/

27 ene 2011

Ocultar mensaje en una imagen: Esteganografia

1/27/2011 Posted by Unknown 1 comment
La Esteganografía es la disciplina que estudia las técnicas para ocultar mensajes pero a diferencia de la criptografía trata de ocultar la información dentro de otros objetos que parezcan inocuos como texto, imágenes, audio o incluso vídeo sin que al reproducir ese medio se pueda apreciar nada.

Aunque se suele confundir con la criptografía son dos cosas totalmente diferentes, incluso puede aplicarse juntas si ocultamos un mensaje cifrado, la esteganografia trata de ocultar un objeto o mensaje al que lo observa, en cambio la criptografía intenta que aunque se conozca de su existencia no seamos capaces de obtenerlo.

La parte teórica

Aunque hay muchas técnicas dentro de esta materia nos centraremos en la conocida como LSB (Least Significant Bit) que consiste en, sabiendo la representación que tiene un píxel en una imagen, modificar el bit menos significativo o de menor peso para esconder el mensaje.

Para utilizar este método tenemos que saber como está codificado un píxel en una imagen y aquí tenemos un problema ya que eso depende de su formato y de su calidad, si estas cambian la forma de esconder el mensaje también cambiará.

Aquí nos centraremos en los archivos .bmp que tienen 256 colores, es un formato sin perdidas (al comprimir no se pierden píxeles) y cada color está representado en dos bytes, normalmente, en la cabecera podremos comprobarlo realmente. Cuando tratemos el fichero tendremos que tener en cuenta la cabecera para no modificarla en el fichero destino. La cabecera del fichero nos interesa ya que no debemos modificarla, seria la siguiente:


offset

size

description

0

2

signature, must be 4D42 hex

2

4

size of BMP file in bytes (unreliable)

6

2

reserved, must be zero

8

2

reserved, must be zero

10

4

offset to start of image data in bytes

14

4

size of BITMAPINFOHEADER structure, must be 40

18

4

image width in pixels

22

4

image height in pixels

26

2

number of planes in the image, must be 1

28

2

number of bits per pixel (1, 4, 8, or 24)

30

4

compression type (0=none, 1=RLE-8, 2=RLE-4)

34

4

size of image data in bytes (including padding)

38

4

horizontal resolution in pixels per meter (unreliable)

42

4

vertical resolution in pixels per meter (unreliable)

46

4

number of colors in image, or zero

50

4

number of important colors, or zero



Un ejemplo:
Si queremos esconder el carácter 'A' que en ASCII tiene codificación como
(0110) (0001) en binario o 0x41 en hexadecimal. Teniendo una imagen así totalmente inventada:

(0110) (1111) , (0110) (1111) , (0110) (1111) , (0110) (1111),
(0110) (1111) , (0110) (1111) , (0110) (1111) , (0110) (1111).

Obtendríamos:

(0110) (1110) , (0110) (1111) , (0110) (1111) , (0110) (1110),
(0110) (1110) , (0110) (1110) , (0110) (1110) , (0110) (1111).

Esto aplicado a toda la imagen y copiando en el fichero de salida todo lo que no modificamos obtendríamos un fichero igual que el de entrada donde hemos modificado algunos píxeles inapreciable para el ojo humano.

En proximas entregas!

Para acabar de rematar el tema, y como de momento los humanos no tenemos la habilidad para modificar píxeles a voluntad, escribiremos un pequeño programa en C++ que introduzca un String en una imagen con formato .bmp.

Enlaces de interés:

http://www.fastgraph.com/help/bmp_header_format.html

http://en.wikipedia.org/wiki/Bitmap

9 jul 2010

Evolución balones del mundial

7/09/2010 Posted by Unknown No comments
Aunque hace prácticamente siglo que no escribo en el blog, me hacia ilusión desde hace algún tiempo retomarlo. Por falta de tiempo y inspiración me ha sido imposible. Una vez pedidas las disculpas lo recupero con un post veraniego, casi en forma de tweet sobre unas fotografías en "The New York Times" donde se ve la evolución de los balones en cada mundial.

Como anécdota está el balón de Italia 1990 donde parece que España ganó a España por 2-1 en la fase previa.



7 may 2009

La escitala espartana

5/07/2009 Posted by Unknown 2 comments

Volviendo al tema de la criptografía quería hablar sobre un método antiguo, y que podemos tomarnos como un juego y crear una nosotros mismos, hablo de la escitala espartana.

La escitala es un método criptográfico de transposición que al parecer usaban los éforos espartanos para el envío de mensajes secretos. Los éforos eran un grupo de poder que se designó en esparta para tener dirigentes cuando los reyes dirigían a los ejércitos en campañas.


Skytale


Consiste en una vara
de un diámetro especifico, en realidad uno cualquiera, enrollamos un tira de papel cubriendo la superficie del palo rodeándolo, como haciendo círculos. En ese momento escribimos el mensaje en el papel colocando el palo en posición horizontal. Cuando se desenrolla el mensaje solo se lee en sentido vertical por lo que será necesario colocar el mensaje en otro palo de mismo diámetro para saber que decia. Lo que se utilizaba normalmente eran dos varas gemelas y cada una de las partes tenia una que usaba tanto para escribir como para descifrar el mensaje.

Enlaces de interés:
Wikipedia:Escitala

5 may 2009

Cita

5/05/2009 Posted by Unknown No comments
Lo mejor del código orientado a objetos es que puede hacer que los problemas pequeños y sencillos parezcan grandes y complejos.

-- Anónimo

Visto en mundoGeek