<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hooba Studios &#187; Regardez-ça</title>
	<atom:link href="http://www.hooba.ca/blog/categorie/regardez-ca/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hooba.ca/blog</link>
	<description></description>
	<lastBuildDate>Sun, 11 Jul 2010 13:51:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Contrôle de version avec Mercurial</title>
		<link>http://www.hooba.ca/blog/2009/controle-de-version-avec-mercurial/</link>
		<comments>http://www.hooba.ca/blog/2009/controle-de-version-avec-mercurial/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 03:16:23 +0000</pubDate>
		<dc:creator>Antoine Leclair</dc:creator>
				<category><![CDATA[Environnement]]></category>
		<category><![CDATA[Regardez-ça]]></category>

		<guid isPermaLink="false">http://www.hooba.ca/blog/?p=361</guid>
		<description><![CDATA[Il y a quelques mois, je vous vantais les mérites de Subversion. Je trouve encore que Subversion est un très bon système de contrôle de version. Par contre, à la fin du mois d&#8217;avril, Google Code a annoncé qu&#8217;il allait désormais aussi supporter Mercurial.
Malgré le hype qu&#8217;il y avait pour Git, Google a tout de [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a quelques mois, <a href="http://www.hooba.ca/blog/2008/hebergement-gratuit-de-subversion/">je vous vantais les mérites de Subversion</a>. Je trouve encore que Subversion est un très bon système de contrôle de version. Par contre, à la fin du mois d&#8217;avril, <a href="http://google-code-updates.blogspot.com/2009/04/mercurial-support-for-project-hosting.html">Google Code a annoncé qu&#8217;il allait désormais aussi supporter Mercurial</a>.</p>
<p>Malgré le <em>hype</em> qu&#8217;il y avait pour <a href="http://git-scm.com/">Git</a>, Google a tout de même choisi <a href="http://www.selenic.com/mercurial/">Mercurial</a>, que je ne connaissais pas vraiment. J&#8217;ai donc décidé de l&#8217;essayer.</p>
<p><span id="more-361"></span></p>
<h3>Distribué vs centralisé</h3>
<p>Tout d&#8217;abord, Mercurial est comme Git, dans le sens où il s&#8217;agit d&#8217;un système de contrôle de version <strong>distribué</strong>. Subversion, lui, est centralisé.</p>
<p>Concrètement, Subversion a son <em>repository</em> à <strong>un</strong> endroit (générallement sur un serveur). Chaque utilisateur va chercher les fichiers (<em>checkout</em>), fait ses modifications et les renvoit au serveur (<em>commit</em>).</p>
<p>Mercurial, étant distribué, fonctionne de façon légèrement différente. Lorsqu&#8217;un utilisateur va chercher les fichiers, il va en fait faire une <strong>copie entière</strong> du <em>repository</em>. Le scénario classique est qu&#8217;un utilisateur va chercher les fichiers sur le serveur (<em>clone</em>), fait ses modifications et les &laquo;&nbsp;commet&nbsp;&raquo; (<em>commit</em>) <strong>seulement dans son <em>repository</em> local</strong>. Ensuite, il peut envoyer ses changement dans le <em>repository</em> d&#8217;où il a pris ses fichiers (<em>push</em>).</p>
<p>Avec Mercurial, on ne fait pas un <em>checkout</em> et un <em>commit</em>. On fait une branche (<em>clone</em>), et on la <em>merge</em> (<em>push</em>) après avoir fait un ou des changements (<em>commit</em>). Ça comporte plusieurs avantages pour certains types de projets, mais je n&#8217;en parlerai pas dans cet article.</p>
<h3>Dossier .hg vs dossiers .svn</h3>
<p>Subversion utilise plusieurs dossiers <code>.svn</code>. Lorsque vous travaillez dans votre <em>checkout</em>, il y a un dossier <code>.svn</code> par dossier ou sous-dossier de votre projet. Ils ne sont (supposément) pas très nuisibles.</p>
<p>Par contre, j&#8217;ai souvent fait face à un problème avec ces dossiers. Un client me dit qu&#8217;il veut avoir les fichiers pour montrer à son propre client. Il veut les avoir par FTP. La méthode idéale serait simplement de lui envoyer mon dossier de travail. Par contre, mon dossier de travail est infesté de <code>.svn</code>! Non seulement ces fichiers n&#8217;ont pas d&#8217;affaires là, mais imaginez le temps que ça prendrait mettre tout ces petits dossier en ligne! Croyez-moi, c&#8217;est trop long.</p>
<p>Je pourrais supprimer les dossiers <code>.svn</code> de tout mon projet avec un tour de passe-passe <em>bash</em>:</p>
<pre><code>find ./ -name ".svn" | xargs rm -Rf</code></pre>
<p>Mais faire ça &laquo;&nbsp;détruirait&nbsp;&raquo; mon <em>checkout</em>. J&#8217;aurais besoin de faire un autre <em>checkout</em> avant de continuer à travailler. Je pourrais faire une copie de mon dossier et faire cette commande sur ma copie. Mais copier tous ces sous-dossiers prend parfois bien du temps!</p>
<p>Je pourrais aussi (la solution que j&#8217;utilisais) faire un <code>export</code> à partir de mon <em>repository</em>. Il y a quelques points tannants avec cette méthode. Premièrement, Subversion est plutôt lent pour faire un <code>export</code> ou un <code>checkout</code>. Surtout que certains projets deviennent pesant assez rapidement avec les fichiers Flash et toutes les images (les PNG 24-bits ça monte vite!). Deuxièmement, lorsque le client me demande d&#8217;avoir les fichiers, j&#8217;ai parfois fait certaines modifications que je n&#8217;ai pas encore envoyées dans le <em>repository</em>. Je dois donc en premier faire un <code>commit</code> et ensuite je peux faire le <code>export</code>. Troisième chose, lorsque j&#8217;ai terminé d&#8217;envoyer les fichiers à mon client, je dois supprimer le dossier que je viens de créer. Pas grand chose vous direz, mais c&#8217;est quand même une étape de plus, qui n&#8217;a pas sa place à mon avis.</p>
<p>Mercurial, lui, ne parsème pas ses dossiers un peu partout au travers du répertoire de travail. Il n&#8217;y a qu&#8217;un dossier <code>.hg</code> à la racine du <em>repository</em> (rappelez-vous que le dossier de travail est un <em>repository</em> en soit). Donc, tous les problèmes énoncés ci-haut disparaissent. Je peux directement envoyer mon répertoire de travail, en prenant la peine de désélectionner le dossier <code>.hg</code> (et les autres fichiers, s&#8217;il y a lieu, comme <code>.hgignore</code>).</p>
<h3>Commit local</h3>
<p>Avec Subversion, lorsqu&#8217;on fait un <code>commit</code>, on envoie les modifications au serveur, car c&#8217;est lui qui contient le <em>repository</em>. Avec Mercurial, lorsqu&#8217;on fait un <code>commit</code>, il n&#8217;y a aucune utilisation du réseau. Le <em>repository</em> est local. On peut donc faire plusieurs <code>commit</code> sans envoyer les modifications au <em>repository</em> où on a pris les fichiers. Lorsqu&#8217;on est prêt, on <code>push</code> les <code>commit</code> qu&#8217;on a fait.</p>
<h3>Vitesse</h3>
<p>Je ne peux pas garantir que Mercurial est plus rapide que Subversion, mais je dois avouer que je trouve l&#8217;expérience beaucoup plus fluide avec Mercurial qu&#8217;avec Subversion.</p>
<h3>Facilité</h3>
<p>J&#8217;avais jeté un oeil rapidement à Git il y a quelque temps, mais je ne m&#8217;y était pas attardé. La première impression que j&#8217;avais eu était que ça semblait compliqué. Comme les projets sur lesquels je travaille ne profitent pas vraiment du fait que ce soit extrêmement facile de brancher-<em>merger</em> avec les systèmes distribués, j&#8217;avais simplement laissé Git de côté. Je n&#8217;étais peut-être pas dû pour changer de système à ce moment&hellip;</p>
<p>Par contre, lorsque j&#8217;ai essayé (et maintenant adopté) Mercurial, j&#8217;ai eu une toute autre impression! Il est facile à comprendre et, à mon avis, bien conçu. La courbe d&#8217;apprentissage est très légère.</p>
<h3>Ajout de fichiers</h3>
<p>Avec Subversion, il faut ajouter les fichiers un par un. Encore une fois, ce serait sûrement possible de faire un tour de passe-passe avec <code>grep</code>, mais ça serait plutôt tannant. Si on crée 8 nouveau fichiers, il faut ajouter les 8 fichiers un après l&#8217;autre.</p>
<p>Avec Mercurial, la même commande (<code>add</code>) ajoute tous les nouveaux fichiers. Pas de perte de temps. Si on veut ne pas ajouter certains fichiers (exemple: ceux se terminant avec ~), il suffit de se faire un fichier <code>.hgignore</code> dans la racine de notre projet, et le tour est joué.</p>
<h3>Hébergement</h3>
<p>Premièrement, de la façon dont est conçu Mercurial, il est beaucoup plus facile de ne simplement pas utiliser d&#8217;hébergeur. On se fait un <em>repository</em> avec <code>hg init mon_projet</code> et on peut déjà commencer à travailler dans le dossier! Pas besoin de faire un <code>checkout</code> et de travailler dans le dossier du <em>checkout</em>.</p>
<p>Ensuite, comme Subversion, on peut simplement fonctionner par SSH (si vous avez accès à un autre ordinateur/serveur par SSH). <code>hg push ssh://user@example.com/chemin/vers/repo</code>. C&#8217;est simple et rapide.</p>
<p>Vous pouvez aussi configurer Mercurial pour fonctionner par HTTP si votre projet a un peu d&#8217;envergure. Par contre, ce n&#8217;est probablement pas la solution idéale si vous faites parti d&#8217;une petite compagnie qui travaille sur plusieurs petits projets.</p>
<p>Sinon, il y a un certain nombre d&#8217;hébergeur. Le plus gros est probablement <a href="http://bitbucket.org">bitbucket</a>. Ils offrent l&#8217;hébergement gratuit pour les projets <code>open source</code>, mais aussi de l&#8217;hébergement privé. Ils sont un peu le <a href="http://github.com/">GitHub</a> de Mercurial.</p>
<h3>Essayez-le!</h3>
<p>Tout ça pour vous dire que ça vaut la peine de l&#8217;essayer! Si vous avez peur du <em>command-line</em>, je crois qu&#8217;il y a même des GUI plutôt bien faits pour Windows, OS X et Linux.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hooba.ca/blog/2009/controle-de-version-avec-mercurial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les PNG transparents dans IE6, c&#8217;est vrai cette fois</title>
		<link>http://www.hooba.ca/blog/2008/les-png-transparents-dans-ie6-cest-vrai-cette-fois/</link>
		<comments>http://www.hooba.ca/blog/2008/les-png-transparents-dans-ie6-cest-vrai-cette-fois/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 16:57:05 +0000</pubDate>
		<dc:creator>Antoine Leclair</dc:creator>
				<category><![CDATA[Regardez-ça]]></category>

		<guid isPermaLink="false">http://www.hooba.ca/blog/?p=249</guid>
		<description><![CDATA[Au début du mois de décembre, j&#8217;avais vu dans un blog (CSS-Tricks si je me souviens bien) qu&#8217;il y avait un nouveau fix pour les PNG transparents dans Internet Explorer 6. Comme pour les autres fixes, je me suis dit que j&#8217;allais l&#8217;essayer, pour voir s&#8217;il fonctionnait bien.
Avec tous les autres, il y a toujours [...]]]></description>
			<content:encoded><![CDATA[<p>Au début du mois de décembre, j&#8217;avais vu dans un blog (<a href="http://css-tricks.com/">CSS-Tricks</a> si je me souviens bien) qu&#8217;il y avait un nouveau fix pour les PNG transparents dans Internet Explorer 6. Comme pour les autres fixes, je me suis dit que j&#8217;allais l&#8217;essayer, pour voir s&#8217;il fonctionnait bien.</p>
<p>Avec tous les autres, il y a toujours plusieurs restrictions ou bugs. Mais c&#8217;est une chose du passé avec <a href="http://www.dillerdesign.com/experiment/DD_belatedPNG/">DD_belatedPNG</a>. Okay, le nom est affreux (et leur page aussi), mais je vous jure, essayez-le! Le seul petit bug que j&#8217;ai pu y trouver, c&#8217;est que si le PNG en <code>background-image</code> est plus grand que l&#8217;élément concerné et que ça dépasse du <em>viewport</em> du navigateur, il va y avoir des barres de défilement qui vont apparaître.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hooba.ca/blog/2008/les-png-transparents-dans-ie6-cest-vrai-cette-fois/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
