Cuanto Meme

ACTUALIZACIÓN: Justo 2 meses después de la publicación del artículo, hemos superado las 10.000 descargas, y contamos con otras tres nuevas aplicaciones!!! Muchas gracias!!!

Fuck YeahHace ya algunos meses que me compré un Samsung Galaxy S y la verdad es que estoy muy contento con la compra. El móvil es una pasada, pero no lo compré únicamente porque fuese cool, (que también), sino porque me quería adentrar en el mundo de la programación Android, y ese móvil parecía lo suficientemente pontente como para empezar a trastear con buen pié. Y eso hice.

He aprendido muchísimo gracias a Raul, que literalmente, es una máquina de hacer aplicaciones para Android. Nos hemos tirado muchas tardes (y noches) programando aplicaciones. Tanto, que nos hemos decidido a subir una al Android Market, bueno, en realidad ya van dos.

La primera que subimos la semana pasada fue Cuanto Meme, una aplicación que extrae las imágenes de Cuanto Cabrón, Cuanta Razón, Visto en Facebook y VayaGif desde su RSS, y las muestra de manera muy sencilla. La verdad es que ha tenido buena acogida, en una semana hemos llegado a las 650 descargas en el Android Market! Genial para ser la primera que subimos, aquí dejo el gráfico de descargas hasta ayer 😀

 

Descargas de Cuanto Meme
Descargas de Cuanto Meme

La segunda aplicación, aprovechando el motor de la anterior, fue Cuanto Meme Gallery, que es la misma idea de aplicación pero con otra interfaz gráfica. Esta lleva en el market tres o cuatro días y ya tenemos 50 descargas! Tampoco está nada mal!

A medida que Raul y yo vayamos subiendo nuevas apps (alguna nueva hay entre manos) lo ire comentando por aquí, y en la web STKDevelopers.com que de momento está en construcción.

Cuanto Meme
Cuanto Meme
Cuanto Meme Gallery
Cuanto Meme Gallery
Cuanto Meme
Cuanto Meme
Cuanto Meme Gallery
Cuanto Meme Gallery

Aquí están algunas capturas de imágenes de las apps y sus respectivos códigos QR para descargar desde tu móvil. Que las disfrutéis, y no olvidéis comentar en el market! 🙂

GPG error

Hace algunos días que aparece un molesto error en mi Ubuntu, relacionado con las actualizaciones del sistema. El error que aparece es:

Reading package lists… Done
W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://extras.ubuntu.com oneiric Release: The following signatures were invalid: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing Key <ftpmaster@ubuntu.com>W: GPG error: http://archive.canonical.com oneiric Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>
W: GPG error: http://archive.canonical.com lucid Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/oneiric/Release

W: Some index files failed to download. They have been ignored, or old ones used instead.

Este error viene acompañado del icono permanente en la barra superior. He encontrado en ubuntuforums la manera de solucionarlo. Allá va:

pedro@pedro-laptop:~$ sudo su
[sudo] password for pedro:
root@pedro-laptop:/home/pedro# cd /var/lib/apt
root@pedro-laptop:/var/lib/apt# mv lists lists.old
root@pedro-laptop:/var/lib/apt# mkdir -p lists/partial
root@pedro-laptop:/var/lib/apt# apt-get clean && apt-get update

Listo!! 😀

How to mount a ISO image under Linux

This post will be short. I wil only write the necessary commands to mount an ISO under Linux.

1. Open your terminal and get root

pedro@pedro-laptop:$ sudo su

2. Create the directory where we wanto to mount the ISO image

root@pedro-laptop:$ mkdir /media/iso

3. Mount the image in the directory as shown below

root@pedro-laptop:$ mount -o loop image.iso /media/iso

Where image.iso is the ISO file we want to mount, and /media/iso is the directory we created previously.

That’s all, now we can go to the directory where the ISO is mounted and explore it like a regular CD or DVD!

pedro@pedro-laptop:$ ls -lah /media/iso

In order to umount, just launch the command as superuser

pedro@pedro-laptop:$ sudo umount /media/iso

Montar una ISO en linux

Este post será corto. Tan sólo escribiré los comandos necesarios para montar una imagen ISO en linux.

1. Abrimos la consola y obtenemos root

pedro@pedro-laptop:$ sudo su

2. Creamos el directorio en el que montaremos la imagen ISO

root@pedro-laptop:$ mkdir /media/iso

3. Montamos la imagen en el directorio de la siguiente manera

root@pedro-laptop:$ mount -o loop imagen.iso /media/iso

Donde imagen.iso es el fichero en formatio ISO que queremos montar, y /media/iso es el directorio que hemos creado previamente.

Ya está, ahora ya podemos ir al directorio en que hemos montado la imagen como si de un CD o DVD se tratase!

pedro@pedro-laptop:$ ls -lah /media/iso

Para desmontar la unidad, tan sólo hay que hacer un umount como superusuario

pedro@pedro-laptop:$ sudo umount /media/iso

How to recover a file deleted by SVN if you use Eclipse

If you arrived until here, maybe you have lost a file and you want to recover it, so summon up your patience (and get lucky).

Some days ago I was so happy working with Eclipse writing PHP code when I thought: «This is the moment to commit my work». And I did it.

Usually, making a commit makes your SVN to manage the files, synchronicing the modified ones, and storing the new changes in a secure place. But when more than one person is working on the same file, you have a lot of chances your SVN to become crazy getting in troubles. I lost almost the whole work of this day 🙁

Searching on internet (I can’t remember where) Thanks to Dani Bru and his invaluable help, he found the name of a magic directory where were supposed to rest an automatic set of backups. «Yes… of course!» I thought. I had no hope, but this was the only track to solve the problem, and we get to work.

Apparently, in some obscure and hidden place of your file system, Eclipse makes (at least one) a backup before a commit. And this is how we find the place:

First step

Open your terminal and write:

pedro@pedro-laptop:~$ updatedb

Be patient, this can take a while. Specially if you never did it before. The command updates the file system index, so we can get an accurate search in the next step. When it finalizes, you won’t get any output, just will return to the console.

Second step

Search the string org.eclipse.core.resources, which is the magic directory that can save our lifes (well, our day):

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
(…)

Third step

Go into the directory relative to your project. Specifically into the .history hidden directory. In this example I will search something about an android project:

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

Fourth step

Launching a ls, we will get a lot of directory names without any apparent sorting (I couldn’t figure at least). But we can sort them by date with this command:

pedro@pedro-laptop:~$ ls -tlahr

This command will show the directories from older to newest (oldest at top of the list, and newest in the bottom). The only thing we can do at this point is look into these directories, starting by the newest one. Maybe some directories are empty, in this case go to the previous one. Being lucky, you will find some directory containing some strange files named like a MD5 hash. Open them and check if they are what you are looking for:

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 * &

If the force is with you, is possible to find your missing files. I got the force with me and I restored the work of my day! 😀

Luck & thanks to Dani who helped me making this story have a happy end!

How to create a mountpoint trough SSH

For console addicted, accessing trough SSH to a server is a really common task. Under my point of view, usually console text editors like vi or nano are not the best option to work with a lot of files at the same time like we can do with any other graphic text editors.
So, I decided to make an internet search to try to find an application able to mount a SSH connection like a standard file system. The application is called sshfs, they didn’t think a lot to get the name 😛
In order to install it, if you use ubuntu, just click on sshfs or write the command below in a terminal:
pedro@pedro-laptop:~$ sudo apt-get install sshfs
Once installed, you only need this command to get it work:
pedro@pedro-laptop:~$ sshfs user@server.com:/my/directory /media/ssh
Where:
  • user, is the name of the SSH user,
  • server.com:, is the name of the server (colon is required)
  • /my/directory, is the remote directory you want to mount, and
  • /media/ssh, is the local directory where the mountpoint will be placed
That’s all, you can now open the directory /media/ssh like any other local directory and open files with your favourite text editor 🙂

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. 😀

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

Montar una unidad remota a través de SSH

Para los adictos a los terminales, acceder a través de SSH a cualquier servidor está a la orden del día. Hay que reconocer que en muchas ocasiones los editores como vi o nano, se quedan cortos a la hora de trabajar con diferentes ficheros a la vez, tal y como lo hacemos con cualquier otro editor gráfico.
Así que he rebuscado por internet, y he encontrado una aplicación capaz de montar una conexión SSH como si de un sistema de ficheros normal se tratase. La aplicación se llama sshfs, tampoco se han pensado demasiado el nombre 😛
Para instalarlo, si utilizas ubuntu, es tan sencillo como hacer clic en sshfs o escribir en un terminal lo siguiente:
pedro@pedro-laptop:~$ sudo apt-get install sshfs
Una vez instalado, sólo hay que lanzar el siguiente comando para usarlo:
pedro@pedro-laptop:~$ sshfs usuario@servidor.com:/mi/directorio /media/ssh
Donde:
  • usuario, es el nombre de usuario con el que entrar,
  • servidor.com:, es el dominio del servidor (los dos puntos son necesarios siempre)
  • /mi/directorio, es el directorio remoto que quieres montar
  • /media/ssh, es el directorio local donde se montará el sistema de archivos
Ahora ya podemos usar el directorio /media/ssh como si de un directorio local se tratase y abrir cualquier fichero con el editor que queramos 🙂

Cambiar el día de inicio de semana en Unity y Gnome

Si has instalado la versión de Ubuntu con idioma inglés de Estados Unidos, seguro que el día inicial de la semana es el Domingo, en vez del Lunes, en el applet de calendario. No existe ninguna opción desde donde esto se pueda modificar fácilmente, y hay muchos usuarios (como yo) que están acostumbrados a ver el calendario empezando en Lunes. Esta pequeña guía muestra cómo cambiarlo paso a paso.
  1. Abre tu terminal favorito, y edita el fichero /etc/default/locale
    pedro@pedro-laptop:~$ sudo nano /etc/default/locale
  2. Verás una linea que contiene LANG=»en_US.UTF-8″. A continuación deberás añadir las siguiente lineas, sin borrar la que ya existe:
    LC_TIME=»en_GB.UTF-8″
    LC_PAPER=»en_GB.UTF-8″
    LC_MEASUREMENT=»en_GB.UTF-8

    Guarda los cambios y sal del editor. Con esas opciones, Ubuntu mostrará el formato de fecha en la variante europea del inglés, establecerá el tamaño del papel por defecto en A4 y las medidas en formato métrico.

    Para poder disfrutar de la nueva configuración hay que reiniciar el gestor gráfico. Para hacerlo escribe:

    pedro@pedro-laptop:~$ sudo /etc/init.d/gdm restart
Ten cuidado! Al ejecutar el último comando, se reiniciará el demonio gdm, y cerrará todas las aplicaciones. Así que asegúrate de haber guardado tus documentos abiertos antes de hacerlo
Ubuntu Calendar Applet
Calendario empieza en Lunes

Change Gnome and Unity week start day

If you have installed the United States language version of Ubuntu, for sure you have your start week day set to Sunday, instead of Monday, at your calendar applet. There isn’t an option where the user can change this in an user-friendly way, and there are a lot of non-US users (like me) who are used to see the week starting by Monday. This little HOW-TO will show you the way to change it step by step.

  1. Open your favorite terminal application, and edit the file /etc/default/locale
    pedro@pedro-laptop:~$ sudo nano /etc/default/locale
  2. You will se one line containing LANG=»en_US.UTF-8″. Now you have to add the following lines, without removing the first one:
    LC_TIME=»en_GB.UTF-8″
    LC_PAPER=»en_GB.UTF-8″
    LC_MEASUREMENT=»en_GB.UTF-8

    Save the file and exit the editor. With these options, Ubuntu will display the time format in the english european variant, set the default paper size to A4 and set metrics for use with measurements.

  3. In order to start using the new configuration you should restart your graphic desktop manager. Just type this:
    pedro@pedro-laptop:~$ sudo /etc/init.d/gdm restart
Take care! Executing the last command will restart your gdm, and will close all running applications. So please, be sure to save your work before doing this.
Ubuntu Calendar Applet
Calendar starting on Monday