Archive for the ‘ tech ’ Category

Cómo recuperar un archivo eliminado por SVN si usas Eclipse

Si has llegado hasta este post, es más que probable que hayas sufrido la pérdida de un archivo y quieras recuperarlo, así que ármate de paciencia (y suerte).

El otro día estaba yo tan alegre trabajando con mi Eclipse escribiendo en PHP cuando pensé: «Ahora es el momento de hacer un Commit». Así que lo hice.

Lo normal es que al hacer un Commit, el SVN gestione los archivos correctamente y todo se sincronice sin problemas ni conflictos con los ficheros modificados y acabe almacenándose como una modificación válida en un lugar seguro. Pero claro, cuando más de una persona toca el mismo fichero, es más que probable que eso empiece a dar problemas. Yo, perdí prácticamente todo el día de trabajo :(

Investigando por internet (no sé exactamente dónde) Gracias a la inestimable ayuda de Dani Bru, que encontró por internet el nombre de un directorio mágico donde se guardan backups automáticos, nos pusimos manos a la obra. Yo pensé, «ya… claro!» No tenía ninguna esperanza, pero era la única pista que tenía para ecuperar lo que se había perdido y estos son los pasos que dí para poder recuperarlo.

Por lo visto, además de la copia remota que se genera al hacer un Commit, en algún lugar oculto de la estructura de directorios que crea Eclipse en local (directorios ocultos y demás cosas), va guardando copias de (al menos) el estado anterior al Commit.

Primer paso

Abrimos el terminal y escribimos:

pedro@pedro-laptop:~$ updatedb

Es posible que tarde algunos segundos, especialmente si nunca antes lo habías ejecutado. Este comando actualiza el índice de directorios del sistema. De manera que en el siguiente paso nos permitirá realizar una búsqueda de manera más precisa. Cuando acabe el comando, no dará ningún mensaje, tan solo nos devolverá el control del terminal.

Segundo paso

Realizamos la búsqueda de la cadena org.eclipse.core.resources, que al parecer es el directorio mágico que puede salvarnos la vida (bueno, el día).

pedro@pedro-laptop:~$ locate org.eclipse.core.resources | grep history
/some/path/to/org.eclipse.core.resources/.history/24/109601fa0cd800101a3dcfaf52c523eb
/some/path/to/org.eclipse.core.resources/.history/24/e077e68009d7001017b898f7b25b1cbb
/some/path/to/org.eclipse.core.resources/.history/25/9095cb8d2bd7001017b898f7b25b1cbb
/some/path/to/org.eclipse.core.resources/.history/26/40fa905e2bd7001017b898f7b25b1cbb
/some/path/to/org.eclipse.core.resources/.history/27/80aeb1582bd7001017b898f7b25b1cbb
/some/path/to/org.eclipse.core.resources/.history/2a/20efb2cb11d800101a3dcfaf52c523eb
/some/path/to/org.eclipse.core.resources/.history/2a/80914b200ed800101a3dcfaf52c523eb
/some/path/to/org.eclipse.core.resources/.history/2d/f0acb5240fd800101a3dcfaf52c523eb
/some/path/to/org.eclipse.core.resources/.history/3/e060608410d800101a3dcfaf52c523eb
/some/path/to/org.eclipse.core.resources/.history/32/a0a33f8f0ad80010160af0d88658fae4
/some/path/to/org.eclipse.core.resources/.history/34/60374f474bd60010182b9a1ddb7c2773
/some/path/to/org.eclipse.core.resources/.history/34/c04a901b4ad60010182b9a1ddb7c2773
/some/path/to/org.eclipse.core.resources/.history/36/c0d19b430bd80010160af0d88658fae4
(…)

Tercer paso

Entramos en el directorio que haga referencia al proyecto que queremos recuperar información. Más concretamente en el directorio oculto .history. Yo en este ejemplo, buscaré algo del directorio android, en el que estoy trabando:

pedro@pedro-laptop:~$ cd /home/pedro/workspace/android/.metadata/.plugins/org.eclipse.core.resources/.history/
pedro@pedro-laptop:~$ ls
0 13 1c 2 24 28 2f 33 38 41 48 4e 52 60 6a 71 7a 7f 84 88 9 9b a3 a9 af b2 b6 be c2 c7 ce da e6 ec f f3 fd 1 16 1d 20 25 2a 3 34 3a 43 49 5 57 61 6e 72 7b 8 85 89 91 9d a4 ab b b3 b7 c c3 c8 d2 db e7 ed f0 f7 10 17 1e 22 26 2b 30 36 3c 44 4a 50 59 63 6f 75 7d 81 86 8a 94 9f a5 ad b0 b4 b8 c0 c5 ca d7 e2 e8 ee f1 f9 12 18 1f 23 27 2d 32 37 3d 45 4c 51 5f 64 7 77 7e 83 87 8d 97 a0 a8 ae b1 b5 b9 c1 c6 cd d9 e3 ea ef f2 fc

Cuarto paso

Al hacer ls, veremos un montón de directorios con nombres de dos caracteres, sin ningún tipo de orden aparente. Al menos, yo no se lo encontré, pero podemos ordenarlos por fecha de modificación con el siguiente comando:

pedro@pedro-laptop:~$ ls -tlahr

Ese comando listará los directorios de más antiguo a más actual. Por lo tanto, sólo deberemos revisar el contenido de los directorios de el más nuevo al más antiguo (de abajo a arriba). Es posible que algunos estén vacíos, pero otros contendrán archivos con nombres que parecen un hash MD5. La única manera de saber el contenido de estos ficheros es editándolos. Veamos cómo:

pedro@pedro-laptop:~$ cd e2
pedro@pedro-laptop:~$ ls -lah
total 20K
drwxr−xr−x   2 pedro pedro 4.0K 2011-09-06 00:30 .
drwxr−xr−x 147 pedro pedro 4.0K 2011-09-06 00:54 ..
−rw−r−−r−−   1 pedro pedro 1.9K 2011-09-06 00:27 1036c7a60ed800101a3dcfaf52c523eb
−rw−r−−r−−   1 pedro pedro  824 2011-09-04 21:14 108c03632ad7001017b898f7b25b1cbb
−rw−r−−r−−   1 pedro pedro 1.3K 2011-09-04 21:25 505f6baf2bd7001017b898f7b25b1cbb

pedro@pedro-laptop:~$ gedit * &

Ahora sólo queda examinar los ficheros para comprobar si este es el directorio que contiene los ficheros que hemos perdido. Si este no es, prueba con el anterior de la lista.

Si tienes algo de suerte, es posible que encuentres lo que necesitas. Yo la tuve y recuperé el trabajo del día. :D

Suerte y gracias a Dani que hizo que la historia tuviera un final feliz!

Gtk-WARNING **: Locale not supported by C library

Hace ya algunos días que estoy usando Ubuntu 11.04, aunque es una versión beta, funciona muy bien… sólo hay dos cosas que me han hecho perder algo de tiempo mirando por internet cómo solucionarlo. Una de ellas, es un pequeño warning muy molesto que aparece cada vez que lanzo una aplicación gráfica desde el terminal. El error es el siguiente:

pedro@pedro-laptop:~$ ./cualquier-aplicacion

(process:10945): Gtk-WARNING **: Locale not supported by C library.
Using the fallback ‘C’ locale.

Esto me ha pasado por haber instalado el sistema operativo en inglés en_US, utilizando un teclado en español es_ES. Así que me puse a investigar cómo solucionarlo y siguiendo los siguientes pasos, he conseguido resolverlo:

Lo primero de todo, abrimos un terminal, nos hacemos root y vamos al directorio /var/lib/locales/supported.d/.

pedro@pedro-laptop:~$ sudo su
root@pedro-laptop:/home/pedro# cd /var/lib/locales/supported.d/
root@pedro-laptop:/var/lib/locales/supported.d# ls -lah
drwxr−xr−x 2 root root 4,0K 2011-04-25 20:00 .
drwxr−xr−x 3 root root 4,0K 2011-04-13 12:48 ..
−rw−r−−r−− 1 root root  270 2011-04-10 15:16 en
−rw−r−−r−− 1 root root   36 2011-04-25 20:09 local

Allí, en mi caso, existe un archivo llamado en y otro llamado local. Vamos a añadir manualmente el locale es_ES en un archivo llamado es, de la siguiente manera:

root@pedro-laptop:/var/lib/locales/supported.d# echo ‘es_ES.UTF-8 UTF-8′ > es

Comprobamos que se ha añadido bien haciendo un cat:

root@pedro-laptop:/var/lib/locales/supported.d# cat es
es_ES.UTF-8 UTF-8

Ahora añadiremos al locale es_ES en el fichero de locales por defecto. Para ello sólo tenemos que editar el archivo local y poner en la primera línea el locale que nos interesa, de modo que en mi caso queda de la siguiente manera:

root@pedro-laptop:/var/lib/locales/supported.d$ cat local
es_ES.UTF-8 UTF-8
en_US.UTF-8 UTF-8

Y ya está, ahora solo tenemos que reconfigurar el paquete de locales, para que lo reconozca:

root@pedro-laptop:/var/lib/locales/supported.d# dpkg-reconfigure locales
Generating locales…
en_AG.UTF-8… up-to-date
en_AU.UTF-8… up-to-date
en_BW.UTF-8… up-to-date
en_CA.UTF-8… up-to-date
en_DK.UTF-8… up-to-date
en_GB.UTF-8… up-to-date
en_HK.UTF-8… up-to-date
en_IE.UTF-8… up-to-date
en_IN.UTF-8… up-to-date
en_NG.UTF-8… up-to-date
en_NZ.UTF-8… up-to-date
en_PH.UTF-8… up-to-date
en_SG.UTF-8… up-to-date
en_US.UTF-8… up-to-date
en_ZA.UTF-8… up-to-date
en_ZW.UTF-8… up-to-date
es_ES.UTF-8… done
Generation complete.

Fin del problema! Ya no veremos más el molesto Gtk-WARNING :D

Cosas de Google que quizás no conocías

Google Logo

Google Logo

Que Google es un gigante entre los grandes es algo que todos sabemos. Dicen por ahí que todo lo que toca Google se convierte en oro, pero no es así. Google también tiene más de un proyecto que no acaba de despegar o que ha sido totalmente un fracaso. Por ejemplo:

  • Google X. No, no es un buscador de fotos porno, sino un proyecto que empezó a desarrollar el 15 de Marzo de 2005, y que abandonó un día despues. Al parecer pretendían diseñar un Dock al más puro estilo OSX aunque se arrepintieron pronto.
  • Otro buen ejemplo de que hay productos de Google que no acaban de cuajar es Google Checkout. Este servicio compite directamente con PayPal, el cual parece imbatible hoy en dia. Si compras algo por internet, el vendedor al menos te ofrecerá dos opciones: PayPal o Tarjeta de crédito. Google Checkout pasa muy desapercibido, aunque habrá que esperar qué le depara en el futuro, todavía puede darnos sorpresas.
  • Orkut es una red social promovida por Google que nació en 2004, pero que no acabó de tener demasiado éxito excepto en India y en Brasil, donde se llevan un 37% y 50% del pastel de las visitas a redes sociales. A pesar de que Google se adelantó a Facebook en 3 años, los más de 350 millones de usuarios dejan claro cual es la red social por excelencia.
  • A pesar de que Google compró Youtube, el portal de videos por excelencia, parece que fue una maniobra para hacer pasar desapercibido otro fracaso: Google Video. Aunque ahora Google Video sea un buscador, en sus inicios era más bien una especie de portal donde podías subir videos tal y como ahora se hace en Youtube.
  • Uno de sus últimos fracasos ha sido Google Wave. Tras su lanzamiento a bombo y platillo en 2009, sólo ha tenido que pasar algo más de un año para que el proyecto sea abandonado.

Google Wave Logo

Pero claro, todos estos fracasos de Google son experiencias de las que aprenden para mejorar y saber hacia donde dirigir su siguiente proyecto. Por eso no es de extrañar que otros productos sean todo un éxito. Como ejemplos basta con nombrar Gmail, Google Maps, Street Views, Google Earth, Google Chrome, Google Analytics, Google Adsense, Google Adwords, Google Calendar, Google Docs, Google News, Android, Google Talk, sin olvidarse del propio buscador Google.

Pero esta empresa nunca deja de sorprendernos. Siempre está investigando, desarrollando, probando, ofreciendo nuevos servicios y productos. Hay muchos que sólo se asoman tímidamente por Google Labs sin que mucha gente se haga eco. Veamos algunos de ellos:

  • Google Badge es una pequeña utilidad para Google Talk que nos permite introducir una ventana de chat en nuestra propia web o blog, de manera que si algún visitante pasa por allí y resulta que estamos conectados en ese momento puede hablarnos directamente. Nosotros recibiremos una conversación normal de Google Talk, pero en vez de ser de alguien de nuestra lista de amigos, será de alguien llamado Anónimo.
  • Google Scribe, es un servicio con el que podrás escribir cualquier texto sin tener que escribirlo. El sistema te va proponiendo palabras o frases que suelen utilizarse en ese contexto y sólo tienes que ir seleccionando el número que corresponde a la frase que quieres escribir. La verdad es que creo que será un buen servicio que nos ayudará a redactar documentos muy correctos y muy rápidamente. Sólo falta esperar que lo hagan disponible en otros idiomas, de momento sólo está en inglés.
  • En algunos vídeos de Youtube existe una función muy interesante: La transcripción y traducción automática. La idea es genial! Tú hablas en cualquier idioma en youtube, él reconoce la voz y la transcribe automáticamente a modo de subtítulos. Y además lo traduce al idioma que quieras!! Automáticamente!! Fuera barreras idiomáticas!! Aquí tienes un video con transcripción automática. Haz clic en el botón cc para activarlo.
  • Con Image Swirl puedes buscar imágenes por parecido y de una forma muy visual. Pruébalo, en ocasiones puede resultar interesante.
  • A pesar de que Open Spot sólo funciona en teléfonos Android, es una aplicación a destacar. Open Spot permite a la gente que abandona un aparcamiento de coche pueda avisar a otros usuarios que buscan sitio para aparcar de que allí ahora hay un nuevo sitio libre. Ayudando a otros a encontrar aparcamiento ahorras tiempo, gasolina, reduces la contaminación y además vas reuniendo puntos. Es como un juego!! Si alguien lo prueba que me cuente qué tal funciona en Barcelona!!
  • Google Energy

    Google Energy

    Pero Google no sólo se queda en Internet. Google también se está haciendo un hueco entre las compañías eléctricas. En Estados Unidos dispone de licencia como operador eléctrico y se hace llamar Google Energy. Eso sí, fieles a su lema «Don’t be evil», obtienen la energía de manera renovable mediante paneles solares.

  • Google Translator también es un servicio muy conocido. Pero, como curiosidad, ¿sabías que también traduce al Latín? y no sólo eso, además te lo grava en piedra tal y como se hacía en la época: prueba con «la suerte está echada» ya verás!!
  • Estos de Google no paran. Ayer mismo presentaron un nuevo formato de imagen que desbancará (o debería) al anticuado JPEG. El formato se llama WebP y es capaz de ofrecer la misma calidad o más que JPEG, pero con ratios de compresión de hasta un 75% más que hasta ahora.

Google está creciendo a un ritmo imparable. Mirándolo bien, si sigue creciendo será más fácil acabar trabajando en Google! Aunque sea en Google Burger…

Dropbox: Ahora hasta 10Gb gratis!

[30-sep-2010] UPDATE!! Ahora te duplican el espacio si eres estudiante, visita http://db.tt/edu e indica tu correo electrónico con extensión .edu y a disfrutar de hasta 20Gb!! :D

Ríos de tinta se han escrito sobre esta genial herramienta: Dropbox. Para el que todavía ande un poco despistado os contaré qué hace este software. Se trata, a mi parecer, del más sencillo sistema de sincronización de archivos en la nube: eso que está tan de moda que ahora llaman cloud computing.

Personalmente utilizo Dropbox para:

  • Hacer backups automáticos de cosas importantes.
  • Compartir archivos (música, fotos, videos, documentos de texto, etc..) con mis amigos mediante un enlace.
  • Enviar archivos de gran tamaño directamente al disco duro de otros usuarios de Dropbox.
  • Restaurar copias de archivos antiguos. Algo así como el Time Machine de Apple, pero en la nube.
  • Generar documentos colaborativos. Un archivo compartido que cada usuario modifica cuando lo necesita.
  • Si cambias de PC o formateas no pierdes información. Sólo instalando Dropbox tendrás de nuevo todos los ficheros que hayas elegido.

Además, el programa te permite disponer de los archivos que quieras en cualquier ordenador (o dispositivo) del mundo en el que tengas instalado Dropbox!! Incluso entre distintos usuarios si compartes carpetas!! Y lo mejor es que puede utilizarse en Linux, Mac, Windows, Android, Blackberry, iPhone, iPad o simplemente a través de la web. Y con una capacidad de hasta 10Gb totalmente gratis. Empiezan ofreciéndote 2Gb, que se incrementa en +250Mb cada vez que invitas a algún amigo.

Cada vez que quieras compartir un documento o foto sólo tienes que copiarlo en tu carpeta Dropbox y aparecerá como por arte de magia, en todos los ordenadores en los que tengas Dropbox instalado. También podemos obtener un enlace que si lo enviamos a cualquier persona, podrá descargar el archivo sin que sea usuario de Dropbox. Otra funcionalidad que nos ofrece es poder recuperar versiones antiguas de ficheros que ya han sido modificados. Pudiendo restaurarlo en cualquier fecha, incluso si el fichero ya ha sido borrado de tu disco duro.

Lo mejor es que lo pruebes tú mismo y veas lo útil que resulta.

Para instalarlo, es tan sencillo como registrarse aquí introduciendo tus datos (el email es importante que sea válido). ¡Recuerda los datos introducidos porque luego los necesitaremos!

Tras registrarte comenzará automáticamente la descarga del programa. Al acabar, deberás instalar haciendo doble clic en el archivo para instalarlo.

Una vez instalado, preguntará si queremos crear una cuenta nueva o utilizar una existente. Haremos clic en utilizar una cuenta existente y después en Siguiente (Next).

Es en este paso donde rellenaremos el campo email y password con los datos que hemos utilizado al principio.

Nos preguntará qué tipo de cuenta queremos, en la mayoría de casos, al menos al principio para probarlo, utilizaremos la cuenta gratuita. Así que seleccionamos la primera opción, que nos ofrece 2Gb para empezar.

Para finalizar la instalación, nos pregunta si queremos añadir un acceso directo en el escritorio (por defecto viene marcado) y si queremos modificar la ubicación de la capeta Dropbox, que por defecto será Mis Documentos, hay que seleccionar la opción marcado en rojo.

Y ya tenemos el programa listo para usar. Una gran herramienta que desde hace más de un año se ha convertido para mi en imprescindible. Ahora es más fácil que nunca tener todos los documentos de la universidad en cualquier ordenador sin tener que cargar con un pendrive a todos lados. O subir los videos de las vacaciones para que cualquiera que queramos pueda descargarlo con un enlace (es mejor que megaupload!!!).

Fragmentación IP

La fragmentación IP es una técnica utilizada para dividir los datagramas IP en fragmentos de menor tamaño. Ésto es necesario ya que cuando los datagramas IP viajan de un lugar a otro, éstos pueden atravesar diferentes tipos de redes y el tamaño máximo -llamado MTU- de estos paquetes puede variar dependiendo del medio físico utilizado para la transmisión.

El valor máximo que técnicamente puede utilizarse para un datagrama IP es de 65536 bytes, aunque en la práctica se utilizan otros tamaños mucho más pequeños:

  • Ethernet: 1518 bytes (típicamente 1500 bytes).
  • PPPoE: 1492 bytes.
  • ATM: 8190 bytes.
  • FDDI: 4470 bytes.
  • PPP: 576 bytes.

Veamos cómo funciona esta técnica con más detalle. La cabecera IP, que suele tener un tamaño de 20 bytes, contendrá la siguiente información:

  • Identificador de fragmento. Cada Fragmento debe asociarse con un único identificador para que el reensamblaje en destino pueda realizarse correctamente.
  • Información sobre la posición en el paquete final.
  • Información sobre el tamaño de los datos que se transportan en el fragmento.
  • Cada fragmento debe contener el bit MF (More Fragments) para saber si el fragmento actual es el último o no.

Así que la figura de un paquete de máximo tamaño que no necesite fragmentación en una red típica Ethernet sería algo así:

Paquete de 1500 bytes

Paquete de 1500 bytes

Si sumamos la cabecera y los datos encapsulados, tenemos que en total hacen 1500 bytes, por lo que al viajar por una red Ethernet, no sería necesaria su fragmentación.

Los datos encapsulados pueden ser tanto un protocolo IP como TCP, UDP o ICMP. Veamos un ejemplo en el que se tenga que utilizar la fragmentación. Este es un ejemplo anormalmente grande, pero en el que podremos ver cómo se realiza el proceso de fragmentación. Se trata de una petición echo que pasa por una red Ethernet con MTU de 1500 bytes.

Proceso de fragmentación de un paquete de 4028 bytes

Proceso de fragmentación de un paquete de 4028 bytes

En el paquete original, la suma de las cabeceras y los datos ICMP suman 4028 bytes. Este paquete al ser transmitido en una red Ethernet deberá ser fragmentado, generandose así 3 paquetes de 1500 bytes o menos. Cada fragmento llevará obligatoriamente al menos la cabecera IP (necesaria para saber hacia dónde se dirige el fragmento), que en este caso ocupa 20 bytes, así que tendremos realmente 1480 bytes útiles.

El primer fragmento contendrá la Cabecera IP + la cabecera ICMP + la información restante para llegar a 1500 bytes, en este caso 1472 bytes. Puesto que es el primer fragmento, el valor de Offset valdrá 0 y el bit MF valdrá 1 ya que hay más paquetes.

El segundo fragmento contendrá la Cabecera IP + la información restante para llegar a 1500 bytes, en este caso 1480. Ahora el valor de Offset valdrá 1480, ya que es la posición que debe ocupar al ensamblar el fragmento (recordemos que el primer fragmento tenía 8+1472 = 1480). El bit MF valdrá 1 ya que no es el último paquete.

El tercer fragmento contendrá la Cabecera IP + la información restante, en este caso 1048 bytes (ya no hay más bytes). El valor de Offset valdrá 2960, ya que el primer y segundo fragmento ocupaban 1480 cada uno. El bit MF se establece a 0 porque es el último fragmento del paquete.

El campo Protocol sólo indica a qué tipo de protocolo corresponde el paquete original. ID fragmento indica un identificador que será igual para todos los fragmentos del paquete original, así se podrá reconstruir en destino sin confusión. El bit MF (more fragments) se establecerá a 1 siempre, excepto para el último paquete, que será 0. El Offset nos indica la posición que ocupa cada fragmento dentro del paquete original. El campo Tamaño, simplemente registra el tamaño del fragmento actual sin contar la Cabecera IP.

Una vez conocemos a grosso modo cómo funciona esto de la fragmentación, explicaré por encima, cómo un usuario malintencionado puede utilizar este procedimiento para realizar un ataque.

El ataque más conocido que explota la fragmentación IP se llama Teardrop. Este ataque usará información falseada en los fragmentos para poder confundir el reensamblaje en destino y colapsar así el sistema.

Imaginemos que tenemos un MTU de 512 bytes y un paquete que necesita ser dividido en N fragmentos y utilizamos los campos Tamaño y Offset de la siguiente manera:

Offset Tamaño
Fragmento 1 0 512
Fragmento 2 500 512
Fragmento N 10 100

Al reconstruir el paquete en destino se producirá un error de desbordamiento de buffer (buffer overrun), ya que el fragmento N apunta a un lugar en el que ya se había escrito previamente y obliga a sobreescribirse.

Otro ataque interesante es enviar cientos o miles de fragmentos manipulados con diferentes ID de fragmento contra la máquina que se desea atacar, de manera que agotemos los recursos de reensamblaje del equipo atacado; acabaremos colmando la pila en la que reconstruye estos paquetes, y no aceptará ninguno más, generando así un ataque de Denegación de Servicio (DoS).

Afortunadamente, a dia de hoy, este tipo de ataques no suelen ser efectivos. Los sistemas operativos vulnerables son Windows 3.1x, Windows 95, Windows NT y las versiones inferiores a Linux 2.0.32, así como la 2.1.63.

Otro día hablaré del famoso ping de la muerte! :)

Códigos QR

¿Qué es un código QR?

Un código QR, es una imagen bidimensional que contiene información textual. Para que nos hagamos una idea, es como un código de barras, pero creando un dibujo dentro de un área cuadrada. El acrónimo QR viene de las palabras “Quick Response”, ya que el creador de este sistema, la compañía japonesa Denso Wave en 1994, esperaba poder decodificar muy rápidamente estos códigos. La información que puede contener un código QR es tan variada como puedas imaginar, desde simples mensajes textuales, hasta URL’s, pasando por puntos geográficos, tarjetas virtuales (vCard) o incluso SMS (muy cómodo por cierto!).

Mi código QR

Mi código QR

Para ver qué pinta tienen estos códigos, a la izquierda os dejo mi vCard en formato QR Code :)

Existen muchos otros formatos similares a los códigos QR, como los Aztec Codes, Data Matrix, HCCB, PDF417, Semacode, ShotCode, SPARQCode etc… Los más utilizados en Japón y EEUU son los QR Codes, aunque también son populares los códigos SPARQCode (que están basados en QR), y los Data Matrix. También tienen su hueco los PDF417 sobre todo para uso en billetes de vuelos reservados online, o documentos bancarios guardados en PDF.

¿Cómo leer los códigos QR?

Para leer estos códigos sólo necesitas un móvil con cámara y un pequeño software. Yo, personalmente, utilizo i-nigma reader, la verdad es que es bastante rápido, aunque también he probado kaywa y no está nada mal. He leído que QuickMark funciona muy bien, tendré que probarlo algún día. Así que ya tenéis dónde elegir. Y si ninguno de estos programas es compatible con tu terminal, prueba visitando esta colección de aplicaciones QR para diferentes móviles, sólo tienes que ir seleccionando tu marca, y modelo de teléfono y aparecerán distintas alternativas disponibles para tu dispositivo.

¿Dónde puedo usar los códigos QR?

En la actualidad, la publicidad es el lugar en el que más llama la atención. Empresas como Durex, Lego o Audi ya han utilizado esta tecnología para dar a conocer nuevos artículos o promociones. Os dejo los videos de Lego y Audi.

Audi

LEGO

Aunque no son pocas las promociones de películas que utilizan códigos QR en su cartel principal. Películas como 9, 28 Weeks Later, The Happening o LOST son sólo algunos ejemplos.

También resulta llamativo su uso en el arte, desde hace ya algunos años, el grupo La Pluma Eléctr*k utiliza códigos QR para empapelar literalmente muros, mesas y cualquier superficie lisa susceptible de ser pintada. Y en japón también utilizan estos códigos para decorar sus edificios, hacer castillos-QR de arena en la playa y cualquier cosa que se les ocurra.

Aunque en mi opinión, este tipo de tecnología debería extender su uso en más lugares, especialmente en España (la verdad es que el único código QR que he visto ha sido en cartuchos de tinta para impresoras EPSON), imagina lo cómodo que puede ser en un museo, cada cuadro junto a su código QR y con el móvil poder acceder a TODA la información sobre el cuadro directamente en internet! O en bibliotecas! O códigos QR en la calle con información para turistas! O para conocer el precio de cualquier artículo en el supermercado sin tener que imprimir y cambiar los precios de todos los artículos cada día! O integrar esta tecnología en vehículos para obtener información extra mientras viajas por cualquier autopista (accidentes, retenciones, obras)! O para insertarlo en tu tarjeta de contacto y poder añadir a la gente al móvil directamente! Códigos QR en periódicos o revistas para interactuar con sus lectores!… Se me ocurren mil ideas!

¿Cómo generear códigos QR?

La verdad es que es muy sencillo, existen multitud de webs, que permiten crear gratuitamente estos códigos. Os dejo algunos enlaces con los que entretenerse:

Fuentes:

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

http://qrcode.es/?page_id=46&language=es

http://2d-code.co.uk/qr-code-generators/

http://www.google.es/#q=qr+codes

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