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

27 abr. 2011

Adios PC City Adios

4/27/2011 Posted by Michael Delgado 2 comments
Como ya se ha anunciado Pc City ha decidido que cerraría todas sus tiendas en España. En los últimos días se han hecho descuentos bastante suculentos, para intentar acabar el stock que tenían principalmente.

Pensando en esto tuve la oportunidad de acercarme al PCCity de Ronda San Antonio en Barcelona, o el ExPcCity debería decir.

2011-04-23 16.42.59

2011-04-23 16.40.05

2011-04-23 16.39.15

La verdad es que la imagen era un poco deprimente, con estanterías sin existencias y con los empleados haciendo piña en el medio de la tienda, con cara de pena, incluso tomándolo con un poco de ironía con esa trollface que parecía sonreír a los que por allí nos paseábamos.

2011-04-23 16.39.31

2011-04-23 16.39.45

25 mar. 2011

La chorrá de la semana (III)

3/25/2011 Posted by Michael Delgado No comments
Hoy en la chorrá de la semana un vídeo que vi en Paraiso Friki, si queréis perder el tiempo un rato con cosas frikis de videojuegos y mucho más os recomiendo que os paséis.

Dicho esto os dejo un vídeo de una secta en plan Mortal Kombat que no tiene desperdicio:

17 mar. 2011

16 mar. 2011

13 mar. 2011

Que está pasando en la central de Fukushima-Daiichi?

3/13/2011 Posted by Michael Delgado No comments
En los últimos días la noticias de actualidad ha sido el terremoto y el posterior tsunami que ha arrasado parte de la costa noreste de Japón. Desde aquí no quiero tratar el aspecto humano que está siendo tratado en otros medios, aunque espero que al final sean las mínimas víctimas posibles.

Por ello comparto un video en que Manuel Fernández-Ordoñez, físico nuclear, comenta de manera sencilla que está pasando en la central nuclear de Fukishima.

9 mar. 2011

La chorrá de la semana

3/09/2011 Posted by Michael Delgado No comments
Inauguro una sección en la que, como bien dice su nombre, pondré la imagen, el video, el cómic, o lo que se me ocurra gracioso de la semana.

Esta semana: Who the fuck is wikileaks, de Chicken Soup con canción de Boney M

7 mar. 2011

Donde pones las llaves cuando programas?

3/07/2011 Posted by Michael Delgado 2 comments
Alguna vez mientras programaba me he preguntado cual es la manera correcta de poner las llaves (curly brackets) cuando abrimos un bloque en alguno de los lenguajes modernos como C++ o Java. Ahora los amigos de LinuxHispano no solo nos sacan de dudas si no que nos instruyen sobre que cada forma de hacerlo tiene un nombre.

Forma básica

if(condicion) sentencia;

Estilo Whitesmith (uno de los primeros compiladores de C)

if(condicion)
{
sentencia0;
sentencia1;
}

Estilo GNU

if(condicion)
{
sentencia0;
sentencia1;
}

Estilo BSD/Allman

if(condicion)
{
sentencia0;
sentencia1;
}

Estilo Kernighan&Ritchie/Kernel

if(condicion) {
sentencia0;
sentencia1;
}

Con esto solo me queda añadir, y tú de quien eres?

Links de interés:
LinuxHispano

28 feb. 2011

Rodilla motorizada

2/28/2011 Posted by Michael Delgado 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 Michael Delgado 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 Michael Delgado 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