… ou une occasion d’apprendre

Catégorie : Internet


GitHub, vos dépôts distants pour Git

Posté le 7 mai 2008 à 17:41

Cet article fait suite à mon introduction à Git, si vous ne connaissez pas ce système de gestion de source, je vous conseille de la lire en premier.

Mon premier article expliquait comment créer un dépôt local, ce qui n’est naturellement pas suffisant pour travailler en collaboration avec d’autres personnes. Git est un système de gestion de sources décentralisé, il est assez simple de créer un dépôt distant afin de partager votre travail, que ce soit sur un de vos serveurs où en utilisant un service d’hébergement. GitHub (mon compte) est donc un de service offrant la possibilité d’héberger un dépôt distant pour vos projets agrémenter de fonctionnalités supplémentaires. Il existe bien entendu une version gratuite qui vous permettra de créer des projets publics dans un espace limité à 100 Mo, des plans payants (dès 7$ par mois) permettent d’augmenter cet espace mais également de bénéficier de dépôts privés (indispensable pour les entreprises il va de soit). Il est bien entendu possible de donner des accès en écriture aux dépôts publics et privés à d’autres comptes (qu’ils soient payants ou non) .

Le service vous crée une page de profile simple où vous pouvez afficher votre nom, email, entreprise, localisation et site internet. Cette page affichera également votre activité (commit, ajout de suivi, …) et vos dépôts. Vous pouvez également décider de recevoir les mises à jour (commit, comment) concernant un projet ou une personne, elles seront affichées sur votre page d’accueil avec la liste des projets afin d’y accéder plus rapidement. Vous avez également accès à un système de messagerie et de recherche de projet.

Les pages d’un projet commencent par une série d’onglet permettant de parcourir les sources (page par défaut), d’accéder à la liste des commits, un wiki, le network (voir ci-dessous), a la liste des watchers (personnes suivants le projet) et enfin, si vous êtes le propriétaire, un accès à l’administration. Une seconde série d’onglets donne accès au menu de la section (liste des branches et tags par exemple). On trouve ensuite boite contenant les informations de base sur le projet, celle-ci est présente sur toutes les pages et contient le nom du propriétaire et du projet, une série de bouton d’action (dont fork et pull request que nous verrons plus loin, ainsi que watch et download qui permet de télécharger une archive de la branche sur laquelle vous êtes). Suis une description, l’adresse du site du projet et enfin les adresse Git (public clone, private clone, push).

L’explorateur des sources est classique, mais bien réalisé, notez tout de même que si un fichier README est présent à la racine, il sera affiché sur la première page en dessous de l’arborescence et que si celui-ci à une extension du type rdoc par exemple, le contenu sera formaté. Il est aussi possible de laisser un commentaire sur un commit en particulier.

Revenons sur ce qui fait la force d’un système décentralisé et plus particulièrement sur son intégration dans GitHub qui en facilite et favorise grandement l’utilisation. Le bouton fork permet de créer un clone du projet dans votre compte (un peu comme si vous utilisiez la commande git clone en locale), vous allez donc pouvoir travailler sur votre propre branche d’un projet et en publier les modifications dans votre espace public très facilement. Quand vous faites ceci vous entrez dans le network du projet et c’est là que GitHub est également intéressant puisqu’il permet de retrouver les branches d’un projet maintenu par d’autres personnes assez facilement. Vous pouvez ensuite utiliser depuis votre dépôt (ou un commit en particulier) le bouton pull request afin de proposer au mainteneur de la branche d’origine (ou d’autres branches éventuellement) d’intégrer vos modifications. Précisons également que si vous faites un fork d’un projet privé auquel vous avez accès, il sera également privé chez vous et ceci sans que vous ayez besoin d’un compte payant.

C’est probablement ici qu’on sent la force de Git et de GitHub, en favorisant la collaboration et la participation.

Concrètement, comment mettre mon projet sur GitHub ?

Pour commencer il va vous falloir une clef ssh afin de vous connecter aux projets auxquels vous avez accès. Attention, une clef ne peut être utilisée que par une seule personne, c’est elle qui vous identifies en plus de vous authentifier. Je rappelle également que dans Git les commit sont signés par un nom et une adresse email et c’est grâce à celle-ci que vos commits seront liés à votre profil.

Pour créer une clef (avec MSysGit sous Windows le fonctionnement est le même que sous Linux, je ne fais donc aucune distinction dans la suite de l’article).

$ ssh-keygen -C yann.lugrin@... -t rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in .ssh/id_rsa.
Your public key has been saved in .ssh/id_rsa.pub.
The key fingerprint is:
c0:0c:27:7e:4b:c9:0d:f7:14:c2:de:78:54:0e:32:bb yann.lugrin@...

La passphrase est importante afin de protéger votre clef privée, si vous n’en mettez pas et qu’elle est utilisée par quelqu’un d’autre il pourra se connecter sans problème à votre compte. Voici à quoi ressemble une clef publique (il n’y a pas de retour à la ligne en réalité) :

$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1x36C/Aur4KYHAL6I2m3FRoc3ixPFO/+9+ITyeM3FdCP
zPJ5fyMyNy+vkZm9zpbCsxjVGAjCSpYfQ4ins+U3CVMgAJnpNLtTri9f5EswkwSTGNhFomwuGb1RZOeg
ZPX/oveY2qylS+aOBY8/W2sICTOKsVDTWShc3P/bAtLxxPq3VdX73x70cRW1yVPthRPcci4QRWMFkyCY
TLrmH8C7I2KGffU7NUm1RzW9ym34TapZI5UKRq3jCx3kmiUjYVyf1Qqo9Dk5Xn855Uvk0/CAZnITQsfP
mhMYwLcp7K2zD9WbnljTtVO3PDRU4HaXQOPR7gcgNTN/xMuZruEZUGPDnw== yann.lugrin@...

Maintenant vous pouvez créer un compte sur GitHub, votre username sera utilisé pour identifier votre profil et votre compte (il sert donc de préfixe à vos projets en quelque sorte). Comme je vous l’ai déjà dit votre adresse email permet de lier vos commits à votre profil (vous pourrez en ajouter d’autres plus tard si besoin) et enfin dans le champ SSH Public Key vous pouvez entrer le contenu du fichier id_rsa.pub (vous pouvez aussi en ajouter d’autres plus tard).

Créer un nouveau projet est simple, suivez le lien qui se trouve sur la droite de la page d’accueil une fois que vous êtes connecté. Donnez un nom à votre projet et éventuellement une description et l’adresse d’un site. Vous pouvez également définir s’il est public ou privé (si vous en avez le droit naturellement). La page suivante vous explique comment envoyer votre travail sur GitHub. Parant du principe que vous avez déjà un dépôt local, avec une console, allez dans le répertoire de celui-ci et en utilisant les informations données sur GitHub tapez les commandes suivantes :

$ git remote add origin git@github.com:yannlugrin/test.git
$ git push origin master
Enter passphrase for key '/home/yann/.ssh/id_rsa':
updating 'refs/heads/master'
  from 0000000000000000000000000000000000000000
  to   5ef08e8fc190c49a73a0eb246255b454a8a0f56b
 Also local refs/remotes/origin/master
Generating pack...
Counting objects: 26
Done counting 407 objects.
Deltifying 407 objects...
 100% (407/407) done
Writing 407 objects...
 100% (407/407) done
Total 407 (delta 192), reused 0 (delta 0)
refs/heads/master: 0000000000000000000000000000000000000000 -> 5ef08e8fc190c49a73a0eb246255b454a8a0f56b

La passphrase de votre clef vous sera demandée et vos précédents commits seront transmis vers votre dépôt sur GitHub, vous pouvez maintenant accéder à votre projet et y voir vos fichiers.

Pour créer un clone de votre projet en local (par exemple lors du fork d’un autre projet) vous pouvez utiliser la commande suivante :

$ git clone git@github.com:yannlugrin/test.git

ou pour un projet dont vous n’avez pas d’accès en écriture :

$ git clone git://github.com/yannlugrin/test.git

Vous pouvez maintenant continuer à travailler sur votre dépôt local, faire vos commits et régulièrement utiliser la commande git push pour mettre à jour GitHub ou git pull pour mettre à jour votre dépôt local.

$ git push origin
$ git pull origin master


Non Twitter n’abandonne pas Ruby on Rails

Posté le 3 mai 2008 à 19:21

TechCrunch annonçais que Twitter allais abandonner complètement RoR au profit de PHP ou Java, relançant les Troll sur les performances de Ruby et Rais pour des sites à fort trafic. Evan Williams, développeur chez Twitter, infirme cette information en rappelant que Twitter utilise déjà d’autres langages, raison d’une certaine confusion.

Il faut bien se rendre compte que dans le cas d’une application à forte charge comme celle-ci, beaucoup d’aménagements ont dû être fait afin d’essayer d’en optimiser les performances. Twitter n’est pas si simple et ce n’est pas un changement de langage qui y changera quelque chose, en déplaise à tous les trolleurs et autres développeurs à l’esprit étroit qui pense qu’il y a un langage universel. Utiliser Ruby, PHP ou Java est un choix, chaque plateforme à des avantages et inconvénients, aux développeurs de trouver celui qui leur convient le mieux dans un contexte précis.

Update : Vue mon état  semi-comateux (bronchite viral, une température ayant du mal à passer en dessous de 39°C depuis deux jours) ce message de Matt Aimonetti sur la mailing-list de Rails France m’a échappé, il donne quelques éclaircissements sur le sujet. Merci à Nicolas pour avoir fait passé l’info (et moi je ne suis pas en état de ne pas dire du mal des trolleurs professionnels).



Jobalize.com, les acteurs du web 2.0

Posté le 2 juillet 2007 à 10:46

Jobalize.com

Je vous invite à découvrir Jobalize qui vient d’ouvrir ces portes, ce service a pour but de répertorier les acteurs du web dans le monde (site en français et anglais). L’accent a été mis sur la proximité, en effet pour trouver une personne avec les compétences dont vous avez besoin, vous allez simplement zoomer sur une carte (ou en recherchant directement une adresse : Lausanne, Paris, …). Chaque personne, en plus de son adresse, est caractérisé par des mots clefs (tag) qui vous permettent de limiter votre recherche (ajax, ruby, rails, …). La fiche de chaque personne comporte les informations qui précèdent ainsi que sa fonction, le nom de sa société ou s’il est freelance ainsi qu’une adresse web, une photo et un commentaire. Il est possible de le contacter via un formulaire, mais son email n’est pas directement disponible.

Alors, si votre place est dans cet annuaire, inscrivez-vous dès aujourd’hui, c’est gratuit et les initiateurs sont des personnes qui feront de ce service quelque chose de bien, j’en suis certain.



Stocker sa musique en ligne

Posté le 1 juillet 2007 à 23:18

J’avais naturellement encodé ma collection de CD musicale afin de pouvoir l’écouter depuis mon ordinateur ou un lecteur portable, mais il y a maintenant quelques temps j’ai perdu le tout lors d’un crash disque. J’ai décidé de commencer à encoder mes disques à nouveau (pour la petite histoire j’encode au format OGG Vorbis en qualité 8), c’est alors qu’est revenu un problème récurant : partager cette musique entre chez moi et le bureau.

Je suis parti sur 2 pistes :

  • L’application que je pourrai installer sur un serveur dédié afin d’y stocker ma musique.
  • Un service web de stockage spécialisé ou à défaut un système de backup online.

La première contrainte est que je dois pouvoir accéder et utiliser l’application depuis un système Windows et Linux, le second ayant un système de fichier en Unicode, mais pas le premier. La seconde est que je veux que le Ogg soit parfaitement supporté, je refuse de passer au Mp3 (le rêve serait d’avoir une solution FLAC avec encodage de la musique dans différents formats selon les besoins, mais faut pas en demander trop non plus). J’avais également dans l’idée de pouvoir streamer la musique, mais aussi de pouvoir simplement faire une synchronisation entre ma bibliothèque distante et ma machine (au moins une des deux).

Pour l’instant de test le service de mp3tunes qui semble être se dont j’ai besoin :

  • Accepte de nombreux formats dont le Ogg
  • Permet d’écouter sa musique dans un lecteur Flash
  • Permet de faire du streaming via une playlist (artist, album, random, custom)
  • A un logiciel de synchronisation multi-plateforme (je n’ai testé que la version Windows pour l’instant)
  • Les fichiers ne sont pas ré encodés (sauf pour le streaming)
  • Espace et nombre de fichier illimité (limite de10mo par fichier dans la version gratuite et de 50mo dans la version payante 39.95 $ / an)
  • Gestion des doublons
  • Gestion des couvertures
  • Gestion des informations manquantes pour un titre (artiste, album, titre)

Je suis séduit, mais le service n’a pas l’air d’avoir énormément de client ; je suis le seul à avoir ce besoin ? ou tout le monde est sur MediaMaster (le seul autre service de ce type que j’ai trouvé, mais qui ne fait pas le Ogg) ? Je dois changer de format d’encodage (mais pour lequel, vais tout de même pas encoder en mp3…) ? Quelqu’un connait d’autres services de ce type ? ou une application de bonne qualité que je pourrai installer sur un serveur distant ? Je suis très intéressé par des informations à ce sujet ; car stocker ma musique afin de la partager entre mes différentes machines (et sans devoir me trimbaler un disque externe) est pour moi un vieux rêve ;-)



Zyb, sauvegardez les contacts de votre téléphone mobile

Posté le 22 juin 2007 à 14:00

J’ai découvert il y a maintenant quelques temps le service Zyb. Celui-ci permet de synchroniser les contacts et le calendrier de votre mobile avec votre compte afin d’en faire une sauvegarde, mais également de les éditer et utiliser directement en ligne. Je trouve le service bien fait et l’installation a été assez simple sur mon téléphone qui supporte nativement SyncML (langage de synchronisation de données entre appareils portables et postes fixes), mais il est possible d’installer ce qu’il faut sur un grand nombre de modèles.

Je n’utilise pas vraiment le calendrier de mon portable, mais je trouve très intéressant de pouvoir faire une sauvegarde de mes contacts sans devoir le brancher sur un ordinateur (tout passe par le réseaux GPRS), de pouvoir les exporter depuis le site en cas de besoin (vcard), de pouvoir les consulter et éditer directement en ligne, de pouvoir faire une “image” de ma base de contact pour la restaurer plus tard et surtout de pouvoir restaurer mes contacts vers un autre téléphone supporté en cas de besoin (il est même possible d’avoir plusieurs téléphones avec les mêmes contacts en même temps).

Le service vous indique également si vos contacts sont également présents sur Zyb et dans ce cas vous pourrez partager certains informations avec eux. Vous pouvez également envoyer à vos contacts une mise à jour de leurs informations via le site de celui-ci (bien que je ne préfère pas utiliser ce genre d’options pour ne pas agresser mes amis et connaissances).

C’est un service comme celui-ci qui manque dans Plaxo pour que je puisse y adhérer pleinement (la consultation de ses contacts via le navigateur web du téléphone n’est pas satisfaisant).



Y a-t-il un marché pour les biens virtuels ?

Posté le 22 juin 2007 à 11:16

Je vous invite à lire la traduction de l’excellent article de Susan Wu sur les biens virtuelles sur TechCrunch. Elle explique bien l’état du marché actuel et pourquoi l’achat et la vente d’objets virtuels à un intérêt pour l’acheteur ; car ce n’est pas l’objet en lui-même qui a de l’importance, mais ce qu’on en fait, si l’acte d’offrir des fleurs virtuelles apporte de la satisfaction aux protagonistes, l’objet n’a plus de véritable importance puisque c’est l’acte qui est pris en compte. Je trouve son analyse très intéressante et ses explications tout à fait clair, pour ceux qui ne comprennent pas l’intérêt de ce marché, la lecture de cet article est indispensable, mais que les autres ne passent pas à côté, il apporte des arguments intéressants.



OpenID, quel fournisseur choisir ?

Posté le 17 avril 2007 à 13:09

Suite à mon article sur OpenID j’ai créé un compte chez plusieurs fournisseurs d’identité choisi dans la liste du wiki de OpenID.net. J’ai volontairement évité ceux qui affichai une audience régional ou une langue que je ne comprend pas, voici ce que je peux en dire (ils sont dans le même ordre que dans la liste, ce n’est pas un classement) :

  • MyOpenID : Il est recommandé par le site OpenID.net, l’interface est sommaire mais va à l’essentiel. Ce service offre la possibilité d’avoir plusieurs “personnalités” et donc de pouvoir choisir les informations utilisé lors de notre enregistrement auprès d’un service utilisant OpenID, cette option est très agréable. Il y a également la page publique de l’identité mais il n’est pas possible de choisir les informations affichées et celle-ci n’est pas très présentable.
  • Videntity : Ce service permet de renseigner un grand nombre d’informations privées et professionnelles qu’il est possible d’afficher sur la page publique de l’identité. Les mise en forme proposées par défaut ne sont pas des plus agréables mais il est possible de modifier tout ceci par une feuille de style personnel. Il est possible de déclaré d’autres OpenID comme relation et de leur donner par là accès à nos informations privées. L’idée de ce service est bonne mais je regrette qu’il n’y ai pas quelques styles plus agréables et de ne pas pouvoir choisir les informations dévoilés à chaque contacts individuellement. Disponible en français.
  • GetOpenID.com : Celui-ci est extrêmement simplifié, vous ne pouvez spécifier que votre email, votre site et votre clef GPG publique si vous en avez une. La page publique de l’identité n’affiche ces informations que si vous l’avez autorisé. Ce service propose également un accès sécurisé à la page d’identité avec https.
  • TypeKey : Ce site est celui de Six Apart qui a contribué à la mise en place de OpenID et qui est derrière LiveJournal ou la plateforme de Blog MovableTpye entre autre. Là encore on va à l’essentiel mais le résultat graphique est agréable. Il est possible d’afficher des informations sur la page publique de l’identité (email, bio, blog, liste de sites, photo). Disponible en français.
  • MyLID.net : Ce site offre l’authentification par OpenID mais également son propre système, une fois enregistré je n’ai pas trouvé le moindre lien pour éditer mes informations et si l’idée de pouvoir envoyer des message signés est bonne il est regrettable qu’ils ne fournissent pas la clef privée pour une autre utilisation.
  • VeriSign’s PIP : Ce service est fourni par un acteur important de la sécurité sur internet et ceci peut donner confiance aux utilisateurs. La présentation est bonne et il est possible de renseigner un très grand nombre d’informations sur nous (il est même possible de créer de nouveaux champs). Ce service gère les personnalités multiples en choisissant les informations à y inclure, il est également possible de gérer les autorisations par personnalité. Pas de page publique ici. Il est possible de définir une autorisation pour un site jusqu’à une date précise ce qui est une bonne idée.
  • claimID.com : J’ai eu un compte sur ce site avant qu’il ne deviennent un fournisseur de service openID. Si le service d’authentification est très basique (pas de profile) la page associé à l’identité est très intéressante puisque elle permet de réunir des informations personnel mais également de pointer vers des sites qui peuvent compléter cette informations.
  • Sxipper : C’est une extension pour firefox qui est également un fournisseur de service. Cette extension que je n’utilise pas personnellement, est sensé permettre de faciliter le renseignement des formulaires en associant les champs de ceux-ci à votre profile.
  • OpenID France : Je signale ce site qui n’est pas encore ouvert car il est francophone.

Cette liste n’est pas exhaustive et il serait intéressant de faire un comparatif / test plus systématique de ceux-ci afin de pouvoir faire sont choix. A noté que j’utilise ce blog comme openID qui prévoie un système de meta tag permettant d’indiquer le serveur à utiliser et je pourrai donc changer de service quand je le désire.



Zattoo, la tv sur votre PC

Posté le 10 mars 2007 à 12:32

Pour diverses raisons je n’ai pas accès à la TV de mon appartement actuellement ;-) mais voilà que la saison de MotoGP repart… C’est alors que je découvre Zattoo qui est une application à installer sur votre machine (Windows / Mac) et qui va vous permettre d’accéder à un certain nombre de chaine (de la TV par IP quoi). Cette application est élégante et facile d’utilisation, et les principales chaines française (TF1, France 2, 3, 4, 5, M6) et suisse (TSR1 et 2) sont disponible pour moi (apparemment ceci dépend de la région dans laquelle on se trouve).



Doodle, organiser un rendez-vous simplement

Posté le 5 mars 2007 à 17:06

J’ai découvert cet outil lors de l’organisation de la première rencontre de romandie.rb, Doodle est un service web qui permet d’arranger un rendez-vous entre plusieurs personnes.

Son utilisation est très simple puisqu’on crée un nouveau sondage en se rendant sur la page d’accueil et en suivant le lien qui s’y trouve. Vous donner ensuite un titre et une description à votre évènement, vous renseignez votre nom et votre email et passez à l’écran suivant pour choisir les dates adéquates. Il est encore possible de choisir plusieurs heures (ou un autre élément discriminant tel que le lieu par exemple). Vous allez alors recevoir un email avec un lien vers l’administration et un autre avec un lien publique, il vous reste alors à transmettre ce dernier aux personnes intéressées. Celles-ci pourront renseigner leur nom et leurs disponibilités pour aider à organiser le rendez-vous avec le plus grand nombre de participants.

C’est simple et efficasse !



2 invitations pour la beta de Joost

Posté le 1 mars 2007 à 10:55

J’ai 2 invitations à disposition pour la beta de Joost (anciennement Venice Projet), elles sont pour les deux premiers commentaires qui en font la demande.

Pour rappel ce projet est mené par les deux fondateurs de Skype, Niklas Zennstrom et Janus Friis. C’est donc une télévision p2p (pas un logiciel de partage) dont je trouve l’interface agréable, la question est de savoir si ils arriveront à avoir assez de contenu pour rendre le service intéressant à terme (un accord a été signé avec Viacom, à suivre donc). Pour ma part j’ai surtout regardé des tournois de poker et un ou deux concerts, mais il faut dire que je suis limité par ma compréhension de l’anglais.