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

25 abr 2012

Super Mario Bros Resumen

4/25/2012 Posted by Unknown 1 comment

Aunque tengo el blog un poco abandonado por intentar acabar mi proyecto final de carrera, no quería pasar la oportunidad de comentar esta maravilla.



Super Mario Summary se trata de un juego desarrollado por Johan Peitz que intenta condensar la esencia de cada uno de los niveles del Super Mario Bros original en una sola ventana. Creo que incluso conserva la jugabilidad del original, pero necesitaremos mucho menos tiempo para completarlo.



Sin más dilación os invito a que lo probéis: http://johanpeitz.com/asms/

12 mar 2012

Cuadricópteros

3/12/2012 Posted by Unknown 1 comment
De Technische Universität Ilmenau

Desde hace algún tiempo, y debido a que procrastinar es mi segundo nombre, siempre he tenido aficiones fuera de la afición principal que estaba haciendo en ese momento. Cuando estaba haciendo bachillerato miraba cosas de la carrera, y durante la carrera tonterías varias. Ahora que estoy acabando, sigo con las aficiones extrañas fuera de la carrera o de lo que debería estar mirando, como escribir este post.

Dentro de estos hobbys extraños hay uno que de momento es solo teórico, los cuadricópteros (quadcopter en inglés)

Y que son?

Pues según la Wikipedia un cuadricóptero no es más que un helicóptero de 4 hélices. Estos aparatos tienen la peculiaridad que no necesitan un rotor de cola para estabilizarse, ya que la aerodinámica propia de los cuatro motores lo hace bastante estable. Es por esto que permiten hacer movimientos que un helicóptero de una hélice seria imposible.

Porque me apasionan


El hecho de poder crear con tus propios medios circuitos integrados que una persona ha diseñado en la otra punta del globo es algunas de las cosas por las que la era de la información en la que vivimos me apasiona tanto.

En el mundo de los cuadricopteros hay desde ingenieros aburridos diseñando y construyendo su cuadricoptero en su garaje, a grandes institutos de investigación trabajando en proyectos complejos que quizás tengan aplicaciones futuras en nuestras vidas.

Es esa posibilidad de construir uno propio o colaborar en algún proyecto conjunto para construir uno lo que hace que en este momento sea tan interesante este campo.

Algunos ejemplos

Uno de los cuadricópteros más famosos es el ARDrone de la empresa Parrot, este es el único cuadricóptero que se puede comprar en el mercado y en principio permitía la interacción solo con Iphone y Ipad aunque ahora ya tienen aplicación de control para Android y que se puede comprar por unos 300 €.


Ar Drone de Parrot


En un ámbito más de investigación tenemos el Swiss Federal Institute of Technology Zurich que dispone de un laboratorio completo con cuadricópteros y que han realizado experimentos muy interesantes como este que podemos ver, en que llevan a cabo una interacción mediante Kinect de Microsoft.






O este otro en que un cuadricótero devuelve una pelota de ping pong, incluso se la pasan entre ellos.






Aunque ejemplos en este momento hay muchos, no quería dejar el post cojo sin añadir un vídeo que pude ver la semana pasada en que un grupo de cuadricópteros de la universidad de Pennsylvania interpreta un tema de James Bond.






Enlaces de interés
http://en.wikipedia.org/wiki/Quadrotor - Referencia de la wikipedia de cuadricóptero en Inglés
http://es.wikipedia.org/wiki/Quadrirotor - Referencia de la wikipedia de cuadricóptero en Castellano
http://ardrone.parrot.com/parrot-ar-drone/en/ - Página oficial de ArDrone
http://www.ethz.ch/index_EN - Página de la Swiss Federal Institute of Technology Zurich
http://www.upenn.edu/ - Página de la Universidad de Pennsylvania
http://www.tu-ilmenau.de/ - Página de Technische Universität Ilmenau

18 ene 2012

STOP SOPA

1/18/2012 Posted by Unknown 2 comments
Hoy día 18 de enero de 2011 se está llevando a cabo un bloqueo masivo en contra de la ley SOPA. Aunque seguramente se ha escrito demasiado sobre ello no quería perder la oportunidad de hacer un pequeño comentario sobre este asunto.



Y que es la ley SOPA (Stop Online Piracy Act)? Pues consiste en un conjunto de procedimientos que permitirían cerrar cualquier página de Internet solo con una denuncia de un usuario, y sin la intervención de un juez, es decir, lo mismo que nuestra ley SindeWert pero a la americana.

Creo que está muy bien explicado aquí por parte de los chicos de ALT1040:
http://alt1040.com-que-es-y-como-funciona-la-ley-sopa-en-terminos-simples-y-sencillos?

La única diferencia es que en este caso muchas de las empresas tecnológicas lideres se han declarado en contra y portales con un gran tráfico han decidido durante 24 horas cerrar sus servicios para concienciar a los usuarios. Los casos más significativos son los de la wikipedia en ingles y de reddit.



Por último, comentar el caso de twitter que decidió no detener su actividad y algunos usuarios en protesta han escrito mensajes en negro.


Aunque los derechos de autor se deben defender y por supuesto los creadores deben poder remunerarse por su obra, no se trata de defender la piratería, trata sobre la defensa de los derechos fundamentales por encima de los lobbys.

Internet ha crecido y usarla como medio para ganarse la vida es rentable, si la industria no quiere abandonar su modelo de negocio y adaptarse, somos los usuarios como potenciales clientes los que debemos decantarnos por productos que piensen en los usuarios y se preocupe por su opinión, en el fondo nosotros tenemos el dinero, y decidimos donde gastarlo.



27 abr 2011

Adios PC City Adios

4/27/2011 Posted by Unknown 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 Unknown 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 Unknown 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 Unknown 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 Unknown 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 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

23 abr 2009

ECOFONT: La letra ecologica

4/23/2009 Posted by Unknown No comments
Aunque la noticia es un poco antigua, de enero o así según he investigado, pero como lo he leído en la revista Wired versión inglesa que me compré en un aeropuerto me apetecia publicarlo.

A diario imprimimos documentos y aunque algunas veces tienen gráficos o imagenes, la mayoria de las veces solo tienen texto plano, la idea de esta letra es reducir la tinta de los caracteres sin que se pierda visibilidad.

Creada por una empresa holandesa llamada SPRANQ, basada en una idea de Colin Willems quieren concienciar a la gente de la cantidad de tinta que malgastamos, para ello han agujereado los caracteres para reducir hasta en un 20% el consumo.

El efecto seria el siguiente:


A tamaños grandes se pueden ver los agujeritos pero a un tamaño más habitual para textos no se aprecia. La letra es una versión de Vera Sans y está disponible para PC y Mac.

Solo queda preguntarnos si lo de agujerear las cosas para ahorrar se convierte en una costumbre y encontramos coches agujereados (por aquello de la aerodinámica) o incluso ropa agujereada.


Links de interés:
Página del proyecto: http://www.ecofont.eu/ecofont_es.html
Descarga:http://www.ecofont.eu/descarga_es.html

15 abr 2009

Google Calendar: Avisos SMS

4/15/2009 Posted by Unknown No comments
gcal

El otro día trateando en las muchas aplicaciones que nos ofrece google encontré google calendar. Este servicio no es más que una agenda donde podemos apuntar nuestro eventos en regiones de horas o por días.

Cada evento tiene unas opciones como la descripción o nombre de evento. Estas características son las clásicas que podriamos tener con cualquier agenda personal o de telefono movil de última generación pero es además si vamos a "Configuración-> Configuración para móviles" podemos configurar para recibir los avisos por sms. Se nos pide el número y un código de activación, al introducir el número nos enviaran un mensaje con ese codigo y lo introducimos y ya podremos recibir los avisos de forma cómoda en nuestro móvil tanto antes del evento como queramos.

Como el teléfono se ha convertido en un apédice de nuestro cuerpo podremos acordarnos siempre de todo (muy recomendado para que se le olvida que ha comido miestras se come el postre).


Enlaces de interés:
www.google.com/calendar

13 abr 2009

Cifrado Cesar: Código

4/13/2009 Posted by Unknown 1 comment
Para acabar el tema del cifrado César un pequeño código que permite usar cualquier desplazamiento en un diccionario de 26 letras como el anglosajón (fácilmente modificable si se cambia el abecedario y la variable global num_letras) al codificar una frase introducida por pantalla.

Podéis copiar el código directamente:

#include <stdio.h>

#define NUM_LETRAS 26

char cesar_char(char c,int desp){

char abc[NUM_LETRAS]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

int cod=0;
int i=0;

while(i<NUM_LETRAS && c!=abc[i])i++;
cod=i+desp;

if(cod>NUM_LETRAS){cod%=NUM_LETRAS;}

return abc[cod-1];
}

void cesar(char* text,int desp){

char res[256];

int postext=0;
int posres=0;
char charcod;
char local;
local=text[0];


while(local!='\0'){
charcod=cesar_char(local,desp);
res[posres]=charcod;
posres++;
postext++;
local=text[postext];

}
res[posres]='\0';

printf("Resultado: %s\n",res);

}

int main(){

char c[256];
int desp;

printf("Texto para codificar: ");
scanf("%s",&c);

printf("Desplazamiento: ");
scanf("%d",&desp);

cesar(c,desp);

return 0;
}



O descargar el código fuente de aquí:
Descargar