mardi 15 mars 2011

Restez synchronisé ! Utilisez Dropbox

Ce billet est surtout destiné aux plus développeurs d'entre vous et principalement à ceux qui utilisent plusieurs PC et se déplacent pas mal. Un des problème qu'on rencontre rapidement quand on travail sur un projet perso et que l'on est amené à se déplacer et à utiliser d'autres PC, est le déplacement du projet de votre machine principale vers une autre machine. En fait c'est même assez problématique car vous devez mettre vos fichiers sur une clé USB ou tout autre périphérique mobile et les copier sur une autre machine, puis lorsque vous avez terminé de travailler sur l'autre machine, il vous faudra faire l'inverse c'est à dire recopier les fichiers, voir en supprimer.. Arrivé chez vous, vous copiez votre projet à l'endroit de l'ancien et si il y a eu de grosses modifications et bien ça peut vite tourner au drame (fichiers qui auraient dû être supprimés mais qui ne l'ont pas été, bref.. les joies du développement sans gestionnaire de version).

Et c'est là qu'un fantastique outils, gratuit, multi-plateforme (et même pas en java) arrive à votre rescousse : J'ai nommé Dropbox. 

Pourquoi ne pas utiliser une forge comme google code ou git-hub pour stocker mon code ? La réponse est simple et tien une deux mots : C'est publique. Effectivement si vous voulez faire dans l'OpenSource c'est très bien, j'ai moi même un projet sur une forge et travailler avec Subversion est super pratique, cependant sur certains projet vous voudrez peut être rester privé et là il faudra payer pour avoir un gestionnaire de version à branche privé. Seuls les projets OpenSource peuvent avoir un accès gratuit au gestionnaire de version.

Présentation rapide

DropBox est un programme qui vous permet de synchroniser vos fichiers sur un serveur en ligne et ainsi de pouvoir accéder à ces fichiers de n'importe où. Pour accéder à ces fichiers il y a plusieurs méthodes

  • Utiliser le client (Linux, Windows, Mac, Android, etc...)
  • Utiliser l'interface web (n'importe quel navigateur digne de ce nom fera l'affaire)
Lorsque vous installez Dropbox la première fois sur votre machine, vous devrez spécifier un dossier qui sera synchronisé avec le serveur, une fois que cela est fait tout ce que vous mettrez dans ce dossier sera accessible de n'importe et sera surtout privé (on est d'accord qu'il vous faut vos identifiant pour y accéder hein, sinon ça ne sert plus à grand chose).

Une chose à savoir, la version standard de Dropbox vous propose 2 giga de stockage, si vous voulez plus il faudra payer, cependant vous pouvez ajouter, par tranche de 250 Mo de l'espace supplémentaire en invitant vos amis à utiliser Dropbox.

Cas typique

Je vais prendre un exemple perso pour vous présenter les gros avantages de ce petit programme. Le soir je travail sur certains projets perso et la journée je travail. Entre midi et une heure il peut m'arriver d'avoir envie d'avancer un peut sur mes projets mais vue que je fais l'allez retour tous les jours vous vous imaginez la galère que ça pourrait être si j'utilisais une clé USB à chaque fois..

J'utilise donc le dossier Dropbox pour stocker mes projets et je travail directement dans ce dossier. Lorsque j'ai besoin d'avoir accès à mes fichiers je synchronise mon dossier et j'ai mon espace dev perso privé partout où je veux :) Si par exemple en journée je fais des modifications type suppression ou ajout, celle ci seront automatiquement répercutées lorsque je synchroniserais mon dossier de chez moi avec le serveur.

Pour finir, si vous oubliez de synchroniser vos dossiers et que vous synchronisez plus tard (c'est assez mal tourné comme phrase, voyons plutôt la séquence plus bas) :
  1. Je suis chez moi et je démarre un nouveau projet Android dans mon dossier Dropbox. Je suis sous Windows ;
  2. J'ajoute 2-3 Activités, quelques classes et je pars ;
  3. Je synchronise mon dossier sur le serveur ;
  4. Je suis au boulot, c'est la pause déjeuné et je veux bosser sur mon projet, je synchronise mon dossier. Je suis sous Linux (pas de problèmes !) ;
  5. Je fais quelques modifications (en fait je n'ai pas trop le temps alors je ne fait que des ajouts d'images et j'ajoute une constante bidon dans ma classe MainActivity.java) ;
  6. Je synchronise (en fait ça se fait tout seul) ;
  7. J'arrive chez moi, je ne synchronise pas, et je modifie en profondeur le projet, j'en profite pour virer la constante bidon car elle est vraiment bidon... ;
  8. Je synchronise ;
  9. Dropbox va me générer des fichiers de conflit, ce qui me permettra de ne pas avoir perdu tout mon travail (exactement comme les conflits sur Subversion). J'aurais un fichier MainActivity.java.conflit-r4567.
Pour résumer

Dropbox ne sert pas spécifiquement à gérer des projets de développement informatique, il peut servir à stocker des musiques, des vidéos, des documents, un peut de tout car en fait c'est un disque dur virtuel. Mais il est redoutablement efficace dans le cas d'une gestion de projet mono utilisateur sur plusieurs postes informatique.

Il y a plusieurs alternatives gratuites comme Ubuntu One ou Windows Live Mesh (qui propose 25 Go de stockage ! mais qui n'a pas de client pour Linux).