Dejo Dropbox por Bittorrent Sync

Soy usuario de Dropbox desde hace muchos años. Y el último de ellos, he sido un usuario Pro, de los que pagan 100 USD por más almacenamiento. Concretamente, por 100 GB que se añadían a los 11,9 GB que tenía de forma gratuita. El 6 de Agosto di de baja la cuenta Pro en su vencimiento anual y cancelé la autorización de pagos automáticos a Dropbox en Paypal. Me cambio a Bittorrent Sync.

Dropbox y los 100 GB

Antes de seguir, ¿para qué necesito 115 GB en Dropbox?. La idea es simple: viajo mucho, y no siempre estoy trabajando en el mismo ordenador. Unas veces tengo que estar haciendo cosas en el MBP y otras puedo disfrutar de la pantalla del iMac y de la tranquilidad de mi oficina. Pero los proyectos son los mismos. Así que un sistema que me sincronice los ficheros, es casi imprescindible para mi.

En un principio, pensé en crearme unas tareas periódicas, programadas en una cola de cron que usaran rsync para sincronizar mis carpetas. A fin de cuentas, Dropbox no es más que un rsync glorificado, que cuando detecta cambios en tus ficheros los sube a sus servidores. Y de ahí, a tus otros equipos. Cierto es que está muy optimizado, que dispone de una API pública que hace que muchos programas lo utilicen para poner ahí los datos «en la nube» y que tiene clientes móviles para todos los S.O. (iOS, Android, Windows Phone, BlackBerry 10). Pero la funcionalidad base sin la que no puedo pasar es la sincronización de ficheros. Ese es el meollo de la cuestión para mi.

Y sí, necesitaba el espacio extra. Porque quiero tener en Dropbox todos los ficheros, de trabajo y personales, de forma que no tenga que complicarme la vida moviendo los proyectos activos dentro y fuera de Dropbox. Uniendo todos estos ficheros: de los cursos, con presentaciones, ejemplos de código fuente, documentos con ofertas e incluso los entornos de desarrollo Eclipse que utilizo necesitaba más que 12 GB. Concretamente estaba usando unos 60 GB. Y sí, es cierto, me sobraba espacio en el Dropbox Pro, pero no hay una opción de comprar 50 GB por 50 USD; la granularidad en precios nunca ha sido el fuerte de Dropbox.

BitTorrent Sync

Mis carpetas sincronizadas en BTSync

Mis carpetas sincronizadas en BTSync

He conocido BTSync y qué podía hacer gracias a Migue Terrón y su blog Enteratec. La primera vez que le escuché hablar de BTSync, dado que estaba contento con Dropbox, no me planteé seriamente usar BTSync para nada. ¿Instalar otro servicio en mi ordenador, consumiendo CPU y memoria, para qué? ¿Qué es lo que hace BTSync para que sea especial?

La idea de BTSync es sencilla. Crea una carpeta (o tantas como quieras) en tu ordenador de sobremesa. Llénalas de ficheros. Las añades a BTSync. El programa las recorre, las explora, y escanea todos los ficheros que hay en ellas. Desde ahora, cada cambio que hagas en esas carpetas está monitorizado por tu BTSync. Ahora, vete a tu portátil e instala BTSync. Para tener esas carpetas de tu escritorio, sincronizadas sin esfuerzo, no tienes más que añadir el identificador de cada carpeta. Este identificador es un hash (llamado secret) que viene a ser el típico «chorizo» que vemos en cualquier descarga de torrent. De esta manera, cuantos más ordenadores compartan las mismas carpetas, más rápido te irá la sincronización. Espacio disponible: tienes el de tu disco duro, no los 100 GB de Dropbox, todos los TB que quieras sincronizar. Esta sincronización se hace en la red local o a través de Internet. Y se hace encriptada. Tus datos nunca suben a los servidores de Bittorrent, lo único que se suben son esos identificadores que ayudan a localizar dónde están las carpetas cuando los ordenadores se mueven de red.

La migración

Esta parte parecía sencilla (a fin de cuentas era mover unos ficheros, ¿no?). Pues no. Cuando de pronto Dropbox detectó que le había «desaparecido» 40 GB y cientos de miles de ficheros, se puso a indexar y buscar lo que tenía y comparar con lo que le faltaba, y se atragantaba. La App de Dropbox se quedaba como colgada, indexando para siempre. No subía los cambios de las carpetas borradas, y no avanzaba. El icono estaba siempre sincronizando, pero no veía cambios en el número de ficheros pendientes. Así estuve varios días, dejándolo por la noche a ver qué tal. Pero no avanzaba.

Dropbox no avanza indexando

Dropbox no avanza indexando

El problema es que Dropbox sigue una planificación Shortest Job First o similar. Si borras un par de ficheros, o subes una foto es casi instantáneo. El cambio se propaga a todos tus ordenadores casi instantáneamente. Pero cuando detecta un montón de cambios, se lo toma con calma. De todas formas, sabes que vas a tener que esperar, ¿no?.

La CPU al 100% con Dropbox

La CPU al 100% con Dropbox

Intenté de todo: borrar la carpeta .Dropbox que está en la carpeta de usuario con los índices de los distintos ficheros que tengo, desvincular y volver a vincular el ordenador, reinstalar Dropbox. Pero nada. No avanzaba. Así que para borrar los ficheros definitivamente tuve que ir al sitio web de Dropbox. Porque ese era el problema: al borrar de golpe tantos ficheros la App de escritorio se atragantaba y no era capaz de borrar en el servidor. En el portal web de Dropbox pude ir borrando, carpeta a carpeta todo lo que ya había copiado a mis carpetas de BTSync. Digo carpeta a carpeta, porque el portal web no es capaz de borrar de un golpe un gran número de ficheros, y te sugiere que para esas operaciones masivas uses la App de escritorio… que no funcionaba.

Borrando carpetas en la web de Dropbox

Borrando carpetas en la web de Dropbox

Cuando conseguí borrarlo todo en la web, no había manera de hacer funcionar la app de escritorio. Tuve que borrar la carpeta Dropbox, revincular el ordenador y bajar los 12 GB que había dejado para que todo funcionase de nuevo. En mi MBP lo mismo.

¿Dropbox Fail?

Es decir, ¿es un fail Dropbox y no merece la pena? No. Es un servicio que funciona muy bien para sincronizar archivos de trabajo. El fallo que ha hecho a Dropbox saturarse es probablemente mío. He puesto en el Dropbox montones de ficheros de código fuente. Ficheros pequeños, pero que hay que indexar, tener presentes en memoria y sincronizar. Y se ve que ese 1.200.000 ficheros era demasiado. Es muy cómodo tener tus repos de código fuente en Dropbox. Así, si tocas por la mañana en un ordenador, por la tarde lo tienes en otro. Pero con tantos ficheros hay que pagar un precio por esa comodidad. Lo ideal es tener los proyectos en un repositorio de código fuente, y no sincronizar esa carpeta con Dropbox. Si quieres sincronizarla, se usa el DCVS de turno (Git / Hg) que para eso están.

Ahora mismo he replicado el error anterior, pero usando BTSync. Es decir, que sigo sincronizando mis proyectos de código fuente, pero usando ahora BTSync. Poco a poco voy a ir migrando todo a Bitbucket, que me permite tener todos los repositorios (Git o Mercurial) que quiera, gratis. Esto es un esfuerzo, pero también me sirve para hacer limpieza de cosas antiguas. Ya he comenzado comprimiendo y borrando bastantes ficheros de proyectos finalizados.

Y hasta ahora, BTSync, que es gratis (aunque me ha costado mi tiempo para configurarlo, claro) está funcionando sin problemas sincronizando los ficheros que necesito. Curiosamente con Dropbox pagaba, pero estaba contento de no tener que dedicar mi tiempo a hacerlo funcionar. Hasta ahora.

j j j

El sistema de control de versiones de Dropbox

Que Dropbox es una maravilla y que me encanta no es nada nuevo. Es sorprendente que te den, gratis, hasta 8 GB sincronizados en la nube y poder acceder a ellos desde Windows, Mac, Linux, tu iPad o tu iPhone. Se ha convertido en una de mis herramientas básicas, de esas que instalas en una máquina nueva en cuanto te la dan.

Y una de las características de Dropbox mejores, pero de las que extrañamente menos se habla, es su sistema de control de versiones integrado y automático. Si eres programador, estarás habituado a usar un SCM, bien sea CVS, svn, git o Mercurial. Si no, voy a explicar con un ejemplo lo que supone tener ese sistema en Dropbox.

Supongamos que necesitas dibujar un nuevo icono para esa aplicación de iPhone que ya estás terminando. Abres tu programa de retoque fotográfico y dibujo favorito (en mi caso Pixelmator) y creas el nuevo icono en una carpeta de tu Dropbox. Inmediatamente ves que en el icono de tu Dropbox se activa la sincronización: Dropbox está subiendo esa primera versión de tu archivo (vacío y sin nada dibujado aún) a sus servidores. Dibujas, retocas y cambias cosas durante una hora, sin pulsar la combinación de teclas de grabar. Eso, desde luego, es una invitación al desastre: no lo hagas. Seguro que cuando tengas el icono, o el documento, o lo que sea en lo que estás trabajando se te cuelga el programa y no te deja grabar. Así que graba más a menudo. Bueno, pues al grabar antes de irte a por tu merecido café, Dropbox sube la versión tal y como está ahora: casi perfecta. Hay dos versiones de tu icono entonces, la primera que creaste y que está vacía, y esta segunda casi terminada de antes del café.

Tras el descanso y de discutir con tus compañeros (es increíble que la gente piense que Java es mejor que Objective C!), vuelves un poco enfadado y te pones a experimentar con un nuevo filtro que se carga tu icono, y «sin querer», grabas el icono. ¡Desastre!. En otro caso habrías perdido una mañana de trabajo. Pero ahora, Dropbox al rescate. Cierras tu programa de dibujo, para no liarla más, navegas hasta el fichero y pulsas con el botón derecho del ratón. Dentro del menú contextual de Dropbox, te encuentras con un pequeño menú como este:


Pulsando sobre la segunda opción (View Previous Versions) podremos consultar nuestro histórico de versiones para ese fichero, en la web de Dropbox. Y lo mejor, podemos convertir en la versión última (la que veremos en nuestra carpeta de Dropbox) cualquiera de esas. Así que nuestro sufrimiento se soluciona simplemente marcando la versión que grabamos antes del café y pulsando Restore. ¡Ya está!. Volvemos a tener la versión casi buena y podemos volver a estropearla las veces que sea necesario: siempre tendremos a Dropbox que vendrá pacientemente a nuestro rescate.

j j j

Sincronizar EasyTask en dos Macs con Dropbox

Hace algún tiempo que vengo usando para organizar mis tareas EasyTask. Empecé a interesarme por el método GTD hace un par de años, como ya comenté, y he continuado leyendo y evolucionando en el método. A raíz de los post de Berto sobre productividad en Thinkwasabi y teniendo el iPhone en mis manos, empecé a buscar un sistema GTD que fuera portable. Mucha gente en el mundo Mac usa Things. Yo no lo he probado pero, la verdad, me parecía caro: tienes que pagar por la versión de escritorio y luego por la versión iPhone. Mucha tela para mí.

ToDo's: la clásica lista de cosas por hacer

ToDo's: la clásica lista de cosas por hacer

Comencé con ToDo’s, una pequeña lista de tareas que puedes ir tachando. Pero no tenía la potencia suficiente. Yo quería contextos, proyectos, etc. Vamos, lo mínimo para hacer GTD. Y me encontré en el iPhone con EasyTask. La estuve usando unos meses (es gratis) y acabé pagando los 20 $ que cuesta la versión de escritorio. EasyTask, que está ahora en su versión 2.6 debe aún mejorar muchos pequeños problemas que tiene, tanto de usabilidad como bugs. He intercambiado algunos correos con la empresa y su desarrollador para informarle de los fallos. Están trabajando en ello (desde Septiembre), pero aún no hay nueva versión. Bueno, el caso es que la uso a diario, y me sirve para organizarme.

El problema es que ahora utilizo dos ordenadores a la vez: mi MacBook Pro para programar con XCode, leer el correo, ver los Feeds, etc. y mi PowerMac G5 para iTunes, iPhoto, iMovie, ver películas, descargar cosas, etc. Y en ambos quería tener instalado EasyTask, lógicamente con las tareas sincronizadas. Y es aquí donde entra en juego Dropbox.

El menú de Dropbox en la barra de menús de mi Mac

El menú de Dropbox en la barra de menús de mi Mac

Por si alguien no lo conoce, Dropbox es un servicio que te permite tener gratis 2GB de ficheros subidos «en la nube». Funciona en Linux, Mac y Windows (hay que instalar un programa) y crea una carpeta llamada Dropbox en tu directorio de usuario. A partir de aquí, fichero que tires en tu Dropbox se sube a Internet y aparece en todos los ordenadores donde lo tengas instalado. Se acabaron las llaves USB. Pero Dropbox tiene muchos más usos. Ayer, escuchando el podcast iCharlas en un capítulo dedicado a Dropbox se me ocurrió la idea para solucionar mi sincronización de EasyTask.

La idea es sencilla: buscar la carpeta donde EasyTask guarda sus datos, moverla a Dropbox y luego crear un enlace simbólico que apunte a la nueva ubicación y que haga creer a EasyTask que todo sigue igual. Esto hay que hacerlo en todos aquellos equipos en los que quieras las sincronización. Lo explico paso a paso y luego hablamos del enlace simbólico.

  • instala en todos los ordenadores la misma versión de EasyTask. Así estamos seguros de que no vamos a tener problemas con los formatos de los datos. En EasyTask en Help -> Check for Upgrade nos indica la versión que tenemos.
  • cierra todos los EasyTask. Que luego venimos con los problemas 🙂
  • te vas al primer equipo (en mi caso el MacBook Pro) y buscas la carpeta Library > Application Support que está dentro de tu carpeta de usuario. Debe contener muchas carpetas con los datos de tus aplicaciones. Una de ellas será la de EasyTask.
  • mueve esta carpeta EasyTask a tu carpeta Dropbox
  • ahora, la carpeta EasyTask está en Dropbox, y no en Application Support. Abre la aplicación Terminal (lo más sencillo es con Spotlight, pulsas CMD+Espacio y escribes Terminal)
  • Una vez en el terminal, hay que ir a la carpeta Application Support y crear el enlace a la carpeta EasyTask que, recordemos, está ahora en Dropbox. Para ello, escribe:
Tesla:~ dfreniche$ cd Library/Application\ Support/
Tesla:Application Support dfreniche$ ln -s /Users/dfreniche/Dropbox/EasyTask/ .
ln: ./: File exists
Tesla:Application Support dfreniche$ ln -s /Users/dfreniche/Dropbox/EasyTask/ EasyTask
Tesla:Application Support dfreniche$
$ cd Library/Application\ Support/
$ ln -s /Users/dfreniche/Dropbox/EasyTask/ EasyTask

Bueno, ya tenemos el enlace creado en el primer equipo. Podemos comprobarlo mirando en el Finder la carpeta Library > Application Support. Debe tener este aspecto:

Ahora EasyTask es un enlace simbólico

Ahora EasyTask es un enlace simbólico

Ya estamos terminando. Queda ahora abrir EasyTask y comprobar que todo funciona OK. Cambiamos de ordenador y la idea ahora es, en cada equipo en el que tengamos EasyTask + Dropbox instalado:

  • borrar la carpeta EasyTask de Application Support
  • crear un enlace a la nueva carpeta que debe aparecer en Dropbox

Esto se consigue con un poco de Terminal:

$ cd Library/Application\ Support/
$ rm -rf EasyTask/
$ ln -s /Users/dfreniche/Dropbox/EasyTask/ EasyTask
$ ls -l EasyTask
lrwxr-xr-x  1 dfreniche  staff  34  4 dic 12:51 EasyTask -> /Users/dfreniche/Dropbox/EasyTask/

Espero que os sirva este truco. Cuidado con lo que hacéis y, antes de empezar, copiad la carpeta EasyTask a otro lado «por si las moscas».

Antes de terminar, he quedado antes en explicar por encima qué es un enlace simbólico. Vamos a ello. Un enlace simbólico no es mas que un alias que le indica al S.O. que el fichero o carpeta que se busca no está ahí, sino en otro sitio. Es una forma perfecta de tener aparentemente duplicadas dos carpetas en el sistema de ficheros que están sincronizadas. Realmente sólo hay una y la otra carpeta es un enlace simbólico. Vienen de serie en todos los UNIX (Linux, Solaris, Mac OS X) y, sorprendentemente, también en Windows.

j j j