<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Sans savoir...</title>
	<atom:link href="http://www.sans-savoir.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sans-savoir.net</link>
	<description>... ou une occasion d'apprendre</description>
	<pubDate>Wed, 07 May 2008 21:02:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><item>
		<title>GitHub, vos dépôts distants pour Git</title>
		<link>http://feeds.feedburner.com/~r/SansSavoir/~3/285444640/</link>
		<comments>http://www.sans-savoir.net/2008/05/07/github-vos-depots-distants-pour-git/#comments</comments>
		<pubDate>Wed, 07 May 2008 15:41:07 +0000</pubDate>
		<dc:creator>Yann Lugrin</dc:creator>
		
		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Logiciel]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Gestionnaire de source]]></category>

		<category><![CDATA[Git]]></category>

		<category><![CDATA[GitHub]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://www.sans-savoir.net/?p=97</guid>
		<description><![CDATA[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&#8217;est naturellement pas suffisant pour travailler en collaboration avec d&#8217;autres personnes. Git est un système de gestion [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article fait suite à mon <a title="Git une petite introduction" href="http://www.sans-savoir.net/2008/05/06/git-une-petite-introduction/" >introduction à Git</a>, si vous ne connaissez pas ce système de gestion de source, je vous conseille de la lire en premier.</p>
<p>Mon premier article expliquait comment créer un dépôt local, ce qui n&#8217;est naturellement pas suffisant pour travailler en collaboration avec d&#8217;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&#8217;hébergement. <a href="https://github.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/github.com');">GitHub</a> (<a href="http://github.com/yannlugrin" onclick="javascript:pageTracker._trackPageview('/outbound/article/github.com');">mon compte</a>) est donc un de service offrant la possibilité d&#8217;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<span class="ver" title="Ce signe de ponctuation doit être précédé d'une espace.&lt;br /&gt; ">$</span> par mois) permettent d&#8217;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 à <span class="ver">d&#8217;autres comptes</span> (qu&#8217;ils soient payants ou non) .</p>
<p>Le service vous crée une page de profile simple où vous pouvez afficher votre nom, <span class="spellmod" title="Faute d'orthographe - suggestions : émail, mail, émailla, émaille, émaillé, mails, gemmail, d'émail, l'émail">email</span>, entreprise, localisation et site internet. Cette page affichera également votre activité (commit, ajout de suivi, &#8230;) 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&#8217;accueil avec la liste des projets afin d&#8217;y accéder plus rapidement. Vous avez également accès à un système de messagerie et de recherche de projet.</p>
<p>Les pages d&#8217;un projet commencent par une série d&#8217;onglet permettant de parcourir les sources (page par défaut), d&#8217;accéder à la liste des <span class="spellmod" title="Faute d'orthographe - suggestions : commit, commît, commîtes, commis, commets, cônit, cônît, comités, coïts, comité">commits</span>, un <span class="spellmod" title="Faute d'orthographe - suggestions : kiki, kikis, ici, ski, Mike, bibi, fini, kaki, kiwi, maki, midi, mimi, mini, pipi, raki, saki, titi, zizi, hi-fi, d'ici">wiki</span>, le <span class="spellmod" title="Faute d'orthographe - suggestions : météore, météores, médoc, médocs">network</span> (voir ci-dessous), a la liste des <span class="spellmod" title="Faute d'orthographe - suggestions : catcheurs, archers, waters, catcheur, catchera, catcheras, matchera, matcheras, matchées, catcher, catches, lâchers, matcher, matches, matchés, vachers, ranchers, catcherai, matcherai, hacheurs, gâcheurs, lâcheurs, mâcheurs, catche, catcherais, catché, matche, matcherais, matché, d'archers">watchers</span> (personnes suivants le projet) et enfin, si vous êtes le propriétaire, un accès à l&#8217;administration. Une seconde série d&#8217;onglets donne accès au menu de la section (liste des branches et <span class="spellmod" title="Faute d'orthographe - suggestions : tas, tans, gags, tacs, t'as">tags</span> 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&#8217;action (dont <span class="spellmod" title="Faute d'orthographe - suggestions : for, fors, folk, fora, fore, fort, foré">fork</span> et pull <span class="spellmod" title="Faute d'orthographe - suggestions : requêta, requêtât, requête, requêté, roquets, requiert, réquisit, reçues, requit, requît, requise, requéru, requêtai, requêtas, qu'est, requêtes, requêtés, requêter, rejets, remets, reveut, revêts, récusent, reçue">request</span> que nous verrons plus loin, ainsi que <span class="spellmodupdated">watch</span> et download qui permet de télécharger une archive de la branche sur laquelle vous êtes). Suis une description, l&#8217;adresse du site du projet et enfin les adresse Git (public clone, <span class="spellmod" title="Faute d'orthographe - suggestions : priva te, priva-te, privâtes, privauté, privât, primate, privautés, priante, privant, priâtes, rivâtes, drivâtes, primates, primâtes, prisâtes, privasse, privâmes">private</span> clone, <span class="spellmod" title="Faute d'orthographe - suggestions : pus, bush, rush">push</span>).</p>
<p>L&#8217;explorateur <span class="ver" title="Si le sujet est pluriel, il faut modifier le verbe (la grande majorité des verbes pluriels terminent en &lt;i&gt;-ent&lt;/i&gt;), par ex.: &lt;i&gt;les gens dis&lt;b&gt;ent&lt;/b&gt;&lt;/i&gt;. A vous de vérifier!">des sources est</span> 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&#8217;arborescence et que si celui-ci à une extension du type <span class="spellmod" title="Faute d'orthographe - suggestions : roc, froc, d'oc, rocs, toc, troc, dock, donc, rock, RPC, foc, soc, étoc, broc, croc, do, drop, médoc, oc, roda, rode, rodé, rôda, rôde, rôdé, ordo, rot, rôt, dos, rhô, Roy, dol, dom, don, dot, duc, déc, rob, roi, ados, bloc, choc, floc, ploc, réac, vioc, d'os, d'on, d'or">rdoc</span> par exemple, le contenu sera formaté. Il est aussi possible de laisser un commentaire sur un commit en particulier.</p>
<p>Revenons sur ce qui fait la force d&#8217;un système décentralisé et plus particulièrement sur son intégration dans GitHub qui en facilite et favorise grandement l&#8217;utilisation. Le bouton <span class="spellmod" title="Faute d'orthographe - suggestions : for, fors, folk, fora, fore, fort, foré">fork</span> 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&#8217;un projet et en publier les modifications dans votre espace public très facilement. Quand vous faites ceci vous entrez dans le <span class="spellmod" title="Faute d'orthographe - suggestions : météore, météores, médoc, médocs">network</span> du projet et c&#8217;est là que GitHub est également intéressant puisqu&#8217;il permet de retrouver les branches d&#8217;un projet maintenu par d&#8217;autres personnes assez facilement. Vous pouvez ensuite utiliser depuis votre dépôt (ou un commit en particulier) le bouton pull <span class="spellmod" title="Faute d'orthographe - suggestions : requêta, requêtât, requête, requêté, roquets, requiert, réquisit, reçues, requit, requît, requise, requéru, requêtai, requêtas, qu'est, requêtes, requêtés, requêter, rejets, remets, reveut, revêts, récusent, reçue">request</span> afin de proposer au mainteneur de la branche d&#8217;origine (ou d&#8217;autres branches éventuellement) d&#8217;intégrer vos modifications. Précisons également que si vous faites un <span class="spellmod" title="Faute d'orthographe - suggestions : for, fors, folk, fora, fore, fort, foré">fork</span> d&#8217;un projet privé auquel vous avez accès, il sera également privé chez vous et ceci sans que vous ayez besoin d&#8217;un compte payant.</p>
<p>C&#8217;est probablement ici qu&#8217;on sent la force de Git et de GitHub, en favorisant la collaboration et la participation.</p>
<h2>Concrètement, comment mettre mon projet sur GitHub ?</h2>
<p>Pour commencer il va vous falloir une clef <span class="spellmod" title="Faute d'orthographe - suggestions : shah, sa, sas, ses, sis, sus, VHS, saï, eh, es, ms, oh, os, ph, se, si, su, us, vs, ès, s'y, sen, set, sou, euh, s'en">ssh</span> 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&#8217;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 <span class="spellmod" title="Faute d'orthographe - suggestions : émail, mail, émailla, émaille, émaillé, mails, gemmail, d'émail, l'émail">email</span> et <span class="verupdated">c&#8217;est grâce</span> à celle-ci que vos <em><span class="spellmod" title="Faute d'orthographe - suggestions : commit, commît, commîtes, commis, commets, cônit, cônît, comités, coïts, comité">commits</span></em> seront liés à votre profil.</p>
<p>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&#8217;article).</p>
<pre>$ 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@...</pre>
<p>La <em><span class="spellmod" title="Faute d'orthographe - suggestions : paraphrase, paraphrasé, paraphraser, paraphrases, paraphrasés, passerage, passasse, passerages, passe-rose, assurasse, paperasse, paraphrasai, rassurasse, passe-passe, passe-roses, j'assurasse, l'assurasse, m'assurasse, n'assurasse, t'assurasse">passphrase</span></em> est <span class="mod" title="Ce mot est masculin, il faut donc modifier l'adjectif qui le précède, e.g.: &lt;i&gt;un peti&lt;b&gt;t&lt;/b&gt; problème&lt;/i&gt;.">importante afin</span> de protéger votre clef privée, si vous n&#8217;en mettez pas et qu&#8217;elle est utilisée par quelqu&#8217;un d&#8217;autre il pourra se connecter sans problème à votre compte. Voici à quoi ressemble une clef publique (il n&#8217;y a pas de retour à la ligne en réalité) :</p>
<pre>$ 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@...</pre>
<p>Maintenant vous pouvez <a title="Signup" href="https://github.com/signup/free" onclick="javascript:pageTracker._trackPageview('/outbound/article/github.com');">créer un compte</a> sur GitHub, votre <em><span class="spellmod" title="Faute d'orthographe - suggestions : cernâmes, serinâmes, serrâmes, bernâmes, sériâmes, usinâmes, cérame, casernâmes, usurpâmes, semâmes, ulcérâmes, cérames, assenâmes, assénâmes, gouvernâmes">username</span></em> sera utilisé pour identifier votre profil et votre compte (il sert donc de préfixe à vos projets en quelque sorte). Comme je vous l&#8217;ai déjà dit votre adresse <span class="spellmod" title="Faute d'orthographe - suggestions : émail, mail, émailla, émaille, émaillé, mails, gemmail, d'émail, l'émail">email</span> permet de lier vos <em><span class="spellmod" title="Faute d'orthographe - suggestions : commit, commît, commîtes, commis, commets, cônit, cônît, comités, coïts, comité">commits</span></em> à votre profil (vous pourrez en ajouter d&#8217;autres plus tard si besoin) et enfin dans le champ SSH Public Key vous pouvez entrer le contenu du fichier <em>id_<span class="spellmod" title="Faute d'orthographe - suggestions : radoub, radoubs, rambour, s'embut, s'embût">rsa</span>.pub</em> (vous pouvez aussi en ajouter d&#8217;autres plus tard).</p>
<p>Créer un nouveau projet est simple, suivez le lien qui se trouve sur la <span class="ver" title="Ce mot veut dire “right-hand side”, si vous voulez dire “right” dans un sens légal, il faut écrire &lt;i&gt;droit&lt;/i&gt;, par ex.: &lt;i&gt;les &lt;b&gt;droits&lt;/b&gt; et libertés&lt;/i&gt; (“rights and liberties”).">droite</span> de la page d&#8217;accueil une fois que vous êtes connecté. Donnez un nom à votre projet et éventuellement une description et l&#8217;adresse d&#8217;un site. Vous pouvez également définir s&#8217;il est public ou privé (si vous en avez le droit naturellement). La page <span class="mod" title="Ce mot est masculin. Le premier mot doit aussi être au masculin, par ex.: &lt;i&gt;&lt;b&gt;un&lt;/b&gt; bureau&lt;/i&gt;, &lt;i&gt;&lt;b&gt;cet&lt;/b&gt; homme&lt;/i&gt;, &lt;i&gt;&lt;b&gt;un bon&lt;/b&gt; film&lt;/i&gt;.">suivante vous</span> 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 :</p>
<pre>$ 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 -&gt; 5ef08e8fc190c49a73a0eb246255b454a8a0f56b</pre>
<p>La <em><span class="spellmod" title="Faute d'orthographe - suggestions : paraphrase, paraphrasé, paraphraser, paraphrases, paraphrasés, passerage, passasse, passerages, passe-rose, assurasse, paperasse, paraphrasai, rassurasse, passe-passe, passe-roses, j'assurasse, l'assurasse, m'assurasse, n'assurasse, t'assurasse">passphrase</span></em> de votre clef vous sera demandée et vos précédents <em><span class="spellmod" title="Faute d'orthographe - suggestions : commit, commît, commîtes, commis, commets, cônit, cônît, comités, coïts, comité">commits</span></em> seront transmis vers votre dépôt sur GitHub, vous pouvez maintenant accéder à votre projet et y voir vos fichiers.</p>
<p>Pour créer un clone de votre projet en local (par exemple lors du <em><span class="spellmod" title="Faute d'orthographe - suggestions : for, fors, folk, fora, fore, fort, foré">fork</span></em> d&#8217;un autre projet) vous pouvez utiliser la commande suivante :</p>
<pre>$ git clone git@github.com:yannlugrin/test.git</pre>
<p>ou pour un projet dont vous n&#8217;avez pas d&#8217;accès en écriture :</p>
<pre>$ git clone git://github.com/yannlugrin/test.git</pre>
<p>Vous pouvez maintenant continuer à travailler sur votre dépôt local, faire vos <em><span class="spellmod" title="Faute d'orthographe - suggestions : commit, commît, commîtes, commis, commets, cônit, cônît, comités, coïts, comité">commits</span></em> et régulièrement utiliser la commande <em>git <span class="spellmod" title="Faute d'orthographe - suggestions : pus, bush, rush">push</span></em> pour mettre à jour GitHub ou <em>git pull</em> pour mettre à jour votre dépôt local.</p>
<pre>$ git push origin
$ git pull origin master</pre>

	<div class="main_feedback"><p><a href="http://www.sans-savoir.net/tag/gestionnaire-de-source/" title="Gestionnaire de source" rel="tag">Gestionnaire de source</a>, <a href="http://www.sans-savoir.net/tag/git/" title="Git" rel="tag">Git</a>, <a href="http://www.sans-savoir.net/tag/github/" title="GitHub" rel="tag">GitHub</a>, <a href="http://www.sans-savoir.net/tag/internet/" title="Internet" rel="tag">Internet</a>, <a href="http://www.sans-savoir.net/tag/ruby/" title="Ruby" rel="tag">Ruby</a>, <a href="http://www.sans-savoir.net/tag/ruby-on-rails/" title="Ruby on Rails" rel="tag">Ruby on Rails</a>, <a href="http://www.sans-savoir.net/tag/service/" title="service" rel="tag">service</a></p></div>

	<h4>Articles relatifs</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.sans-savoir.net/2008/05/06/git-une-petite-introduction/" title="Git, une petite introduction (6 mai 2008)">Git, une petite introduction</a></li>
	<li><a href="http://www.sans-savoir.net/2007/02/20/ruby-on-rails-est-ce-quil-vous-faut/" title="Ruby On Rails est ce qu&#8217;il vous faut ! (20 février 2007)">Ruby On Rails est ce qu&#8217;il vous faut !</a></li>
	<li><a href="http://www.sans-savoir.net/2006/04/12/rails-version-112/" title="Rails, version 1.1.2 (12 avril 2006)">Rails, version 1.1.2</a></li>
	<li><a href="http://www.sans-savoir.net/2007/02/07/rails-122-et-petite-note-sur-globalize/" title="Rails 1.2.2 et petite note sur Globalize (7 février 2007)">Rails 1.2.2 et petite note sur Globalize</a></li>
	<li><a href="http://www.sans-savoir.net/2006/12/08/rails-12-quoi-de-neuf/" title="Rails 1.2, quoi de neuf ? (8 décembre 2006)">Rails 1.2, quoi de neuf ?</a></li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SansSavoir?a=kExR9h"><img src="http://feeds.feedburner.com/~f/SansSavoir?i=kExR9h" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sans-savoir.net/2008/05/07/github-vos-depots-distants-pour-git/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.sans-savoir.net/2008/05/07/github-vos-depots-distants-pour-git/</feedburner:origLink></item>
		<item>
		<title>Git, une petite introduction</title>
		<link>http://feeds.feedburner.com/~r/SansSavoir/~3/284558888/</link>
		<comments>http://www.sans-savoir.net/2008/05/06/git-une-petite-introduction/#comments</comments>
		<pubDate>Tue, 06 May 2008 10:47:17 +0000</pubDate>
		<dc:creator>Yann Lugrin</dc:creator>
		
		<category><![CDATA[Logiciel]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[Gestionnaire de source]]></category>

		<category><![CDATA[Git]]></category>

		<category><![CDATA[GitHub]]></category>

		<category><![CDATA[MSysGit]]></category>

		<category><![CDATA[Outils]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[développement]]></category>

		<category><![CDATA[globalize]]></category>

		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.sans-savoir.net/?p=96</guid>
		<description><![CDATA[Après la migration de Ruby on Rails depuis Subversion vers Git, un grand nombre de plugins ont suivi ce chemin (y compris Globalize dont la migration est aussi effective). Si, dans un premier temps, je n&#8217;étais pas très chaud pour utiliser ce gestionnaire de source, l&#8217;ouverture de GitHub et un petit peu de pratique m&#8217;ont [...]]]></description>
			<content:encoded><![CDATA[<p>Après la <a title="Rails premieres on GitHub" href="http://weblog.rubyonrails.org/2008/4/11/rails-premieres-on-github" onclick="javascript:pageTracker._trackPageview('/outbound/article/weblog.rubyonrails.org');">migration</a> de <a title="Rails master tree on GitHub" href="http://github.com/rails/rails/tree/master" onclick="javascript:pageTracker._trackPageview('/outbound/article/github.com');">Ruby <span class="ver" title="Il faut probablement revoir la terminaison du verbe. Voici les terminaisons possibles pour ce sujet: &lt;i&gt;e, d, t&lt;/i&gt;, &lt;i&gt;a&lt;/i&gt; par ex.: &lt;i&gt;il parl&lt;b&gt;e&lt;/b&gt;, elle compren&lt;b&gt;d&lt;/b&gt;, il di&lt;b&gt;t&lt;/b&gt;&lt;/i&gt;, &lt;i&gt;qui &lt;b&gt;va&lt;/i&gt;&lt;/b&gt;.">on Rails</span></a> depuis <a href="http://subversion.tigris.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/subversion.tigris.org');">Subversion</a> vers <a href="http://git.or.cz/" onclick="javascript:pageTracker._trackPageview('/outbound/article/git.or.cz');">Git</a>, un grand nombre de plugins ont suivi ce chemin (y compris <a href="http://www.globalize-rails.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.globalize-rails.org');">Globalize</a> dont la migration est <a title="GitHub" href="http://github.com/yannlugrin/globalize/tree/master" onclick="javascript:pageTracker._trackPageview('/outbound/article/github.com');">aussi effective</a>). Si, dans un premier temps, je n&#8217;étais pas très chaud pour utiliser ce gestionnaire de source, l&#8217;ouverture de <a href="https://github.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/github.com');">GitHub</a> et un petit peu de pratique m&#8217;ont fait réviser mon jugement (sans oublier le fait qu&#8217;il y a maintenant une solution facile d&#8217;installation sous Windows). Je ne vais pas débattre du choix de Git plutôt que <a href="http://www.selenic.com/mercurial/wiki/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.selenic.com');">Mercurial</a> ou un autre gestionnaire de la même famille, ni du bien fondé d&#8217;abandonner Subversion. Un mouvement est initié dans la communauté Rails, ce n&#8217;est sûrement pas un hasard, alors essayons d&#8217;en comprendre les avantages et d&#8217;en profiter s&#8217;ils nous conviennent.</p>
<p>Avant d&#8217;entrer dans le vif du sujet, je rappelle que je découvre Git <span class="ver" title="En français, ce mot existe et se traduit par “presently”. Si vous voulez dire “actually”, utilisez &lt;i&gt;en fait&lt;/i&gt; ou &lt;i&gt;à vrai dire&lt;/i&gt;.">actuellement</span>, et que cet article peut contenir des imprécisions, voir quelques âneries (ne pas hésiter à me les signaler). Cependant, il ne contient aucun Troll, ce n&#8217;est pas parce que je décris quelques choses que je prétends que c&#8217;est la solution parfaite ou qu&#8217;elle n&#8217;est pas disponible ailleurs, c&#8217;est simplement un choix.</p>
<h2>Git ?</h2>
<p><a href="http://fr.wikipedia.org/wiki/Linus_Torvalds" onclick="javascript:pageTracker._trackPageview('/outbound/article/fr.wikipedia.org');"><span class="spellver" title="Faute d'orthographe potentielle - suggestions : Li nus, Li-nus, Lin us, Lin-us, Links, Linos, Minus, Sinus, L'insu, L'infus, Lin, L'anus, Licous, Limas, Limes, Limés, Lippus, Minous, L'indu, Lino, Liner, L'issu, L'inouï, L'émus, L'inné">Linus</span> Torvalds</a>, créateur de Linux, a commencé l&#8217;écriture de Git en avril 2005 afin de remplacer le logiciel <a href="http://www.bitkeeper.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.bitkeeper.com');">BitKeeper</a>. Cet outil propriétaire étais utilisé jusque là pour la gestion des sources du Kernel Linux, jusqu&#8217;à ce que la possibilité d&#8217;utiliser gratuitement le logiciel soit révoqué par son auteur, <a href="http://fr.wikipedia.org/wiki/Larry_McVoy" onclick="javascript:pageTracker._trackPageview('/outbound/article/fr.wikipedia.org');">Larry McVoy</a> (les raisons de cet <span class="ver" title="L'adjectif doit probablement être au masculin, par ex.: &lt;i&gt;un problème intéressan&lt;b&gt;t&lt;/b&gt;&lt;/i&gt;.">événement sont assez controversées,</span> je n&#8217;entrerais donc pas dans les détails ici). La première version a été publiée le 7 avril 2005, en juillet <span class="spellver">Linus</span> annonçais que le Kernel serait dorénavant développé avec Git et que la maintenance de ce nouvel outil était confié à <a href="http://en.wikipedia.org/wiki/Junio_Hamano" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');">Junio Hamano</a>. La première version stable (1.0) est quant à elle sortie le 21 décembre 2005.</p>
<p>Git fait partie de la famille des gestionnaires de sources décentralisée, tout comme BitKeeper ou Mercurial par exemple et au contraire de Subversion ou CVS. Le principe consiste à permettre à chacun de travailler à son rythme, de façon désynchronisée des autres, puis d&#8217;inclure leurs modifications dans son travail et mettre les siennes à leur disposition. Un dépôt de référence est en général défini (par convention, pas pour des raisons techniques), depuis lequel chacun peut partir afin de faire ces développements, avant de les y faire éventuellement intégrer.</p>
<h3>Comment ça marche ?</h3>
<p>La plupart des distributions Linux doivent contenir un <span class="spellmod" title="Faute d'orthographe - suggestions : pacage, pacagé, pacquage, pacager, pacages, pacagés, pacquages, parcage, bâclage, parcages">package</span> avec Git, sinon vous pouvez le <a href="http://git.or.cz/" onclick="javascript:pageTracker._trackPageview('/outbound/article/git.or.cz');">télécharger</a> et le compiler vous-même (je ne vais pas entrer dans les détails, si vous devez le faire, c&#8217;est que vous êtes un grand garçon ou une grande fille ;-)). Sous Windows il existe <a href="http://code.google.com/p/msysgit/" onclick="javascript:pageTracker._trackPageview('/outbound/article/code.google.com');">MSysGit</a>, celui-ci permet d&#8217;installer tout ce qu&#8217;il faut pour que <span class="ver" title="&lt;font face=“Arial” size=“2”&gt;&lt;font face=“Times New Roman” size=“3”&gt;Veuillez v&lt;/font&gt;&lt;/font&gt;érifier : &lt;i&gt;&lt;font face=“Arial” size=“2”&gt;&lt;font face=“Times New Roman” size=“3”&gt;ça&lt;/i&gt; (“cela”) ou &lt;i&gt;sa&lt;/i&gt; (forme possessive).&lt;/font&gt;&lt;/font&gt;">ça marche</span> (vous aurez une console comme avec CygWin et un outil GUI), lisez bien les informations lors de l&#8217;installation afin de faire les choix qui sont le mieux adapté à votre utilisation (en cas de doute choisissez la solution la moins <span class="spellmod">intrusive</span> pour votre système).</p>
<p>Avant toute chose, une petite opération simple de configuration afin de vous identifier correctement lors de vos commit. L&#8217;option <em>&#8211;global</em> permet de définir ces informations pour tout votre système, si vous utilisez les mêmes commande dans un dépôt sans cette option vous pouvez définir un nom et une adresse spécifique pour celui-ci. Vérifier que tout est en ordre avec l&#8217;option <em>&#8211;<span class="spellmod" title="Faute d'orthographe - suggestions : guet, jet, gel, cet, let, met, net, set, vêt">get</span></em>.</p>
<pre>$ git config --global user.name "Yann Lugrin"
$ git config --global user.email "yann.lugrin@..."
$ git config --get user.name
Yann Lugrin
$ git config --get user.email
yann.lugrin@...</pre>
<p>Pour créer un nouveau dépôt, rien de plus simple. Déplacez-vous dans le répertoire de votre application (ou créez-en un) et tapez la commande suivante :</p>
<pre>$ cd ./MyApp
$ git init
Initialized empty Git repository in .git/</pre>
<p>Comme vous pouvez le constater, votre répertoire de travail et votre dépôt ne font qu&#8217;un, vous allez donc <span class="spellmod" title="Faute d'orthographe - suggestions : commîtes, comité, commuter, comités, commute, commuté, commit, commît, coïter, cônîtes, commenter, cogiter, commise, compter, sommité">commiter</span> toutes vos modifications en local. Nous verrons plus tard (avec GitHub) comment utiliser un dépôt distant. Mais attention, dans tous les cas vous aurez cette configuration, vous n&#8217;enverrez jamais vos modifications directement vers un autre dépôt.</p>
<p>Petite précision sur les commandes, une commande notée <em>git <span class="spellmod" title="Faute d'orthographe - suggestions : inti, inuit, unit, unît, finit, finît">init</span></em> est un <span class="spellmod" title="Faute d'orthographe - suggestions : prix, Roy, pro, promu, pros, praxis, prof, promis, proie, profs, probe, prolo, promo, prose, prote, provo, prôna, prône, prôné, poix, broya, broyé, croix, paroi, pris, box, boy, roi, parois, proies, pois, rois">&#8220;proxy&#8221;</span> vers la commande <em>git-<span class="spellmod" title="Faute d'orthographe - suggestions : inti, inuit, unit, unît, finit, finît">init</span></em>, si vous voulez de l&#8217;aide sur une commande, utilisez cette seconde notation avec man afin de l&#8217;obtenir.</p>
<pre>$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)</pre>
<p>Notre dépôt est créé, mais ne contient naturellement encore rien.</p>
<pre>$ touch README
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add &lt;file&gt;..." to include in what will be committed)
#
#       README
nothing added to commit but untracked files present (use "git add"
to track)

$ git add README
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached &lt;file&gt;..." to unstage)
#
#       new file: README
#</pre>
<p>Le fichier README est créé, noté que nous avons dû explicitement l&#8217;ajouter avec la commande <em>git add</em> et qu&#8217;il existe également les commande <em>git rm</em> et <em>git mv.</em></p>
<pre>$ git commit -a -m "Initial commit"
Created initial commit b3037e7: Initial commit
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README

$ git status
# On branch master
nothing to commit (working directory clean)

$ git log
commit b3037e7f45f65d1003eada3248e8541f459085ac
Author: Yann Lugrin &lt;yann.lugrin@...&gt;
Date:   Mon May 5 15:29:01 2008 +0200

    Initial commit</pre>
<p>L&#8217;option <em>-a</em> pour la commande <em>git commit</em> permet de tout envoyer, l&#8217;option <em>-m</em> permet d&#8217;écrire un commentaire. Si vous ne la spécifiez pas, l&#8217;éditeur par défaut du système sera ouvert afin de vous permettre de le faire. On peut ensuite vérifier le résultat avec la commande <em>git log</em>.</p>
<p>Si vous êtes un utilisateur de SVN, vous pouvez jeter un œil à ce <a href="http://git.or.cz/course/svn.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/git.or.cz');">guide</a> afin de faire le pont avec les commandes de Git. Vous pouvez aussi lire la Cheat Sheet (<a href="http://ktown.kde.org/~zrusin/git/git-cheat-sheet.svg" onclick="javascript:pageTracker._trackPageview('/outbound/article/ktown.kde.org');">SVG</a>, <a href="http://ktown.kde.org/~zrusin/git/git-cheat-sheet-medium.png" onclick="javascript:pageTracker._trackPageview('/outbound/article/ktown.kde.org');">Medium PNG</a>, <a href="http://ktown.kde.org/~zrusin/git/git-cheat-sheet-large.png" onclick="javascript:pageTracker._trackPageview('/outbound/article/ktown.kde.org');">Large PNG</a>).</p>
<p>Ceci était une introduction basée sur ma courte expérience, dans le prochain article je parlerais de GitHub, un service d&#8217;hébergement pour Git. Si vous avez des compléments d&#8217;informations à donner sur Git elles sont les bienvenues.</p>

	<div class="main_feedback"><p><a href="http://www.sans-savoir.net/tag/gestionnaire-de-source/" title="Gestionnaire de source" rel="tag">Gestionnaire de source</a>, <a href="http://www.sans-savoir.net/tag/git/" title="Git" rel="tag">Git</a>, <a href="http://www.sans-savoir.net/tag/github/" title="GitHub" rel="tag">GitHub</a>, <a href="http://www.sans-savoir.net/tag/msysgit/" title="MSysGit" rel="tag">MSysGit</a>, <a href="http://www.sans-savoir.net/tag/outils/" title="Outils" rel="tag">Outils</a>, <a href="http://www.sans-savoir.net/tag/ruby/" title="Ruby" rel="tag">Ruby</a>, <a href="http://www.sans-savoir.net/tag/ruby-on-rails/" title="Ruby on Rails" rel="tag">Ruby on Rails</a>, <a href="http://www.sans-savoir.net/tag/developpement/" title="développement" rel="tag">développement</a>, <a href="http://www.sans-savoir.net/tag/globalize/" title="globalize" rel="tag">globalize</a>, <a href="http://www.sans-savoir.net/tag/subversion/" title="subversion" rel="tag">subversion</a></p></div>

	<h4>Articles relatifs</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.sans-savoir.net/2007/06/07/mise-a-jour-de-mon-environnement-de-developpement/" title="Mise à jour de mon environnement de développement (7 juin 2007)">Mise à jour de mon environnement de développement</a></li>
	<li><a href="http://www.sans-savoir.net/2008/05/07/github-vos-depots-distants-pour-git/" title="GitHub, vos dépôts distants pour Git (7 mai 2008)">GitHub, vos dépôts distants pour Git</a></li>
	<li><a href="http://www.sans-savoir.net/2007/02/20/ruby-on-rails-est-ce-quil-vous-faut/" title="Ruby On Rails est ce qu&#8217;il vous faut ! (20 février 2007)">Ruby On Rails est ce qu&#8217;il vous faut !</a></li>
	<li><a href="http://www.sans-savoir.net/2007/02/07/rails-122-et-petite-note-sur-globalize/" title="Rails 1.2.2 et petite note sur Globalize (7 février 2007)">Rails 1.2.2 et petite note sur Globalize</a></li>
	<li><a href="http://www.sans-savoir.net/2006/10/20/globalize-rails-core-team/" title="Globalize Rails Core team (20 octobre 2006)">Globalize Rails Core team</a></li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SansSavoir?a=7trKOh"><img src="http://feeds.feedburner.com/~f/SansSavoir?i=7trKOh" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sans-savoir.net/2008/05/06/git-une-petite-introduction/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.sans-savoir.net/2008/05/06/git-une-petite-introduction/</feedburner:origLink></item>
		<item>
		<title>Non Twitter n’abandonne pas Ruby on Rails</title>
		<link>http://feeds.feedburner.com/~r/SansSavoir/~3/282846668/</link>
		<comments>http://www.sans-savoir.net/2008/05/03/non-twitter-nabandonne-pas-ruby-on-rails/#comments</comments>
		<pubDate>Sat, 03 May 2008 17:21:02 +0000</pubDate>
		<dc:creator>Yann Lugrin</dc:creator>
		
		<category><![CDATA[Gentoo / Linux]]></category>

		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Poker]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Performences]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.sans-savoir.net/?p=95</guid>
		<description><![CDATA[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&#8217;autres langages, raison d&#8217;une certaine confusion.
Il faut bien se rendre compte [...]]]></description>
			<content:encoded><![CDATA[<p>TechCrunch <a title="Twitter souhaite abandonner Ruby on Rails" href="http://fr.techcrunch.com/2008/05/02/twitter-souhaite-abandonner-ruby-on-rails/" onclick="javascript:pageTracker._trackPageview('/outbound/article/fr.techcrunch.com');">annonçais</a> que <span class="spellver" title="Faute d'orthographe potentielle - suggestions : Twister, Twiste, Twisté, Twistes, Twistai">Twitter</span> allais abandonner complètement RoR au profit de PHP ou Java, relançant les Troll sur <span class="ver">les performances de Ruby et Rais</span> pour des sites à fort trafic. <span class="spellver" title="Faute d'orthographe potentielle - suggestions : Van, Yvan, Élan">Evan</span> Williams, développeur chez <span class="spellver">Twitter</span>, <a title="Twitter currently has no plans to abandon RoR." href="http://twitter.com/ev/statuses/801530348" onclick="javascript:pageTracker._trackPageview('/outbound/article/twitter.com');">infirme</a> cette information en rappelant que <span class="spellver" title="Faute d'orthographe potentielle - suggestions : Twister, Twiste, Twisté, Twistes, Twistai">Twitter</span> utilise déjà d&#8217;autres langages, raison d&#8217;une certaine confusion.</p>
<p>Il faut bien se rendre compte que dans le cas d&#8217;une application à forte charge comme celle-ci, <span class="spellmodupdated">beaucoup</span> d&#8217;aménagements ont dû être fait afin d&#8217;essayer d&#8217;en optimiser les performances. <span class="spellver" title="Faute d'orthographe potentielle - suggestions : Twister, Twiste, Twisté, Twistes, Twistai">Twitter</span> n&#8217;est pas si simple et ce n&#8217;est pas un changement de langage qui y changera quelque chose, en déplaise à tous les <span class="spellmod">trolleurs</span> et autres développeurs à l&#8217;esprit étroit qui pense qu&#8217;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.</p>
<p>Update : Vue mon état  semi-comateux (bronchite viral, une température ayant du mal à passer en dessous de 39°C depuis deux jours) ce <a title="Réponse de Matt" href="http://www.ruby-forum.com/topic/151685#669771" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ruby-forum.com');">message</a> de Matt <span class="name">Aimonetti sur la mailing-list de Rails France m&#8217;a échappé, il donne quelques éclaircissements sur le sujet. Merci à <a title="Boldr" href="http://blog.boldr.fr/posts/la-blague-twitter-du-week-end" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.boldr.fr');">Nicolas</a> pour avoir fait passé l&#8217;info (et moi je ne suis pas en état de ne pas dire du mal des trolleurs professionnels).</span></p>

	<div class="main_feedback"><p><a href="http://www.sans-savoir.net/tag/java/" title="Java" rel="tag">Java</a>, <a href="http://www.sans-savoir.net/tag/php/" title="PHP" rel="tag">PHP</a>, <a href="http://www.sans-savoir.net/tag/performences/" title="Performences" rel="tag">Performences</a>, <a href="http://www.sans-savoir.net/tag/ruby/" title="Ruby" rel="tag">Ruby</a>, <a href="http://www.sans-savoir.net/tag/ruby-on-rails/" title="Ruby on Rails" rel="tag">Ruby on Rails</a>, <a href="http://www.sans-savoir.net/tag/twitter/" title="Twitter" rel="tag">Twitter</a></p></div>

	<h4>Articles relatifs</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.sans-savoir.net/2007/02/20/ruby-on-rails-est-ce-quil-vous-faut/" title="Ruby On Rails est ce qu&#8217;il vous faut ! (20 février 2007)">Ruby On Rails est ce qu&#8217;il vous faut !</a></li>
	<li><a href="http://www.sans-savoir.net/2006/04/12/rails-version-112/" title="Rails, version 1.1.2 (12 avril 2006)">Rails, version 1.1.2</a></li>
	<li><a href="http://www.sans-savoir.net/2007/02/07/rails-122-et-petite-note-sur-globalize/" title="Rails 1.2.2 et petite note sur Globalize (7 février 2007)">Rails 1.2.2 et petite note sur Globalize</a></li>
	<li><a href="http://www.sans-savoir.net/2006/12/08/rails-12-quoi-de-neuf/" title="Rails 1.2, quoi de neuf ? (8 décembre 2006)">Rails 1.2, quoi de neuf ?</a></li>
	<li><a href="http://www.sans-savoir.net/2006/04/04/rails-11-quoi-de-neuf/" title="Rails 1.1, quoi de neuf ? (4 avril 2006)">Rails 1.1, quoi de neuf ?</a></li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SansSavoir?a=2P2Srh"><img src="http://feeds.feedburner.com/~f/SansSavoir?i=2P2Srh" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sans-savoir.net/2008/05/03/non-twitter-nabandonne-pas-ruby-on-rails/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.sans-savoir.net/2008/05/03/non-twitter-nabandonne-pas-ruby-on-rails/</feedburner:origLink></item>
		<item>
		<title>Rails dans Programmez</title>
		<link>http://feeds.feedburner.com/~r/SansSavoir/~3/280792418/</link>
		<comments>http://www.sans-savoir.net/2008/04/30/rails-dans-programmez/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 13:34:24 +0000</pubDate>
		<dc:creator>Yann Lugrin</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[article]]></category>

		<category><![CDATA[ide]]></category>

		<category><![CDATA[magazine]]></category>

		<category><![CDATA[netbeans]]></category>

		<guid isPermaLink="false">http://www.sans-savoir.net/2008/04/30/rails-dans-programmez/</guid>
		<description><![CDATA[Retrouvez un dossier sur Ruby on Rails dans les numéros 107 et 108 du magazine Programmez et les deux articles que j&#8217;ai signé dans la seconde partie de celui-ci. Le premier parle de la migration d&#8217;une application utilisant Rails 1.2 vers Rails 2.0 et le second de l&#8217;intégration de RoR dans NetBeans 6.0.
Je vous conseille [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.programmez.com/magazine.php" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.programmez.com');" title="Programmez Magazine"><img src="http://www.sans-savoir.net/wp-content/uploads/2008/04/programmezn108.jpg" alt="Programmez Magazine" align="left" /></a>Retrouvez un dossier sur Ruby on Rails dans les numéros 107 et 108 du magazine <a href="http://www.programmez.com/magazine.php" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.programmez.com');" title="Programmez Magazine">Programmez</a> et les deux articles que j&#8217;ai signé dans la seconde partie de celui-ci. Le premier parle de la migration d&#8217;une application utilisant Rails 1.2 vers Rails 2.0 et le second de l&#8217;intégration de RoR dans NetBeans 6.0.</p>
<p>Je vous conseille vivement d&#8217;essayer NetBeans 6.0 ou 6.1 comme IDE pour le développement d&#8217;une application Ruby <span class="ver" title="Il faut probablement revoir la terminaison du verbe. Voici les terminaisons possibles pour ce sujet: &lt;i&gt;e, d, t&lt;/i&gt;, &lt;i&gt;a&lt;/i&gt; par ex.: &lt;i&gt;il parl&lt;b&gt;e&lt;/b&gt;, elle compren&lt;b&gt;d&lt;/b&gt;, il di&lt;b&gt;t&lt;/b&gt;&lt;/i&gt;, &lt;i&gt;qui &lt;b&gt;va&lt;/i&gt;&lt;/b&gt;.">on Rails.</span> Après avoir longtemps utilisé Eclipse il m&#8217;a fallu un temps d&#8217;adaptation mais j&#8217;ai rapidement été séduit par le fonctionnement et l&#8217;ergonomie de ce logiciel qui s&#8217;ouvre enfin à d&#8217;autres langages que Java.</p>
<p>Avec un peu de chance cette publication va me motiver à publier plus souvent du contenu sur ce blogue (car c&#8217;est pas les sujets qui manquent).</p>

	<div class="main_feedback"><p><a href="http://www.sans-savoir.net/tag/eclipse/" title="Eclipse" rel="tag">Eclipse</a>, <a href="http://www.sans-savoir.net/tag/ruby-on-rails/" title="Ruby on Rails" rel="tag">Ruby on Rails</a>, <a href="http://www.sans-savoir.net/tag/article/" title="article" rel="tag">article</a>, <a href="http://www.sans-savoir.net/tag/ide/" title="ide" rel="tag">ide</a>, <a href="http://www.sans-savoir.net/tag/magazine/" title="magazine" rel="tag">magazine</a>, <a href="http://www.sans-savoir.net/tag/netbeans/" title="netbeans" rel="tag">netbeans</a></p></div>

	<h4>Articles relatifs</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.sans-savoir.net/2007/06/07/mise-a-jour-de-mon-environnement-de-developpement/" title="Mise à jour de mon environnement de développement (7 juin 2007)">Mise à jour de mon environnement de développement</a></li>
	<li><a href="http://www.sans-savoir.net/2007/02/20/ruby-on-rails-est-ce-quil-vous-faut/" title="Ruby On Rails est ce qu&#8217;il vous faut ! (20 février 2007)">Ruby On Rails est ce qu&#8217;il vous faut !</a></li>
	<li><a href="http://www.sans-savoir.net/2006/04/12/rails-version-112/" title="Rails, version 1.1.2 (12 avril 2006)">Rails, version 1.1.2</a></li>
	<li><a href="http://www.sans-savoir.net/2007/02/07/rails-122-et-petite-note-sur-globalize/" title="Rails 1.2.2 et petite note sur Globalize (7 février 2007)">Rails 1.2.2 et petite note sur Globalize</a></li>
	<li><a href="http://www.sans-savoir.net/2006/12/08/rails-12-quoi-de-neuf/" title="Rails 1.2, quoi de neuf ? (8 décembre 2006)">Rails 1.2, quoi de neuf ?</a></li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SansSavoir?a=Ti4yBg"><img src="http://feeds.feedburner.com/~f/SansSavoir?i=Ti4yBg" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sans-savoir.net/2008/04/30/rails-dans-programmez/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.sans-savoir.net/2008/04/30/rails-dans-programmez/</feedburner:origLink></item>
		<item>
		<title>Après Paris on Rails 2007</title>
		<link>http://feeds.feedburner.com/~r/SansSavoir/~3/202445916/</link>
		<comments>http://www.sans-savoir.net/2007/12/19/apres-paris-on-rails-2007/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 23:41:00 +0000</pubDate>
		<dc:creator>Yann Lugrin</dc:creator>
		
		<category><![CDATA[Au quotidien]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Quotidien]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[paris on rails]]></category>

		<category><![CDATA[présentation]]></category>

		<guid isPermaLink="false">http://www.sans-savoir.net/2007/12/19/apres-paris-on-rails-2007/</guid>
		<description><![CDATA[L&#8217;édition 2007 de Paris on Rails a eu lieu le 10 décembre dernier, ma présentation sur l&#8217;internationalisation des applications Rails c&#8217;est bien déroulé et a bien été accueilli. Je vous invite a retrouver les slides de toutes les présentations ainsi que les enregistrement audio (bientôt) sur ce site (miroir concernant mon intervention : slides, audio). [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;édition 2007 de Paris on Rails a eu lieu le 10 décembre dernier, ma présentation sur l&#8217;internationalisation des applications Rails c&#8217;est bien déroulé et a bien été accueilli. Je vous invite a retrouver les slides de toutes les présentations ainsi que les enregistrement audio (bientôt) sur ce <a href="http://2007.parisonrails.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/2007.parisonrails.org');" title="PAris on Rails 2007">site</a> (miroir concernant mon intervention : <a href="http://www.sans-savoir.net/wp-content/uploads/2007/12/3-por2007-yann_lugrin-internationalisation.pdf" onclick="javascript:pageTracker._trackPageview('/downloads/wp-content/uploads/2007/12/3-por2007-yann_lugrin-internationalisation.pdf');" title="Paris on Rails 2007 - Yann Lugrin - Internationalisation - Slides">slides</a>, <a href="http://www.sans-savoir.net/wp-content/uploads/2007/12/3-PoR2007-Yann_Lugrin-Internationalisation.mp3"  title="Paris on Rails 2007 - Yann Lugrin - Internationalisation - Audio">audio</a>). Cette journée feu également pour moi l&#8217;occasion de faire des nouvelles rencontres ou de discuter de vive voie avec des personnes déjà connu, je me réjouis donc d&#8217;avoir peu y participer.</p>
<p>Je ne ferais pas de résumé de la conférence, d&#8217;autre l&#8217;ont fait avant moi :</p>
<ul>
<li>L&#8217;article du groupe IDG sur <a href="http://www.infoworld.com/article/07/12/10/Paris-on-Rails-welcomes-Ruby-on-Rails-2.0_1.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.infoworld.com');" title="InfoWorld">InfoWorld </a>en anglais (j&#8217;espère ne pas pas avoir dit trop de conneries).</li>
<li>Le <a href="http://sunfox.org/blog/2007/12/11/paris-on-rails-2007/" onclick="javascript:pageTracker._trackPageview('/outbound/article/sunfox.org');" title="sunfox.org">blogue de Sunny Ripert</a>.</li>
<li>Le <a href="http://conceptoire.com/blog_entries/39" onclick="javascript:pageTracker._trackPageview('/outbound/article/conceptoire.com');" title="Conceptoire.com">blogue de Christian Corsano</a>.</li>
<li>Le <a href="http://delorme.frederic.free.fr/dotclear/index.php?2007/12/12/284-paris-on-rails-2007" onclick="javascript:pageTracker._trackPageview('/outbound/article/delorme.frederic.free.fr');" title="Fréderic Delorme">blogue de Fréderic Delorme</a>.</li>
<li>Le <a href="http://social.hortis.ch/2007/12/13/back-from-paris-on-rails-2007/" onclick="javascript:pageTracker._trackPageview('/outbound/article/social.hortis.ch');" title="Hortis">blogue de Hortis</a> (article par Laurent Bois).</li>
<li>Petit <a href="http://www.neteco.com/88576-david-heinemeier-hansson-ruby-rails.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.neteco.com');" title="Neteco.com">entretient avec DHH</a> fait à l&#8217;occasion de Paris on Rails et de son intervention par vidlo-conférence.</li>
</ul>
<p>Pour terminer l&#8217;article sur <a href="http://linuxfr.org/2007/12/11/23448.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/linuxfr.org');" title="DLFP">LinuxFr</a> après la <a href="http://weblog.rubyonrails.org/2007/12/7/rails-2-0-it-s-done" onclick="javascript:pageTracker._trackPageview('/outbound/article/weblog.rubyonrails.org');" title="Blogue officiel">sortie de Rails 2.0 le 7 décembre</a> (la <a href="http://weblog.rubyonrails.org/2007/12/17/rails-2-0-2-some-new-defaults-and-a-few-fixes" onclick="javascript:pageTracker._trackPageview('/outbound/article/weblog.rubyonrails.org');" title="Blogue officiel">version 2.0.2 est sortie le 18 décembre</a> avec quelques corrections et l&#8217;utilisation de sqlite3 par défaut au lieu de MySQL entre autre).</p>

	<div class="main_feedback"><p><a href="http://www.sans-savoir.net/tag/quotidien/" title="Quotidien" rel="tag">Quotidien</a>, <a href="http://www.sans-savoir.net/tag/ruby/" title="Ruby" rel="tag">Ruby</a>, <a href="http://www.sans-savoir.net/tag/ruby-on-rails/" title="Ruby on Rails" rel="tag">Ruby on Rails</a>, <a href="http://www.sans-savoir.net/tag/paris-on-rails/" title="paris on rails" rel="tag">paris on rails</a>, <a href="http://www.sans-savoir.net/tag/presentation/" title="présentation" rel="tag">présentation</a></p></div>

	<h4>Articles relatifs</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.sans-savoir.net/2007/02/14/ruby-user-group-pour-la-suisse-romande/" title="Ruby User Group pour la Suisse Romande (14 février 2007)">Ruby User Group pour la Suisse Romande</a></li>
	<li><a href="http://www.sans-savoir.net/2007/04/24/preparation-de-paris-on-rails-2007/" title="Préparation de Paris on Rails 2007 (24 avril 2007)">Préparation de Paris on Rails 2007</a></li>
	<li><a href="http://www.sans-savoir.net/2007/10/19/globalize-paris-on-rails/" title="Globalize @ Paris on Rails (19 octobre 2007)">Globalize @ Paris on Rails</a></li>
	<li><a href="http://www.sans-savoir.net/2007/02/20/ruby-on-rails-est-ce-quil-vous-faut/" title="Ruby On Rails est ce qu&#8217;il vous faut ! (20 février 2007)">Ruby On Rails est ce qu&#8217;il vous faut !</a></li>
	<li><a href="http://www.sans-savoir.net/2006/04/12/rails-version-112/" title="Rails, version 1.1.2 (12 avril 2006)">Rails, version 1.1.2</a></li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SansSavoir?a=vdNyejc"><img src="http://feeds.feedburner.com/~f/SansSavoir?i=vdNyejc" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sans-savoir.net/2007/12/19/apres-paris-on-rails-2007/feed/</wfw:commentRss>
<enclosure url="http://www.sans-savoir.net/wp-content/uploads/2007/12/3-PoR2007-Yann_Lugrin-Internationalisation.mp3" length="44388864" type="audio/mpeg" />
		<feedburner:origLink>http://www.sans-savoir.net/2007/12/19/apres-paris-on-rails-2007/</feedburner:origLink></item>
		<item>
		<title>Globalize @ Paris on Rails</title>
		<link>http://feeds.feedburner.com/~r/SansSavoir/~3/172205476/</link>
		<comments>http://www.sans-savoir.net/2007/10/19/globalize-paris-on-rails/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 19:24:53 +0000</pubDate>
		<dc:creator>Yann Lugrin</dc:creator>
		
		<category><![CDATA[Au quotidien]]></category>

		<category><![CDATA[Liquid Concept]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Quotidien]]></category>

		<category><![CDATA[conférence]]></category>

		<category><![CDATA[globalize]]></category>

		<category><![CDATA[paris on rails]]></category>

		<guid isPermaLink="false">http://www.sans-savoir.net/2007/10/19/globalize-paris-on-rails/</guid>
		<description><![CDATA[ Paris on Rails aura lieu le 10 décembre prochain à la cité des sciences. De nombreux intervenants vont se succéder pendant toute une journée pour vous présenter Rails à travers des conférences sur Prototype, HAML / SASS, les tests mais également avec des retours d&#8217;expérience. Il y aura également DHH (David Heinemeier Hansson, le [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://paris.onrails.info/" onclick="javascript:pageTracker._trackPageview('/outbound/article/paris.onrails.info');"> Paris <span class="ver" title="Il faut probablement revoir la terminaison du verbe. Voici les terminaisons possibles pour ce sujet: &lt;i&gt;e, d, t&lt;/i&gt;, &lt;i&gt;a&lt;/i&gt; par ex.: &lt;i&gt;il parl&lt;b&gt;e&lt;/b&gt;, elle compren&lt;b&gt;d&lt;/b&gt;, il di&lt;b&gt;t&lt;/b&gt;&lt;/i&gt;, &lt;i&gt;qui &lt;b&gt;va&lt;/i&gt;&lt;/b&gt;.">on Rails</span></a> aura lieu le 10 décembre prochain à la cité des sciences. De nombreux intervenants vont se succéder pendant toute une journée pour vous présenter <a href="http://rubyonrails.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/rubyonrails.com');">Rails</a> à travers des conférences sur <a href="http://www.prototypejs.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.prototypejs.org');">Prototype</a>, <a href="http://haml.hamptoncatlin.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/haml.hamptoncatlin.com');" title="HAML">HAML / SASS</a>, les tests mais également avec des retours d&#8217;expérience. Il y aura également DHH (<a href="http://www.loudthinking.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.loudthinking.com');" title="Blog de DHH">David Heinemeier Hansson</a>, le créateur de ce framework) en liaison vidéo.</p>
<p>J&#8217;aurai également le privilège de faire une présentation au sujet de l&#8217;internationalisation des applications et de <a href="http://www.globalize-rails.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.globalize-rails.org');">Globalize</a> afin de mieux vous préparer au développement d&#8217;une application multilingue.</p>
<p style="text-align: center"><img src="http://blog.boldr.fr/assets/blog.boldr.fr/2007/10/17/por2007.png" title="Paris on Rails" alt="Paris on Rails" border="0" height="300" width="230" /></p>
<p> Une belle journée dont le prix est de 70 € jusqu&#8217;au 15 novembre 2007, 100 € pour ceux qui voudraient s&#8217;y prendre au dernier moment. Je vous recommande donc fortement de vous y rendre (et si vous allez au <a href="http://leweb3.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/leweb3.com');" title="Le Web 3">Web 3</a>, faite d&#8217;une pierre deux coups).</p>
<p><strong> </strong></p>

	<div class="main_feedback"><p><a href="http://www.sans-savoir.net/tag/liquid-concept/" title="Liquid Concept" rel="tag">Liquid Concept</a>, <a href="http://www.sans-savoir.net/tag/quotidien/" title="Quotidien" rel="tag">Quotidien</a>, <a href="http://www.sans-savoir.net/tag/ruby-on-rails/" title="Ruby on Rails" rel="tag">Ruby on Rails</a>, <a href="http://www.sans-savoir.net/tag/conference/" title="conférence" rel="tag">conférence</a>, <a href="http://www.sans-savoir.net/tag/globalize/" title="globalize" rel="tag">globalize</a>, <a href="http://www.sans-savoir.net/tag/paris-on-rails/" title="paris on rails" rel="tag">paris on rails</a></p></div>

	<h4>Articles relatifs</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.sans-savoir.net/2007/02/20/ruby-on-rails-est-ce-quil-vous-faut/" title="Ruby On Rails est ce qu&#8217;il vous faut ! (20 février 2007)">Ruby On Rails est ce qu&#8217;il vous faut !</a></li>
	<li><a href="http://www.sans-savoir.net/2007/02/07/rails-122-et-petite-note-sur-globalize/" title="Rails 1.2.2 et petite note sur Globalize (7 février 2007)">Rails 1.2.2 et petite note sur Globalize</a></li>
	<li><a href="http://www.sans-savoir.net/2007/04/24/preparation-de-paris-on-rails-2007/" title="Préparation de Paris on Rails 2007 (24 avril 2007)">Préparation de Paris on Rails 2007</a></li>
	<li><a href="http://www.sans-savoir.net/2007/12/19/apres-paris-on-rails-2007/" title="Après Paris on Rails 2007 (19 décembre 2007)">Après Paris on Rails 2007</a></li>
	<li><a href="http://www.sans-savoir.net/2007/07/06/mener-plusieurs-projets-de-front/" title="Mener plusieurs projets de front (6 juillet 2007)">Mener plusieurs projets de front</a></li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SansSavoir?a=RIIPc9a"><img src="http://feeds.feedburner.com/~f/SansSavoir?i=RIIPc9a" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sans-savoir.net/2007/10/19/globalize-paris-on-rails/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.sans-savoir.net/2007/10/19/globalize-paris-on-rails/</feedburner:origLink></item>
		<item>
		<title>TServer 0.2.0</title>
		<link>http://feeds.feedburner.com/~r/SansSavoir/~3/168537613/</link>
		<comments>http://www.sans-savoir.net/2007/10/11/tserver-020/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 17:42:39 +0000</pubDate>
		<dc:creator>Yann Lugrin</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[développement]]></category>

		<category><![CDATA[gserver]]></category>

		<category><![CDATA[serveur]]></category>

		<category><![CDATA[tcp]]></category>

		<category><![CDATA[thread]]></category>

		<category><![CDATA[tserver]]></category>

		<guid isPermaLink="false">http://www.sans-savoir.net/2007/10/11/tserver-020/</guid>
		<description><![CDATA[TServer est une librairie en Ruby permettant d&#8217;implémenter un serveur multi-thread, c&#8217;est une alternative à GServer de la librairie standard.
J&#8217;ai sorti la version 0.2.0 aujourd&#8217;hui, voici les nouveautés :

Utilisation de la class &#8216;Logger&#8217; pour le système de log (la sortie standard est utilisé par défaut, mais lors des tests un fichier de log est utilisé).
Ajout [...]]]></description>
			<content:encoded><![CDATA[<p>TServer est une librairie en <a href="http://rubyfr.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/rubyfr.org');">Ruby</a> permettant d&#8217;implémenter un serveur multi-thread, c&#8217;est une alternative à <a href="http://ruby-doc.org/stdlib/libdoc/gserver/rdoc/index.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/ruby-doc.org');">GServer</a> de la librairie standard.</p>
<p>J&#8217;ai sorti la version 0.2.0 aujourd&#8217;hui, voici les nouveautés :</p>
<ul>
<li>Utilisation de la class &#8216;Logger&#8217; pour le système de log (la sortie standard est utilisé par défaut, mais lors des tests un fichier de log est utilisé).</li>
<li>Ajout de callbacks lors des événements.</li>
<li>Ajout d&#8217;une tâche &#8217;server&#8217; au Rakefile afin de lancer le serveur d&#8217;exemple.</li>
<li>Plurialisation du nom des méthodes &#8216;Tserver.listeners&#8217; et &#8216;TServer.waiting_listeners&#8217;.</li>
<li>Une méthode &#8216;reload&#8217; a été ajouté afin de permettre de redémarrer le serveur sans coupure du service.</li>
<li>&#8216;TServer.process&#8217; ne prend plus d&#8217;argument et les méthodes suivantes sont maintenant disponibles : &#8216;TServer.connection&#8217;, &#8216;TServer.connection_addr&#8217; et &#8216;TServer.terminate_listener?&#8217;.</li>
<li>Un certain nombre de corrections ont étés faites et les tests améliorés.</li>
</ul>
<p>Les sources et un gem sont disponibles depuis le trac du projet, j&#8217;espère pouvoir ajouter le gem à <a href="http://rubyforge.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/rubyforge.org');">rubyforge</a> bientôt.</p>
<p>Le serveur fonctionne bien, <span class="ver" title="Il faut probablement mettre le verbe au subjonctif, par ex.: &lt;i&gt;il est important que tu &lt;b&gt;viennes&lt;/b&gt; ce soir&lt;/i&gt;. Dans certains cas, le futur est aussi possible.">bien que je ne l&#8217;ai</span> pas encore testé dans des conditions réels. Je pense que je devrais faire <span class="mod" title="Il faut écrire &lt;i&gt;classe&lt;/i&gt;, par ex.: &lt;i&gt; Je suis de la &lt;b&gt;classe&lt;/b&gt; ouvrière&lt;/i&gt;.">une class</span> pour les Listener, ceci permettrais d&#8217;être plus facilement &#8220;thread  <span class="spellmod" title="Faute d'orthographe - suggestions : safre, sage, café, nafé, saké, sale, salé, sape, sapé, saxe, s'axe">safe</span>&#8221; en plus d&#8217;un certain nombre davantage pour l&#8217;implémentation je pense. Par contre, j&#8217;ai de la peine à évaluer les incidences sur les performances. Ce changement serais important, je vais y réfléchir et décider si je prends cette option dans le but de sortir une version 1.0.</p>
<p>Naturellement tout commentaire est le bienvenu.</p>

	<div class="main_feedback"><p><a href="http://www.sans-savoir.net/tag/ruby/" title="Ruby" rel="tag">Ruby</a>, <a href="http://www.sans-savoir.net/tag/developpement/" title="développement" rel="tag">développement</a>, <a href="http://www.sans-savoir.net/tag/gserver/" title="gserver" rel="tag">gserver</a>, <a href="http://www.sans-savoir.net/tag/serveur/" title="serveur" rel="tag">serveur</a>, <a href="http://www.sans-savoir.net/tag/tcp/" title="tcp" rel="tag">tcp</a>, <a href="http://www.sans-savoir.net/tag/thread/" title="thread" rel="tag">thread</a>, <a href="http://www.sans-savoir.net/tag/tserver/" title="tserver" rel="tag">tserver</a></p></div>

	<h4>Articles relatifs</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.sans-savoir.net/2007/09/15/creer-un-serveur-tcp-mutlithread-en-ruby/" title="Créer un serveur TCP multithread en Ruby (15 septembre 2007)">Créer un serveur TCP multithread en Ruby</a></li>
	<li><a href="http://www.sans-savoir.net/2007/06/07/mise-a-jour-de-mon-environnement-de-developpement/" title="Mise à jour de mon environnement de développement (7 juin 2007)">Mise à jour de mon environnement de développement</a></li>
	<li><a href="http://www.sans-savoir.net/2008/05/06/git-une-petite-introduction/" title="Git, une petite introduction (6 mai 2008)">Git, une petite introduction</a></li>
	<li><a href="http://www.sans-savoir.net/2006/04/05/variable-aleatoire-et-repartition-selon-la-loi-normale/" title="Variable aléatoire et répartition selon la loi normale (5 avril 2006)">Variable aléatoire et répartition selon la loi normale</a></li>
	<li><a href="http://www.sans-savoir.net/2007/03/07/site-officiel-de-ruby-en-francais/" title="Site officiel de Ruby en français (7 mars 2007)">Site officiel de Ruby en français</a></li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SansSavoir?a=dbUbD5gu"><img src="http://feeds.feedburner.com/~f/SansSavoir?i=dbUbD5gu" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sans-savoir.net/2007/10/11/tserver-020/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.sans-savoir.net/2007/10/11/tserver-020/</feedburner:origLink></item>
		<item>
		<title>World Blogger Championship Of Online Poker 2007</title>
		<link>http://feeds.feedburner.com/~r/SansSavoir/~3/165647739/</link>
		<comments>http://www.sans-savoir.net/2007/10/05/world-blogger-championship-of-online-poker-2007/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 11:00:14 +0000</pubDate>
		<dc:creator>Yann Lugrin</dc:creator>
		
		<category><![CDATA[Poker]]></category>

		<category><![CDATA[poker stars]]></category>

		<category><![CDATA[tournoi]]></category>

		<guid isPermaLink="false">http://www.sans-savoir.net/2007/10/05/world-blogger-championship-of-online-poker-2007/</guid>
		<description><![CDATA[Poker Stars organise son maintenant traditionnel tournoi pour blogeur, je n&#8217;y ai encore pas participé, c&#8217;est l&#8217;occasion.

I have registered to play in the PokerStars World Blogger Championship of Online Poker!
This Online Poker Tournament is a No Limit Texas Holdem event exclusive to Bloggers.
Registration code: 6494624

	Poker, poker stars, tournoi

	Articles relatifs
	
	Petit tournoi entre amis
	Blog poker tour
	Pourquoi je [...]]]></description>
			<content:encoded><![CDATA[<p>Poker Stars organise son maintenant traditionnel tournoi pour blogeur, je n&#8217;y ai encore pas participé, c&#8217;est l&#8217;occasion.</p>
<p><a href="http://www.pokerstars.com/blog_tournament/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.pokerstars.com');"><img src="http://www.pokerstars.com/blog_tournament/images/2007-3.gif" alt="Texas Holdem Poker" border="0" height="90" width="250" /></a></p>
<p>I have registered to play in the <a href="http://www.pokerstars.com/blog_tournament/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.pokerstars.com');">PokerStars World Blogger Championship of Online Poker</a>!</p>
<p>This Online Poker Tournament is a No Limit <a href="http://www.pokerstars.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.pokerstars.com');">Texas Holdem</a> event exclusive to Bloggers.</p>
<p>Registration code: 6494624</p>

	<div class="main_feedback"><p><a href="http://www.sans-savoir.net/tag/poker/" title="Poker" rel="tag">Poker</a>, <a href="http://www.sans-savoir.net/tag/poker-stars/" title="poker stars" rel="tag">poker stars</a>, <a href="http://www.sans-savoir.net/tag/tournoi/" title="tournoi" rel="tag">tournoi</a></p></div>

	<h4>Articles relatifs</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.sans-savoir.net/2007/01/21/petit-tournoi-entre-amis/" title="Petit tournoi entre amis (21 janvier 2007)">Petit tournoi entre amis</a></li>
	<li><a href="http://www.sans-savoir.net/2006/12/20/blog-poker-tour/" title="Blog poker tour (20 décembre 2006)">Blog poker tour</a></li>
	<li><a href="http://www.sans-savoir.net/2006/12/07/pourquoi-je-joue-au-poker/" title="Pourquoi je joue au poker ? (7 décembre 2006)">Pourquoi je joue au poker ?</a></li>
	<li><a href="http://www.sans-savoir.net/2006/11/28/poker-jeu-de-hasard-ou-dadresse/" title="Poker, jeu de hasard ou d&#8217;adresse ? (28 novembre 2006)">Poker, jeu de hasard ou d&#8217;adresse ?</a></li>
	<li><a href="http://www.sans-savoir.net/2007/09/28/ept-de-londre-table-tv-en-direct/" title="EPT de Londre: table TV en direct (28 septembre 2007)">EPT de Londre: table TV en direct</a></li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SansSavoir?a=FtWseePe"><img src="http://feeds.feedburner.com/~f/SansSavoir?i=FtWseePe" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sans-savoir.net/2007/10/05/world-blogger-championship-of-online-poker-2007/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.sans-savoir.net/2007/10/05/world-blogger-championship-of-online-poker-2007/</feedburner:origLink></item>
		<item>
		<title>EPT de Londre: table TV en direct</title>
		<link>http://feeds.feedburner.com/~r/SansSavoir/~3/162500860/</link>
		<comments>http://www.sans-savoir.net/2007/09/28/ept-de-londre-table-tv-en-direct/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 15:57:38 +0000</pubDate>
		<dc:creator>Yann Lugrin</dc:creator>
		
		<category><![CDATA[Poker]]></category>

		<category><![CDATA[Texas Holdem]]></category>

		<category><![CDATA[ept]]></category>

		<category><![CDATA[live]]></category>

		<category><![CDATA[nl10]]></category>

		<guid isPermaLink="false">http://www.sans-savoir.net/2007/09/28/ept-de-londre-table-tv-en-direct/</guid>
		<description><![CDATA[La 3ème journée de l&#8217;EPT (European Poker Tour) de Londre à lieu aujourd&#8217;hui, pour la première fois la table TV est en direct avec un commentaire en Français sur EPTLive.com. Au micro on retrouve Benjo avec à ses cotés en ce moment Patrice Soulier (mais d&#8217;autres joueurs français prendrons son relais dont Nicolas Levi et [...]]]></description>
			<content:encoded><![CDATA[<p>La 3ème journée de l&#8217;EPT (European Poker Tour) de Londre à lieu aujourd&#8217;hui, pour la première fois la table TV est en direct avec un commentaire en Français sur <a href="http://www.eptlive.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.eptlive.com');">EPTLive.com</a>. Au micro on retrouve Benjo avec à ses cotés en ce moment Patrice Soulier (mais d&#8217;autres joueurs français prendrons son relais dont Nicolas Levi et Thomas Fougan) pendant cette journée. La table finale de demain sera également retransmise dans les même conditions, c&#8217;est pas le même rythme que dans les retransmission TV puisque toutes les mains y passe, de plus on ne voie bien évidement pas le jeu des joueurs ce qui rend l&#8217;analyse des coups différentes.</p>
<p>Pour ma part je me suis remis au poker, même si je n&#8217;ai pas beaucoup de temps (1 ou 2 heures en soirée de temps en temps, un peu plus en fin de semaine), je me suis mis au CG en NL10 mais je fait quelques Sit&amp;Go et tournois pour le plaisir, pour l&#8217;instant ça ne se passe pas trop mal, mais il ne sert à rien de faire un bilan après à peine plus de 1000 mains.</p>

	<div class="main_feedback"><p><a href="http://www.sans-savoir.net/tag/poker/" title="Poker" rel="tag">Poker</a>, <a href="http://www.sans-savoir.net/tag/texas-holdem/" title="Texas Holdem" rel="tag">Texas Holdem</a>, <a href="http://www.sans-savoir.net/tag/ept/" title="ept" rel="tag">ept</a>, <a href="http://www.sans-savoir.net/tag/live/" title="live" rel="tag">live</a>, <a href="http://www.sans-savoir.net/tag/nl10/" title="nl10" rel="tag">nl10</a></p></div>

	<h4>Articles relatifs</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.sans-savoir.net/2006/11/28/poker-jeu-de-hasard-ou-dadresse/" title="Poker, jeu de hasard ou d&#8217;adresse ? (28 novembre 2006)">Poker, jeu de hasard ou d&#8217;adresse ?</a></li>
	<li><a href="http://www.sans-savoir.net/2007/01/21/petit-tournoi-entre-amis/" title="Petit tournoi entre amis (21 janvier 2007)">Petit tournoi entre amis</a></li>
	<li><a href="http://www.sans-savoir.net/2006/12/20/blog-poker-tour/" title="Blog poker tour (20 décembre 2006)">Blog poker tour</a></li>
	<li><a href="http://www.sans-savoir.net/2007/10/05/world-blogger-championship-of-online-poker-2007/" title="World Blogger Championship Of Online Poker 2007 (5 octobre 2007)">World Blogger Championship Of Online Poker 2007</a></li>
	<li><a href="http://www.sans-savoir.net/2006/12/07/pourquoi-je-joue-au-poker/" title="Pourquoi je joue au poker ? (7 décembre 2006)">Pourquoi je joue au poker ?</a></li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SansSavoir?a=KLhX9Px6"><img src="http://feeds.feedburner.com/~f/SansSavoir?i=KLhX9Px6" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sans-savoir.net/2007/09/28/ept-de-londre-table-tv-en-direct/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.sans-savoir.net/2007/09/28/ept-de-londre-table-tv-en-direct/</feedburner:origLink></item>
		<item>
		<title>Créer un serveur TCP multithread en Ruby</title>
		<link>http://feeds.feedburner.com/~r/SansSavoir/~3/156770503/</link>
		<comments>http://www.sans-savoir.net/2007/09/15/creer-un-serveur-tcp-mutlithread-en-ruby/#comments</comments>
		<pubDate>Sat, 15 Sep 2007 09:00:20 +0000</pubDate>
		<dc:creator>Yann Lugrin</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[développement]]></category>

		<category><![CDATA[serveur]]></category>

		<category><![CDATA[tcp]]></category>

		<category><![CDATA[thread]]></category>

		<guid isPermaLink="false">http://www.sans-savoir.net/2007/09/15/creer-un-serveur-tcp-mutlithread-en-ruby/</guid>
		<description><![CDATA[ Suite à une discussion avec un ami, qui voulait une estimation du coût de développement d&#8217;une petite application permettant de recevoir des données par une simple connections TCP ne demandant pas d&#8217;implémenter un protocole &#8220;complexe&#8221; dans le client, j&#8217;ai effectué quelques recherches sur l&#8217;implémentation d&#8217;un serveur TCP en Ruby.
Bien sur créer un serveur TCP [...]]]></description>
			<content:encoded><![CDATA[<p> Suite à une discussion avec un ami, qui voulait une estimation du coût de développement d&#8217;une petite application permettant de recevoir des données par une simple connections TCP ne demandant pas d&#8217;implémenter un protocole &#8220;complexe&#8221; dans le client, j&#8217;ai effectué quelques recherches sur l&#8217;implémentation d&#8217;un serveur TCP en <a href="http://www.ruby-lang.org/fr/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ruby-lang.org');">Ruby</a>.</p>
<p>Bien <span hptip="Vérifiez l'orthographe: “on” = &lt;i&gt;sur&lt;/i&gt;; “certain/sure” = &lt;i&gt;sûr&lt;/i&gt; (masc.); &lt;i&gt;sûre&lt;/i&gt; (fém.)." class="verupdated">sur</span> créer un serveur TCP acceptant des connections tient en 2 lignes :</p>
<p>
<textarea name="code" class="ruby:collapse" cols="60" rows="10"><br />
server = TCPServer.new('127.0.0.1', 10001)<br />
socket = server.accept<br />
</textarea>
</p>
<p>Mais  un serveur comme celui-ci est un peu limité (surtout quand il doit accepter 2000 connections toutes les deux minutes), la suite est logiquement de trouver une solution multithread permettant de recevoir plusieurs connections simultanément.  On trouve <a href="http://ruby-doc.org/stdlib/libdoc/gserver/rdoc/index.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/ruby-doc.org');">GServer</a> dans la libraire standard de Ruby qui permet d&#8217;implémenter ceci très facilement (exemple tiré de la documentation) :</p>
<p>
<textarea name="code" class="ruby:collapse" cols="60" rows="10"><br />
require 'gserver'</p>
<p>#<br />
# A server that returns the time in seconds since 1970.<br />
#<br />
class TimeServer &lt; GServer<br />
def initialize(port=10001, *args)<br />
super(port, *args)<br />
end</p>
<p>def serve(io)<br />
io.puts(Time.now.to_i)<br />
end<br />
end</p>
<p># Run the server with logging enabled (it's a separate thread).<br />
server = TimeServer.new<br />
server.audit = true                  # Turn logging on.<br />
server.start<br />
server.join</p>
<p># *** Now point your browser to http://localhost:10001 to see it working ***<br />
</textarea>
</p>
<p>Si cette solution fonctionne mais j&#8217;ai tout de même rencontré quelques problèmes, pour commencer la méthode &#8220;<span class="spellmod" title="Faute d'orthographe - suggestions : shuntons, soudons, soudions">shutdown</span>&#8221; ne fonctionne pas correctement et ce serveur crée un nouveau Thread à chaque connexion et le détruit une fois les traitements de celle-ci terminé. Et vu que j&#8217;étais intéressé par faire quelques expériences avec les Thread de Ruby j&#8217;ai décidé de créer mon propre serveur <span hptip="Faute d'orthographe - suggestions : n'attitraient, sous-titraient, m'ourdiraient, n'ourdiraient" class="spellmod">multithread</span> avec les spécifications suivantes :</p>
<ul>
<li>Thread persistants en attente de connexions.</li>
<li>Gracefull shutdown.</li>
</ul>
<p>Ce petit teste à finalement donnée naissance à une librairie complète, la classe TServer permet maintenant de créer un serveur <span class="spellmod" title="Faute d'orthographe - suggestions : n'attitraient, sous-titraient, m'ourdiraient, n'ourdiraient">multithread</span> pouvant être arrêté en douceur et dont les <span class="spellmod" title="Faute d'orthographe - suggestions : listée, listées, disthène, disthènes, listâmes, l'isthme, listerai, lycène, lycènes">listener</span> (Thread traitant les connections) sont persistants. Lors de l&#8217;initialisation il est possible de configuré le nombre maximum de connections que le serveur peut traiter en même temps et le nombre de <span class="spellmod" title="Faute d'orthographe - suggestions : listée, listées, disthène, disthènes, listâmes, l'isthme, listerai, lycène, lycènes">listener</span> qui doivent toujours être à l&#8217;écoute (il est possible de configurer cette variable à 0 pour avoir un comportement identique à GServer).</p>
<p>L&#8217;utilisation des Thread est intéressant, mais demande de faire attention à ce qu&#8217;on fait (le contenu <span class="ver" title="Si le sujet est pluriel, il faut modifier le verbe (la grande majorité des verbes pluriels terminent en &lt;i&gt;-ent&lt;/i&gt;), par ex.: &lt;i&gt;les gens dis&lt;b&gt;ent&lt;/b&gt;&lt;/i&gt;. A vous de vérifier!">des variables n&#8217;est</span> pas toujours celui auquel on s&#8217;attend) et à bien utiliser les outils de synchronisation à notre disposition (Monitor, Mutex, ConditionVariable, Queue). Faire des testes unitaires n&#8217;est pas évident puisqu&#8217;il est difficile de tester un serveur dont on ne connait pas l&#8217;état actuel. J&#8217;ai pu m&#8217;en sortir en contrôlant l&#8217;évolution du serveur avant de faire certains testes et en utilisant la classe Timeout pour m&#8217;assurer que son état change dans un temps raisonnable. Je ne suis pas complètement satisfait du résultat et j&#8217;ai probablement encore des choses à découvrir pour le faire correctement (pour l&#8217;instant je n&#8217;arrive pas a faire passer les testes sous Windows, apparemment ils attendent sur quelque chose lors d&#8217;un test et je doit tuer le process).</p>
<p>Mon prochain objectif est de remplacer le système de log (utilisation de la librairie <a href="http://ruby-doc.org/stdlib/libdoc/logger/rdoc/index.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/ruby-doc.org');">logger</a> et utilisations de diverses méthodes afin de permettre la collecte de stats plus complète comme dans GServer), mais également de permettre un reload du serveur sans interruption du service. En attendant, voici un exemple d&#8217;implémentation de TServer (tiré de la documentation) dont j&#8217;ai mis les sources et un <span class="spellmod" title="Faute d'orthographe - suggestions : hem, rem, gens, gent, ben, men, rems, sen, zen, je, dam, gis, jet, jeu, j'en, c'en, d'en, l'en, m'en, n'en, s'en, t'en">gem</span> à disposition <a href="http://dev.sans-savoir.net/trac/tserver" >ici </a>:</p>
<p>
<textarea name="code" class="ruby:collapse" cols="60" rows="10"><br />
require 'tserver'</p>
<p># A server can return<br />
class ExempleServer &lt; TServer<br />
def serve(conn)<br />
conn.each do |line|<br />
break if line =~ /(quit|exit|close)/</p>
<p>log '&gt; ' + line.chomp<br />
conn.puts Time.now.to_s + '&gt; ' + line.chomp<br />
end<br />
end<br />
end</p>
<p># Create the server with logging enabled (server activity is displayed<br />
# in console with received data)<br />
server = ExempleServer.new<br />
server.verbose = true</p>
<p># Shutdown the server when script is interupted<br />
Signal.trap('SIGINT') do<br />
server.shutdown<br />
end</p>
<p># Start the server (joined is set to true and the line wait on server<br />
# thread before continue, the default values of this parameter is set to<br />
# false, you can also use 'server.join' after server.start)<br />
server.start(true)</p>
<p># Now you can open a telnet connection to 127.0.0.1:10001 (telnet 127.0.0.1 10001)<br />
# and send text (use exit to close the connection)<br />
</textarea></p>

	<div class="main_feedback"><p><a href="http://www.sans-savoir.net/tag/ruby/" title="Ruby" rel="tag">Ruby</a>, <a href="http://www.sans-savoir.net/tag/developpement/" title="développement" rel="tag">développement</a>, <a href="http://www.sans-savoir.net/tag/serveur/" title="serveur" rel="tag">serveur</a>, <a href="http://www.sans-savoir.net/tag/tcp/" title="tcp" rel="tag">tcp</a>, <a href="http://www.sans-savoir.net/tag/thread/" title="thread" rel="tag">thread</a></p></div>

	<h4>Articles relatifs</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.sans-savoir.net/2007/10/11/tserver-020/" title="TServer 0.2.0 (11 octobre 2007)">TServer 0.2.0</a></li>
	<li><a href="http://www.sans-savoir.net/2007/06/07/mise-a-jour-de-mon-environnement-de-developpement/" title="Mise à jour de mon environnement de développement (7 juin 2007)">Mise à jour de mon environnement de développement</a></li>
	<li><a href="http://www.sans-savoir.net/2008/05/06/git-une-petite-introduction/" title="Git, une petite introduction (6 mai 2008)">Git, une petite introduction</a></li>
	<li><a href="http://www.sans-savoir.net/2006/04/05/variable-aleatoire-et-repartition-selon-la-loi-normale/" title="Variable aléatoire et répartition selon la loi normale (5 avril 2006)">Variable aléatoire et répartition selon la loi normale</a></li>
	<li><a href="http://www.sans-savoir.net/2007/03/07/site-officiel-de-ruby-en-francais/" title="Site officiel de Ruby en français (7 mars 2007)">Site officiel de Ruby en français</a></li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SansSavoir?a=khK9B06v"><img src="http://feeds.feedburner.com/~f/SansSavoir?i=khK9B06v" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.sans-savoir.net/2007/09/15/creer-un-serveur-tcp-mutlithread-en-ruby/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.sans-savoir.net/2007/09/15/creer-un-serveur-tcp-mutlithread-en-ruby/</feedburner:origLink></item>
	</channel>
</rss>
