<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>6502.fr</title>
	
	<link>http://www.6502.fr</link>
	<description>L'Avant-dernier cri de la technologie</description>
	<lastBuildDate>Sun, 08 Apr 2012 20:10:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/6502" /><feedburner:info uri="6502" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Comment configurer DNSSEC pour Bind (named)</title>
		<link>http://feedproxy.google.com/~r/6502/~3/OQoEJj9ADI8/442</link>
		<comments>http://www.6502.fr/configurer-dnssec-pour-bind/442#comments</comments>
		<pubDate>Sun, 08 Apr 2012 20:10:05 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Administration de serveurs]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Bind]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[DNSSEC]]></category>
		<category><![CDATA[named]]></category>

		<guid isPermaLink="false">http://www.6502.fr/?p=442</guid>
		<description><![CDATA[DNSSEC est une extension du protocole DNS qui sécurise la résolution de noms de domaine. Il y a une ébauche d&#8217;explication en français sur Wikipedia, mais pour des infos plus consistantes rendez-vous sur la page en anglais. La configuration est un peu compliquée ; il faut créer une clef pour signer la zone (Zone Signing [...]]]></description>
			<content:encoded><![CDATA[<p>DNSSEC est une extension du protocole DNS qui sécurise la résolution de noms de domaine. Il y a une ébauche d&#8217;explication en français sur <a href="http://fr.wikipedia.org/wiki/Domain_Name_System_Security_Extensions" title="DNSSEC sur Wikipedia en français">Wikipedia</a>, mais pour des infos plus consistantes rendez-vous sur la <a href="http://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions" title="DNSSEC sur Wikipedia en anglais">page en anglais</a>.</p>

<p>La configuration est un peu compliquée ; il faut créer une clef pour signer la zone (<em>Zone Signing Key</em>, ZSK), une clef pour signer la clef (<em>Key Signing Key</em>, KSK), ajouter ces clefs au fichier de zone (<em>Zone file</em>). Comme ce fichier est modifié, il faut incrémenter son numéro de série (<em>Serial</em>).</p>

<p>Ensuite il faut signer la zone, configurer Bind pour utiliser le fichier signé au lieu du fichier original, relancer Bind et&#8230; attendre.</p>

<p>Quand le ou les DNS secondaires sont à jour, il faut déclarer la clef <strong>KSK</strong> à la zone parent, ce qui se fait généralement chez le registrar.</p>

<p>Voici un script qui effectue la plupart des opérations, mais s&#8217;arrête juste avant la mise en œuvre.</p>

<p>Il ouvre <em>named.conf</em> dans <strong>Vim</strong> à la ligne à mettre à jour éventuellement. Le fichier signé a le même nom que le fichier d&#8217;origine suivi de <strong>.signed</strong>.</p>

<p>Le script est à vérifier et à adapter. En particulier, les utilitaires Unix/Linux peuvent différer d&#8217;un système à l&#8217;autre et certaines options peuvent ne pas exister. <strong>ZSU</strong> est un <a href="http://search.cpan.org/~azs/zsu-1.20/zsu" title="zsu - update serial numbers in DNS zone files">script <em>Perl</em></a> qui incrémente le numéro de série.</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #007800;">DOMAIN</span>=<span style="color: #000000;">6502</span>.fr
<span style="color: #007800;">ZONEDIR</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>named<span style="color: #000000; font-weight: bold;">/</span>run-root<span style="color: #000000; font-weight: bold;">/</span>var
<span style="color: #007800;">ZONEFILE</span>=<span style="color: #007800;">$DOMAIN</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># All files must be in Zone directory</span>
<span style="color: #666666; font-style: italic;"># Beware, named is chrooted</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$ZONEDIR</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># ZSU - update serial numbers in DNS zone files</span>
<span style="color: #666666; font-style: italic;"># http://search.cpan.org/~azs/zsu-1.20/zsu</span>
<span style="color: #007800;">ZSU</span>=<span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>zsu
&nbsp;
<span style="color: #666666; font-style: italic;"># Generate ZSK file</span>
<span style="color: #007800;">ZSK</span>=<span style="color: #000000; font-weight: bold;">`</span>dnssec-keygen <span style="color: #660033;">-a</span> RSASHA1 <span style="color: #660033;">-b</span> <span style="color: #000000;">1024</span> <span style="color: #660033;">-r</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>urandom <span style="color: #660033;">-n</span> ZONE <span style="color: #007800;">$DOMAIN</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">ZSK_PUBLIC</span>=<span style="color: #800000;">${ZSK}</span>.key
&nbsp;
<span style="color: #666666; font-style: italic;"># Generate KSK file</span>
<span style="color: #007800;">KSK</span>=<span style="color: #000000; font-weight: bold;">`</span>dnssec-keygen <span style="color: #660033;">-a</span> RSASHA1 <span style="color: #660033;">-b</span> <span style="color: #000000;">2048</span> <span style="color: #660033;">-r</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>urandom <span style="color: #660033;">-n</span> ZONE <span style="color: #660033;">-f</span> KSK <span style="color: #007800;">$DOMAIN</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">ID</span>=<span style="color: #800000;">${KSK/?*+}</span>
<span style="color: #007800;">KSK_PUBLIC</span>=<span style="color: #800000;">${KSK}</span>.key
<span style="color: #007800;">FLAG</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $4}'</span> <span style="color: #007800;">$KSK_PUBLIC</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">ALGO</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $6}'</span> <span style="color: #007800;">$KSK_PUBLIC</span><span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Add keys to zone file after removing old keys</span>
<span style="color: #c20cb9; font-weight: bold;">sed</span> -i.bak <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;/K<span style="color: #007800;">${DOMAIN}</span>/d&quot;</span> <span style="color: #007800;">$ZONEFILE</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\$</span>include <span style="color: #007800;">$ZSK_PUBLIC</span>&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$ZONEFILE</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\$</span>include <span style="color: #007800;">$KSK_PUBLIC</span>&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$ZONEFILE</span>
<span style="color: #666666; font-style: italic;"># Increment Serial</span>
<span style="color: #007800;">$ZSU</span> <span style="color: #007800;">$ZONEFILE</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Sign the zone, validity is 1 year (31556926 seconds)</span>
dnssec-signzone <span style="color: #660033;">-e</span> now+<span style="color: #000000;">31556926</span> <span style="color: #660033;">-p</span> <span style="color: #660033;">-g</span> <span style="color: #660033;">-k</span> <span style="color: #007800;">$KSK_PUBLIC</span> <span style="color: #660033;">-o</span> <span style="color: #007800;">$DOMAIN</span> <span style="color: #007800;">$ZONEFILE</span> <span style="color: #007800;">$ZSK_PUBLIC</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Edit named.conf to use ZONEFILE.signed</span>
<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>named.conf <span style="color: #ff0000;">&quot;+/file .*<span style="color: #007800;">$DOMAIN</span>&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Print info to configure the parent zone</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Id:    <span style="color: #007800;">$ID</span>&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Flag:    <span style="color: #007800;">$FLAG</span>&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Algorithm: <span style="color: #007800;">$ALGO</span>&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Public key:&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span><span style="color: #ff0000;">&quot; &quot;</span> <span style="color: #660033;">-f7-</span> <span style="color: #007800;">$KSK_PUBLIC</span></pre></div></div>


<h2>À faire à la main</h2>

<ul>
<li>Relancer bind</li>
</ul>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>named restart</pre></div></div>


<ul>
<li>Déclarer la clef dans la zone parent (le script imprime les paramètres à déclarer).</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/6502?a=OQoEJj9ADI8:WdbTvIbaiFU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/6502?i=OQoEJj9ADI8:WdbTvIbaiFU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/6502?a=OQoEJj9ADI8:WdbTvIbaiFU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/6502?i=OQoEJj9ADI8:WdbTvIbaiFU:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/6502/~4/OQoEJj9ADI8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.6502.fr/configurer-dnssec-pour-bind/442/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.6502.fr/configurer-dnssec-pour-bind/442</feedburner:origLink></item>
		<item>
		<title>Google maps prend en compte la circulation dans ses itinéraires</title>
		<link>http://feedproxy.google.com/~r/6502/~3/qDR7C_S6Wyc/437</link>
		<comments>http://www.6502.fr/google-maps-prend-en-compte-la-circulation-dans-ses-itineraires/437#comments</comments>
		<pubDate>Sat, 07 Apr 2012 11:07:43 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life hacks]]></category>

		<guid isPermaLink="false">http://www.6502.fr/?p=437</guid>
		<description><![CDATA[En mode itinéraire, Google Maps classe ses suggestions par temps de parcours croissant — temps calculé sans circulation. Mais depuis le 29 mars 2012, le temps de parcours estimé avec circulation est affiché, avec une puce verte, jaune ou rouge qui indique la dégradation par rapport au temps initial.]]></description>
			<content:encoded><![CDATA[<p>En mode itinéraire, Google Maps classe ses suggestions par temps de parcours croissant — temps calculé sans circulation. Mais depuis le 29 mars 2012, le temps de parcours estimé avec circulation est affiché, avec une puce verte, jaune ou rouge qui indique la dégradation par rapport au temps initial.</p>

<p><img src="/wp-content/uploads/2012/04/Google-maps-with-traffic.gif" alt="Du Père Lachaise à Charles de Gaulle" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/6502?a=qDR7C_S6Wyc:fc81eX9M2R8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/6502?i=qDR7C_S6Wyc:fc81eX9M2R8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/6502?a=qDR7C_S6Wyc:fc81eX9M2R8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/6502?i=qDR7C_S6Wyc:fc81eX9M2R8:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/6502/~4/qDR7C_S6Wyc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.6502.fr/google-maps-prend-en-compte-la-circulation-dans-ses-itineraires/437/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.6502.fr/google-maps-prend-en-compte-la-circulation-dans-ses-itineraires/437</feedburner:origLink></item>
		<item>
		<title>Comment faire le ménage sous Subversion</title>
		<link>http://feedproxy.google.com/~r/6502/~3/v-65aZhNfSM/381</link>
		<comments>http://www.6502.fr/comment-faire-le-menage-sous-subversion/381#comments</comments>
		<pubDate>Thu, 27 Jan 2011 14:23:19 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[ligne de commande]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.6502.fr/?p=381</guid>
		<description><![CDATA[Vous avez besoin de faire du ménage dans votre projet géré sous Subversion ? Si vous avez quelques fichiers à supprimer, la commande à passer est simple : $ svn rm admin/images/graphs/THUMB~JT.DBE D admin/images/graphs/THUMB~JT.DBE C&#8217;est fastidieux au-delà de quelques fichiers. Dans ce cas détruisez les fichiers par la méthode qui vous convient (par exemple une [...]]]></description>
			<content:encoded><![CDATA[<p>Vous avez besoin de faire du ménage dans votre projet géré sous <a href="http://subversion.apache.org/" title="Apache Subversion">Subversion</a> ? Si vous avez quelques fichiers à supprimer, la commande à passer est simple :</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>THUMB~JT.DBE
D         admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>THUMB~JT.DBE</pre></div></div>


<p>C&#8217;est fastidieux au-delà de quelques fichiers. Dans ce cas détruisez les fichiers par la méthode qui vous convient (par exemple une synchronisation avec <a href="http://www.scootersoftware.com/" title="BeyondCompare">BeyondCompare</a>). Ensuite, un <code>svn status</code> vous donnera l&#8217;état des lieux.</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">svn</span> st
D       admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>THUMB~JT.DBE
<span style="color: #000000; font-weight: bold;">!</span>       admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>Thumbs.db
<span style="color: #000000; font-weight: bold;">!</span>       admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>dummy
<span style="color: #000000; font-weight: bold;">!</span>       admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>.cvsignore
M       images<span style="color: #000000; font-weight: bold;">/</span>ramey-noir.jpg</pre></div></div>


<p>Les fichiers manquants sont marqués par un <em>bang</em> (un point d&#8217;exclamation, en <em>hacker</em>). Le fichier que nous avons déjà détruit est signalé par un <strong>D</strong>, les fichiers modifiés par un <strong>M</strong>. Nous allons filtrer les lignes qui commencent par <strong>!</strong> (^! pour grep) et récupérer le nom de fichier, qui est le deuxième élément de la ligne ($2 pour <em>awk</em>).</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">svn</span> st<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">'^!'</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $2}'</span>
admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>Thumbs.db
admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>dummy
admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>.cvsignore</pre></div></div>


<p>Plutôt que de les regarder, nous allons les supprimer du repository.</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">svn</span> st<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">'^!'</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $2}'</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">rm</span>
D         admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>Thumbs.db
D         admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>dummy
D         admin<span style="color: #000000; font-weight: bold;">/</span>images<span style="color: #000000; font-weight: bold;">/</span>graphs<span style="color: #000000; font-weight: bold;">/</span>.cvsignore</pre></div></div>


<p>Finalement, on commite le tout :</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">svn</span> ci <span style="color: #660033;">-m</span><span style="color: #ff0000;">&quot;Ménage fait !&quot;</span></pre></div></div>


<p>Et hop !</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/6502?a=v-65aZhNfSM:B0-x9qqfjss:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/6502?i=v-65aZhNfSM:B0-x9qqfjss:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/6502?a=v-65aZhNfSM:B0-x9qqfjss:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/6502?i=v-65aZhNfSM:B0-x9qqfjss:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/6502/~4/v-65aZhNfSM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.6502.fr/comment-faire-le-menage-sous-subversion/381/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.6502.fr/comment-faire-le-menage-sous-subversion/381</feedburner:origLink></item>
		<item>
		<title>Installer mcrypt pour PHP sur Mac OS X Snow Leopard</title>
		<link>http://feedproxy.google.com/~r/6502/~3/w9RBz9p_RSQ/335</link>
		<comments>http://www.6502.fr/installer-mcrypt-pour-php-sur-mac-os-x-snow-leopard/335#comments</comments>
		<pubDate>Sat, 18 Dec 2010 13:10:52 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Outils]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[mcrypt]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Snow Leopard]]></category>

		<guid isPermaLink="false">http://www.6502.fr/?p=335</guid>
		<description><![CDATA[Mcrypt est une librairie qui remplace crypt. Voici comment l&#8217;installer sur Mac OS X Snow Leopard. Vous aurez besoin de : Xcode (disponible sur le DVD d&#8217;installation de Snow Leopard) Libmcrypt version 2.5.8, téléchargeable ici Le code source de votre version de PHP, par exemple 5.3.3, téléchargeable ici Décomprimez libmcrypt et passez les commandes suivantes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mcrypt.sourceforge.net/" title="MCrypt [en anglais]">Mcrypt</a> est une librairie qui remplace <em>crypt</em>. Voici comment l&#8217;installer sur <strong>Mac OS X Snow Leopard</strong>.</p>

<p>Vous aurez besoin de :</p>

<ul>
<li>Xcode (disponible sur le DVD d&#8217;installation de <strong>Snow Leopard</strong>)</li>
<li>Libmcrypt version 2.5.8, téléchargeable <a href="http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/" title="/Libmcrypt/2.5.8 at SourceForge.net">ici</a></li>
<li>Le code source de votre version de PHP, par exemple 5.3.3, téléchargeable <a href="http://fr.php.net/get/php-5.3.3.tar.bz2/from/a/mirror" title="PHP 5.3.3 sur php.net">ici</a></li>
</ul>

<p>Décomprimez libmcrypt et passez les commandes suivantes :</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> libmcrypt-2.5.8
$ <span style="color: #007800;">MACOSX_DEPLOYMENT_TARGET</span>=<span style="color: #000000;">10.6</span> <span style="color: #007800;">CFLAGS</span>=<span style="color: #ff0000;">'-O3 -fno-common -arch i386 -arch x86_64'</span> <span style="color: #007800;">LDFLAGS</span>=<span style="color: #ff0000;">'-O3 -arch i386 -arch x86_64'</span> <span style="color: #007800;">CXXFLAGS</span>=<span style="color: #ff0000;">'-O3 -fno-common -arch i386 -arch x86_64'</span> .<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--disable-dependency-tracking</span>
$ <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #660033;">-j6</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>


<p>Terminé pour mcrypt, passons à PHP.</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> php-5.3.3
$ <span style="color: #7a0874; font-weight: bold;">cd</span> ext<span style="color: #000000; font-weight: bold;">/</span>mcrypt
$ phpize
$ <span style="color: #007800;">MACOSX_DEPLOYMENT_TARGET</span>=<span style="color: #000000;">10.6</span> <span style="color: #007800;">CFLAGS</span>=<span style="color: #ff0000;">'-O3 -fno-common -arch i386 -arch x86_64'</span> <span style="color: #007800;">LDFLAGS</span>=<span style="color: #ff0000;">'-O3 -arch i386 -arch x86_64'</span> <span style="color: #007800;">CXXFLAGS</span>=<span style="color: #ff0000;">'-O3 -fno-common -arch i386 -arch x86_64'</span> .<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--with-php-config</span>=<span style="color: #000000; font-weight: bold;">/</span>Developer<span style="color: #000000; font-weight: bold;">/</span>SDKs<span style="color: #000000; font-weight: bold;">/</span>MacOSX10.6.sdk<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php-config
$ <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #660033;">-j6</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>


<p>Vérifiez dans <em>php.ini</em> que <code>enable_dl = On</code>. Déclarez <em>mcrypt</em>  dans la section <strong>Dynamic Extensions</strong> en ajoutant <code>extension=mcrypt.so</code>.</p>

<p>Relancez Apache, vous pouvez maintenant vérifier avec <code>phpinfo()</code> que <em>mcrypt</em> est bien disponible.</p>

<p><img src="/wp-content/uploads/2010/12/phpinfo_mcrypt-480x260.jpg" alt="mcrypt sous phpinfo" /></p>

<p>Application exemple : installation de Prestashop, avant :</p>

<p><img src="/wp-content/uploads/2010/12/prestashop_mcrypt_off.gif" alt="Installation de Prestashop sans mcrypt" /></p>

<p>Après :</p>

<p><img src="/wp-content/uploads/2010/12/prestashop_mcrypt_on.gif" alt="Installation de Prestashop avec mcrypt" /></p>

<p>Et hop !</p>

<p>Merci à <a href="http://michaelgracie.com/2009/09/23/plugging-mcrypt-into-php-on-mac-os-x-snow-leopard-10.6.1/" title="Plugging mcrypt into PHP, on Mac OS X Snow Leopard 10.6.1 [en anglais]">Michael Gracie</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/6502?a=w9RBz9p_RSQ:PC5zmKua1WI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/6502?i=w9RBz9p_RSQ:PC5zmKua1WI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/6502?a=w9RBz9p_RSQ:PC5zmKua1WI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/6502?i=w9RBz9p_RSQ:PC5zmKua1WI:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/6502/~4/w9RBz9p_RSQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.6502.fr/installer-mcrypt-pour-php-sur-mac-os-x-snow-leopard/335/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.6502.fr/installer-mcrypt-pour-php-sur-mac-os-x-snow-leopard/335</feedburner:origLink></item>
		<item>
		<title>Éditer les gems avec gemedit</title>
		<link>http://feedproxy.google.com/~r/6502/~3/ZEIaTUnRi-w/289</link>
		<comments>http://www.6502.fr/editer-les-gems-avec-gemedit/289#comments</comments>
		<pubDate>Sun, 17 Oct 2010 13:03:59 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[Gem]]></category>

		<guid isPermaLink="false">http://www.6502.fr/?p=289</guid>
		<description><![CDATA[La gem que vous utilisez a un comportement inattendu ? Allez lire le code ! Mais il est parfois fastidieux de trouver où est la gem, et gemedit facilite la vie en ajoutant une commande edit à gem. $ sudo gem install gemedit $ gem edit gemedit Vous pouvez indiquer l&#8217;éditeur que vous voulez lancer [...]]]></description>
			<content:encoded><![CDATA[<p>La <em>gem</em> que vous utilisez a un comportement inattendu ? <strong>Allez lire le code !</strong></p>

<p>Mais il est parfois fastidieux de trouver où est la <em>gem</em>, et <a href="http://gemedit.rubyforge.org/" title="[en anglais] Warning, colour attack!">gemedit</a> facilite la vie en ajoutant une commande <em>edit</em> à <em>gem</em>.</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> gemedit
$ gem edit gemedit</pre></div></div>


<p>Vous pouvez indiquer l&#8217;éditeur que vous voulez lancer grâce aux variables d&#8217;environnement $GEMEDITOR, $VISUAL ou $EDITOR. Pour utiliser TextMate, ajoutez cette ligne dans votre <em>.profile</em> :</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">GEMEDITOR</span>=mate</pre></div></div>


<p><img src="/wp-content/uploads/2010/10/TextMate.gif" alt="Gem gemedit opened in TextMate" /></p>

<p>Ou pour Xcode :</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">GEMEDITOR</span>=xed</pre></div></div>


<p>C&#8217;est tout de même plus rapide de taper <code>gem edit gemedit</code> que
<code>mate /usr/local/lib/ruby/gems/1.8/gems/gemedit-0.9.0</code> !</p>

<p><a href="http://gemedit.rubyforge.org/" title="[en anglais] Warning, colour attack!"><em>GEM Editor</em></a> via <a href="http://railstips.org/blog/archives/2010/10/14/stop-googling/" title="[en anglais]"><em>Stop Googling</em> (John Nunemaker)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/6502?a=ZEIaTUnRi-w:QJEUdorkbHc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/6502?i=ZEIaTUnRi-w:QJEUdorkbHc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/6502?a=ZEIaTUnRi-w:QJEUdorkbHc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/6502?i=ZEIaTUnRi-w:QJEUdorkbHc:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/6502/~4/ZEIaTUnRi-w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.6502.fr/editer-les-gems-avec-gemedit/289/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.6502.fr/editer-les-gems-avec-gemedit/289</feedburner:origLink></item>
		<item>
		<title>Les ressources dans l’architecture REST : la source</title>
		<link>http://feedproxy.google.com/~r/6502/~3/nCsXaLoWpBc/200</link>
		<comments>http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200#comments</comments>
		<pubDate>Wed, 01 Sep 2010 15:33:24 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Roy Fielding]]></category>

		<guid isPermaLink="false">http://www.6502.fr/?p=200</guid>
		<description><![CDATA[Traduction de la section « Resources and Resource Identifiers » de la thèse de Roy T. Fielding. 5.2.1.1 Ressources et identificateurs de ressources La ressource est le fondement de l&#8217;abstraction de l&#8217;information dans REST. Toute information qui peut être nommée peut être une ressource : un document ou une image, un service momentané (par exemple [...]]]></description>
			<content:encoded><![CDATA[<p>Traduction de la section « <a title="5.2.1.1 Resources and Resource Identifiers [en anglais]" href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_2_1_1">Resources and Resource Identifiers</a> » de la thèse de Roy T. Fielding.</p>

<h3>5.2.1.1 Ressources et identificateurs de ressources</h3>

<p>La <em>ressource</em> est le fondement de l&#8217;abstraction de l&#8217;information dans REST. Toute information qui peut être nommée peut être une ressource : un document ou une image, un service momentané (par exemple « le temps à Los Angeles aujourd&#8217;hui »), un ensemble d&#8217;autres ressources, un objet non virtuel (par exemple une personne), etc. Autrement dit, tout concept pouvant être la cible d&#8217;un lien hypertexte répond nécessairement à la définition de ressource. Une ressource est la référence conceptuelle<sup><a href="http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200#footnote_0_200" id="identifier_0_200" class="footnote-link footnote-identifier-link" title="a conceptual mapping">1</a></sup> vers un ensemble d&#8217;entités, pas une entité qui correspondrait à la référence à un instant donné.</p>

<p>Plus précisément, une ressource <em>R</em> est une fonction d&#8217;appartenance<sup><a href="http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200#footnote_1_200" id="identifier_1_200" class="footnote-link footnote-identifier-link" title="membership function">2</a></sup> <em>M</em><sub><small>R</small></sub><em>(t)</em>, qui au temps <em>t</em> associe un ensemble d&#8217;entités, ou de valeurs, qui sont équivalentes. Les valeurs de cet ensemble peuvent être des représentation de ressources<sup><a href="http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200#footnote_2_200" id="identifier_2_200" class="footnote-link footnote-identifier-link" title="resources representations">3</a></sup> ou des identifiants de ressources<sup><a href="http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200#footnote_3_200" id="identifier_3_200" class="footnote-link footnote-identifier-link" title="resource identifiers">4</a></sup>. Une ressource peut être associée à l&#8217;ensemble vide, ce qui permet de faire référence à un concept avant qu&#8217;aucune réalisation de ce concept n&#8217;existe — une notion étrangère à la plupart des systèmes hypertextes avant le Web. Certaines ressources sont statiques dans le sens où, examinées à tout moment après leur création, elles correspondent toujours au même ensemble de valeurs. D&#8217;autres ont un degré de variabilité élevé dans le temps. La seule chose qui doit être statique pour une ressource est la sémantique de la référence, puisque la sémantique est ce qui distingue une ressource d&#8217;une autre.</p>

<p>Par exemple, la « version préférée de l&#8217;auteur » d&#8217;une publication académique est une référence dont la valeur varie dans le temps, alors que la « version publiée dans les actes du colloque X » est statique. Ce sont deux ressources distinctes, même si elles font référence à la même valeur à un instant donné. La distinction est nécessaire pour que les deux ressources puissent être identifiées et classées indépendamment. Un exemple similaire dans le domaine de l&#8217;ingénierie logicielle est l&#8217;identification distincte d&#8217;un fichier de code source dans un système de gestion de versions, comme la « dernière révision », la « révision numéro 1.2.7 » ou la « révision incluse dans la version Orange ».</p>

<p>Cette définition abstraite d&#8217;une ressource rend possible des fonctions essentielles de l&#8217;architecture du Web. Premièrement, elle généralise en englobant plusieurs sources d&#8217;information sans les distinguer artificiellement par type ou par implémentation. Deuxièmement, elle autorise l&#8217;attachement tardif<sup><a href="http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200#footnote_4_200" id="identifier_4_200" class="footnote-link footnote-identifier-link" title="late binding">5</a></sup> de la référence à une représentation, ce qui rend possible une négociation de contenu<sup><a href="http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200#footnote_5_200" id="identifier_5_200" class="footnote-link footnote-identifier-link" title="content negociation">6</a></sup> basée sur les caractéristiques de la requête. Finalement, elle permet à l&#8217;auteur de référencer le concept plutôt qu&#8217;une représentation singulière de ce concept, supprimant ainsi le besoin de modifier tous les liens existants à chaque fois que la représentation change (en supposant que l&#8217;auteur a utilisé les bons identificateurs).</p>

<p>REST utilise un identificateur de ressource<sup><a href="http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200#footnote_6_200" id="identifier_6_200" class="footnote-link footnote-identifier-link" title="resource identifier">7</a></sup> pour identifier la ressource impliquée dans une interaction entre composants. Les connecteurs REST offrent une interface générique pour atteindre et manipuler l&#8217;ensemble de valeurs d&#8217;une ressource, indépendamment de la manière dont la fonction d&#8217;appartenance est définie ou du logiciel qui traite la requête. L&#8217;autorité de nommage qui a affecté l&#8217;identificateur de ressource, rendant possible le référencement de celle-ci, a la responsabilité du maintien de la validité sémantique de la référence<sup><a href="http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200#footnote_7_200" id="identifier_7_200" class="footnote-link footnote-identifier-link" title="mapping">8</a></sup> dans le temps (c&#8217;est-à-dire de s&#8217;assurer que la fonction d&#8217;appartenance ne change pas).</p>

<p>Les systèmes hypertextes traditionnels, qui opèrent typiquement en environnement clos ou local, utilisent des nœuds uniques ou des identificateurs de documents qui changent à chaque fois que l&#8217;information change, s&#8217;appuyant sur des serveurs de liens pour maintenir la référence séparément du contenu. Comme les serveurs de liens centralisés sont un anathème pour les exigences pluri-organisationnelles et à échelle gigantesque du Web, REST se repose au contraire sur l&#8217;auteur pour choisir l&#8217;identificateur de ressource qui convient le mieux à la nature du concept identifié. Naturellement, la qualité d&#8217;un identificateur est souvent proportionnelle à l&#8217;argent dépensé pour maintenir sa validité, ce qui conduit aux liens brisés, au fur et à mesure de la disparition ou du déplacement d&#8217;information éphémère ou peu maintenue.</p>
<h4>Notes</h4><ol class="footnotes"><li id="footnote_0_200" class="footnote"><em>a conceptual mapping</em></li><li id="footnote_1_200" class="footnote"><em>membership function</em></li><li id="footnote_2_200" class="footnote"><em>resources representations</em></li><li id="footnote_3_200" class="footnote"><em>resource identifiers</em></li><li id="footnote_4_200" class="footnote"><em>late binding</em></li><li id="footnote_5_200" class="footnote"><em>content negociation</em></li><li id="footnote_6_200" class="footnote"><em>resource identifier</em></li><li id="footnote_7_200" class="footnote"><em>mapping</em></li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/6502?a=nCsXaLoWpBc:tLfhApDVzE0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/6502?i=nCsXaLoWpBc:tLfhApDVzE0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/6502?a=nCsXaLoWpBc:tLfhApDVzE0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/6502?i=nCsXaLoWpBc:tLfhApDVzE0:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/6502/~4/nCsXaLoWpBc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.6502.fr/les-ressources-dans-l-architecture-rest-traduction/200</feedburner:origLink></item>
		<item>
		<title>Déploiement Capistrano : Création d’un repository git distant</title>
		<link>http://feedproxy.google.com/~r/6502/~3/VepmaNJaXb0/261</link>
		<comments>http://www.6502.fr/deploiement-capistrano-creation-remote-git-repository/261#comments</comments>
		<pubDate>Sat, 31 Jul 2010 15:25:58 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Capistrano]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Outils]]></category>

		<guid isPermaLink="false">http://www.6502.fr/?p=261</guid>
		<description><![CDATA[Vous utilisez git pour gérer votre source dans un dépôt local (local repository). Après quelques jours de développement, vous êtes prêt à déployer la première version du logiciel sur votre serveur. Capistrano est l&#8217;outil idéal, mais il nécessite un dépôt accessible à partir de votre serveur (remote repository). Il est peu probable que votre dépôt [...]]]></description>
			<content:encoded><![CDATA[<p>Vous utilisez <a title="Git is a free &amp; open source, distributed version control system [en anglais]" href="http://git-scm.com/"><i>git</i></a> pour gérer votre source dans un dépôt local (<i>local repository</i>). Après quelques jours de développement, vous êtes prêt à déployer la première version du logiciel sur votre serveur. <a title="Capistrano [en anglais]" href="http://www.capify.org/">Capistrano</a> est l&#8217;outil idéal, mais il nécessite un dépôt  accessible à partir de votre serveur (<i>remote repository</i>). Il est peu probable que votre dépôt local le soit.</p>

<p>Si vous avez un accès <i>ssh</i>, il est très simple de créer ce dépôt.</p>

<p>Si ce n&#8217;est déjà fait, copiez votre clef SSH sur le serveur. Ensuite, clonez votre dépôt et téléchargez-le sur votre serveur.</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #660033;">--bare</span> application<span style="color: #000000; font-weight: bold;">/</span>.git <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>application.git
$ <span style="color: #c20cb9; font-weight: bold;">scp</span> <span style="color: #660033;">-r</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>application.git monlogin<span style="color: #000000; font-weight: bold;">@</span>monserveur.com:<span style="color: #c20cb9; font-weight: bold;">git</span></pre></div></div>


<p>Vous avez maintenant un dépôt distant.</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span>monlogin<span style="color: #000000; font-weight: bold;">@</span>monserveur.com<span style="color: #000000; font-weight: bold;">/</span>~monlogin<span style="color: #000000; font-weight: bold;">/</span>git<span style="color: #000000; font-weight: bold;">/</span>application.git</pre></div></div>


<p>Pour le mettre à jour :</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git</span> push <span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span>monlogin<span style="color: #000000; font-weight: bold;">@</span>monserveur.com<span style="color: #000000; font-weight: bold;">/</span>~monlogin<span style="color: #000000; font-weight: bold;">/</span>git<span style="color: #000000; font-weight: bold;">/</span>application.git master</pre></div></div>


<p>Ou pour éviter de taper tout ça :</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git</span> remote add production <span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span>limproviste<span style="color: #000000; font-weight: bold;">@</span>limproviste.com<span style="color: #000000; font-weight: bold;">/</span>~limproviste<span style="color: #000000; font-weight: bold;">/</span>private<span style="color: #000000; font-weight: bold;">/</span>git<span style="color: #000000; font-weight: bold;">/</span>limproviste.git
$ <span style="color: #c20cb9; font-weight: bold;">git</span> push production</pre></div></div>


<p>Et hop !</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/6502?a=VepmaNJaXb0:vOgkxsEWHNs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/6502?i=VepmaNJaXb0:vOgkxsEWHNs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/6502?a=VepmaNJaXb0:vOgkxsEWHNs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/6502?i=VepmaNJaXb0:vOgkxsEWHNs:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/6502/~4/VepmaNJaXb0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.6502.fr/deploiement-capistrano-creation-remote-git-repository/261/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.6502.fr/deploiement-capistrano-creation-remote-git-repository/261</feedburner:origLink></item>
		<item>
		<title>Reliques : l’Osborne 1</title>
		<link>http://feedproxy.google.com/~r/6502/~3/EntkOJ-xbjE/240</link>
		<comments>http://www.6502.fr/reliques-osborne-1-photo/240#comments</comments>
		<pubDate>Sat, 29 Aug 2009 10:23:51 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://www.6502.fr/?p=240</guid>
		<description><![CDATA[L&#8217;Osborne 1 a été le premier portable (définition : qui a une poignée). TechRepublic publie une belle galerie de photos.]]></description>
			<content:encoded><![CDATA[<p>L&#8217;Osborne 1 a été le premier portable (définition : qui a une poignée). TechRepublic publie une belle <a href="http://content.techrepublic.com.com/2346-13636_11-193055-1.html">galerie de photos</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/6502?a=EntkOJ-xbjE:jFEnE_quwgI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/6502?i=EntkOJ-xbjE:jFEnE_quwgI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/6502?a=EntkOJ-xbjE:jFEnE_quwgI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/6502?i=EntkOJ-xbjE:jFEnE_quwgI:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/6502/~4/EntkOJ-xbjE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.6502.fr/reliques-osborne-1-photo/240/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.6502.fr/reliques-osborne-1-photo/240</feedburner:origLink></item>
		<item>
		<title>TDD en trois fiches</title>
		<link>http://feedproxy.google.com/~r/6502/~3/w1Hu3WrOpbQ/129</link>
		<comments>http://www.6502.fr/tdd-en-trois-fiches/129#comments</comments>
		<pubDate>Sat, 23 Aug 2008 14:28:08 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.6502.fr/?p=129</guid>
		<description><![CDATA[Brian Di Croce a résumé le TDD en trois fiches dont voici la première.]]></description>
			<content:encoded><![CDATA[<p><a title="Blog de Brian di Croce [en anglais]" href="http://blog.briandicroce.com/">Brian Di Croce</a> a résumé le TDD en <a title="Three Index Cards To Easily Remember The Essence Of Test-Driven Development [en anglais]" href="http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/">trois fiches</a> dont voici la première.</p>

<p><a href="http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/"><img class="aligncenter size-full wp-image-132" title="Card #1. Uncle Bob’s Three Laws" src="http://www.6502.fr/wp-content/uploads/2008/08/briandicroce-tdd-card11.jpg" alt="Card #1. Uncle Bob’s Three Laws" width="480" height="240" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/6502?a=w1Hu3WrOpbQ:qMGPAvZ984I:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/6502?i=w1Hu3WrOpbQ:qMGPAvZ984I:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/6502?a=w1Hu3WrOpbQ:qMGPAvZ984I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/6502?i=w1Hu3WrOpbQ:qMGPAvZ984I:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/6502/~4/w1Hu3WrOpbQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.6502.fr/tdd-en-trois-fiches/129/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.6502.fr/tdd-en-trois-fiches/129</feedburner:origLink></item>
		<item>
		<title>1 000 204 886 016 octets</title>
		<link>http://feedproxy.google.com/~r/6502/~3/VK-9x1AMxAk/123</link>
		<comments>http://www.6502.fr/1000204886016-octets/123#comments</comments>
		<pubDate>Fri, 22 Aug 2008 07:08:12 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Ajouter un tag]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://www.6502.fr/?p=123</guid>
		<description><![CDATA[Mon nouveau disque dur externe fait 1To (un teraoctet) soit 1.000.204.886.016 octets (mille milliards d&#8217;octets), ou encore 1012 octets. Conformément aux habitudes des vendeurs de disques durs, il ne fait pas 240 octets (1 Tio ou 1.099.511.627.776 octets). Pour tous savoir sur les unités SI et binaire, l&#8217;article de Wikipedia est intéressant. C&#8217;est un eGo Desktop [...]]]></description>
			<content:encoded><![CDATA[<p>Mon nouveau disque dur externe fait 1To (un teraoctet) soit 1.000.204.886.016 octets (mille milliards d&#8217;octets), ou encore 10<sup>12</sup> octets. Conformément aux habitudes des vendeurs de disques durs, il ne fait pas 2<sup>40</sup> octets (1 Tio ou 1.099.511.627.776 octets). Pour tous savoir sur les unités SI et binaire, l&#8217;article de <a title="Octets et unités de mesure en informatique sur Wikipedia" href="http://fr.wikipedia.org/wiki/Octet">Wikipedia</a> est intéressant.</p>

<div id="attachment_124" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-124" title="disque dur externe iomega" src="http://www.6502.fr/wp-content/uploads/2008/08/iomega-1to.jpg" alt="disque dur externe iomega" width="480" height="240" /><p class="wp-caption-text">disque dur externe iomega</p></div>

<p>C&#8217;est un <a href="http://www.iomega-europe.com/section?secid=76614">eGo Desktop Hard Drive</a> couleur Midnight Blue ; la photo ne lui rend pas justice. Il est inaudible quand il est inactif (pas de ventilateur) et silencieux quand il est en service, le seul bruit notable étant la légère vibration au démarrage et le clic de parcage de la tête de lecture.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/6502?a=VK-9x1AMxAk:Ti2p6RTfb9Q:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/6502?i=VK-9x1AMxAk:Ti2p6RTfb9Q:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/6502?a=VK-9x1AMxAk:Ti2p6RTfb9Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/6502?i=VK-9x1AMxAk:Ti2p6RTfb9Q:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/6502/~4/VK-9x1AMxAk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.6502.fr/1000204886016-octets/123/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.6502.fr/1000204886016-octets/123</feedburner:origLink></item>
	</channel>
</rss>

