GitHub, vos dépôts distants pour Git
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
Stocker sa musique en ligne
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
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 ?
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.
Jeu de Go
J’ai appris à jouer au Go il y a plusieurs années, c’est un jeu qui m’intriguait beaucoup et qui s’est avéré mieux me convenir que les échecs – jeu que je n’apprécie pas vraiment. J’ai un peu joué avec quelques personnes de mon entourage et sur internet, mais faute de temps je n’ai pas persévéré.
J’ai souvent le désir de m’y remettre, je parle régulièrement de faire une partie avec quelques amis ou d’aller voir comment ça se passe dans un club de la région. Et puis je me suis aussi mis au poker et on ne peut pas tout faire… Mais voilà suite à une discussion avec un ami qui est en train de s’y mettre il y a moins de deux semaines je me suis intéressé à nouveau à la chose et ai ressorti mes livres pour réviser mes bases, je suis retourné sur internet pour faire une ou deux partis et j’ai également découvert un serveur permettant de jouer « par correspondance » et donc à un rythme peut contraignant. En effet il n’est pas toujours facile de trouver un adversaire de niveau (faible) en soirée et de jouer toute une partie avec lui, même sur internet.
Comme je le disais je viens de lire à nouveau « Le jeu de Go » par Pierre Aroutcheff (livre épuisé il me semble) et je vais attaquer un livre que j’avais acheté sans jamais le lire qui est la suite du précédent : « Perfectionnement au Go » toujours par Perre Aroutcheff. J’ai également pu constater que depuis le temps la littérature en français dans ce domaine c’est un peu élargi et c’est pour moi une bonne nouvelle. Vous pouvez consulter la Bibliographie du Go pour en savoir plus.
J’ai évidemment dépoussiéré ma liste de site web (il y a probablement de très bon site qui ne sont pas listés ici, je suis d’ailleurs preneur si vous avez des liens de bons sites en français ou plus généralement de site pratique contenant exercices et autres séquences à étudier) :
- Le Jeu de Go sur Wikipédia.
- Jeu de Go, ce site à une série d’exercice pour débutant qui permet de bien comprendre les concepts de base. Vous y trouverez également la bibliographie dont je parle plus haut, un dictionnaire et un grand nombre d’information utile.
- Cours d’introduction, ce petit cours en flash m’a semblé très bien pour comprendre les bases, j’aime particulièrement le commentaire de partie.
- GoProblems.com, ce site est uen vrais mine d’or pour étudier le go, je ne peux pas juger plus de sa valeur, mais si vous cherchez des problèmes à résoudre vous en trouverez.
- GoBase.org, je viens de découvrir ce site, mais j’y ai au moins vue une base de Joseki (séquence classique théoriquement équilibrée pour les deux joueurs) et Fuseki (début de partie) intéressante et bien présenté. On y trouve également des problèmes et des articles (en anglais).
- EncyGoPedie, ce site est un wiki que j’ai encore peu parcouru, mais qui me semble avoir assez peu de contenu. Il existe aussi un site du même genre en anglais : Sensei’s Library.
- Site personnel de François Mizessyn, j’y ai trouvé pas mal d’information intéressante. Là aussi un lexique du jargon utilisé dans le Go.
- Site personnel de Jérôme Hubert qui contient pas mal d’informations intéressantes sur le jeu mais également son histoire.
Il me faudrait compléter cette liste avec quelques recherches, mais c’est un bon début.Pour jouer sur internet j’avais commencé avec IGS le serveur historique, mais il est un peu compliqué à prendre en main (en tout cas il l’était tout particulièrement à l’époque). Ensuite j’ai découvert KGS dont le logiciel est en français et peut-être lancé directement depuis la page web du site (ou être installé), je vous le conseil tout particulièrement.
Une fois qu’on a créé un compte il reste à y trouver des adversaires à votre niveau et éventuellement de l’aide pour progresser, la communauté francophone de KGS est très sympathique (et si vous configurez le logiciel en français la salle de discussion de celle-ci sera ouverte automatiquement) et il y a des cours collectifs presque tous les soirs en semaine (dont une bonne partie est accessible aux débutants). Il existe un système permettant de trouver automatiquement une partie à son niveau (encore faut-il le connaitre ou demander de l’aide pour le définir jusqu’à ce que vous soyez classé sur KGS). J’essaie de jouer un peu sur ce serveur quand j’ai le temps et dans la mesure du possible des parties comptabilisé pour avoir un niveau, mais les parties amicales sont également les bienvenues (pseudo : Garko).
Quand on a moins de temps il existe DGS qui permet de jouer « par correspondance », ce site est également en français et je n’ai pas eu de problème à trouver des parties. On joue des parties sur plusieurs jours, voir plusieurs semaines ou mois, mais au moins on joue (pseudo : Garko).
Et si vous voulez jouer en live, chercher dans votre entourage ou allez dans un club de votre région. Vous en trouverez une liste sur le site de la Fédération française et de la Fédération suisse (ou chercher votre bonheur sur le site de la Fédération européenne) .
Zattoo, la tv sur votre PC
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
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 !
Ecrire pour le web
L’écriture de contenu pour le web est importante pour mon entreprise, notre métier est la réalisation de site internet. Si pour ma part je me concentre sur le développement je pense que notre rôle (en temps que société) envers nos clients ne s’arrête pas à la réalisation technique (et graphique) mais que au contraire nous devons avant tout savoir les conseiller en matière de graphisme, d’ergonomie et de fonctionnalité bien sûr mais aussi leur apporter notre aide dans la conception et la mise en forme de leur contenu ; ceci est d’autant plus vrais pour les sites dynamique dont les textes ne passent pas entre nos mains pour leur intégration.
Je sais que a titre personnel je doit améliorer mon français et ma capacité à écrire en général, c’est entre autre pour cette raison que j’écris sur ce blog. Je pense tout de même que mon expérience dans le web ainsi que celle de mes collègues nous permet aujourd’hui d’avoir quelques notions sur la mise en forme du contenu dans ce domaine tout en étant bien conscient qu’il nous reste encore du chemin à parcourir pour améliorer nos capacités et mieux conseiller nos clients.
Pour en arriver à la raison de ce poste, j’ai découvert il y a quelque temps le blog de Muriel Yandermeulen, écrire pour le web. Je vous en conseil vivement la lecture si ce sujet vous intéresse. J’ai trouvé particulièrement intéressant son dernier article nous donnant un exemple de template pour un texte, rappelant au passage l’importance de la cohérence du contenu d’un site internet. Je peut également recommander la lecture de l’article sur l’écriture de texte simple ou de texte long qui fait fait suite à un poste sur le choix entre texte court et long.
J’en profite pour vous rappeler que je ne prend pas mal vos remarques sur mes textes, bien au contraire, je le sais bien que mon français est douteux. Que ce soit par un commentaire ou un message privé (vous trouverez un lien au début de la colonne de droite), je suis preneur de toute correction, si possible avec la règle qui va bien pour me permettre d’apprendre.
