<?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>D-Sites &#187; D-Sites</title>
	<atom:link href="http://www.d-sites.com/category/d-sites/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.d-sites.com</link>
	<description>Web, PHP, Python, …</description>
	<lastBuildDate>Tue, 03 Jan 2012 08:39:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Zend PHP 5.3 Developer Certified</title>
		<link>http://www.d-sites.com/2011/11/25/zend-php-5-3-developer-certified/</link>
		<comments>http://www.d-sites.com/2011/11/25/zend-php-5-3-developer-certified/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 14:24:24 +0000</pubDate>
		<dc:creator>Samuel ROZE</dc:creator>
				<category><![CDATA[Actualités]]></category>
		<category><![CDATA[D-Sites]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[5.3]]></category>
		<category><![CDATA[certification]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.d-sites.com/?p=984</guid>
		<description><![CDATA[Tweet Ça y est, je suis développeur PHP 5.3 certifié par Zend! Le principe du concours est très simple: vous avez 90 minutes pour répondre à 70 questions aléatoires concernant le fonctionnement de PHP ainsi que les différents domaines qui &#8230; <a href="http://www.d-sites.com/2011/11/25/zend-php-5-3-developer-certified/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="border:1px solid #808080;background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.d-sites.com%2F2011%2F11%2F25%2Fzend-php-5-3-developer-certified%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.d-sites.com/2011/11/25/zend-php-5-3-developer-certified/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.d-sites.com/2011/11/25/zend-php-5-3-developer-certified/"  data-text="Zend PHP 5.3 Developer Certified" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.d-sites.com/2011/11/25/zend-php-5-3-developer-certified/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.d-sites.com/2011/11/25/zend-php-5-3-developer-certified/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>Ça y est, je suis développeur PHP 5.3 certifié par Zend! <img src='http://www.d-sites.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://www.d-sites.com/wp-content/uploads/2011/11/zce-php5-3-logo.gif"><img class="aligncenter size-full wp-image-985" title="zce-php5-3-logo" src="http://www.d-sites.com/wp-content/uploads/2011/11/zce-php5-3-logo.gif" alt="" width="73" height="68" /></a>Le principe du concours est très simple: vous avez 90 minutes pour répondre à 70 questions aléatoires concernant le fonctionnement de PHP ainsi que les différents domaines qui l&#8217;entour, à savoir le SQL, la sécurité en général, etc&#8230;</p>
<p>Je vous conseil de le passer, c&#8217;est sans aucun doutes un bon élément sur le CV. Si vous avez un quelconque question, n&#8217;hésitez pas!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-sites.com/2011/11/25/zend-php-5-3-developer-certified/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C: Régler le problème des defunct process</title>
		<link>http://www.d-sites.com/2011/07/05/c-regler-le-probleme-des-defunct-process/</link>
		<comments>http://www.d-sites.com/2011/07/05/c-regler-le-probleme-des-defunct-process/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 21:08:05 +0000</pubDate>
		<dc:creator>Samuel ROZE</dc:creator>
				<category><![CDATA[Adm. Système]]></category>
		<category><![CDATA[Conception]]></category>
		<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[MyOnlineSSH]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[defunct]]></category>
		<category><![CDATA[fork]]></category>
		<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://www.d-sites.com/?p=963</guid>
		<description><![CDATA[Tweet Lorsque vous développez une application, il est parfois très intéressant d&#8217;utiliser des threads ou plusieurs processus pour exécuter plusieurs tâches simultanément. Nous allons ici voir un problème qui arrive lors que l&#8217;on utilise plusieurs processus, via un fork(). En &#8230; <a href="http://www.d-sites.com/2011/07/05/c-regler-le-probleme-des-defunct-process/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="border:1px solid #808080;background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.d-sites.com%2F2011%2F07%2F05%2Fc-regler-le-probleme-des-defunct-process%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.d-sites.com/2011/07/05/c-regler-le-probleme-des-defunct-process/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.d-sites.com/2011/07/05/c-regler-le-probleme-des-defunct-process/"  data-text="C: Régler le problème des defunct process" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.d-sites.com/2011/07/05/c-regler-le-probleme-des-defunct-process/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.d-sites.com/2011/07/05/c-regler-le-probleme-des-defunct-process/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>Lorsque vous développez une application, il est parfois très intéressant d&#8217;utiliser des threads ou plusieurs processus pour exécuter plusieurs tâches simultanément. Nous allons ici voir un problème qui arrive lors que l&#8217;on utilise plusieurs processus, via un <code>fork()</code>. En effet, en <code>C</code>, la fonction <strong>fork</strong> permet de créer un nouveau processus, qui devient fils du processus appelant le fork.</p>
<h2>Processus zombies (<em>defunct</em>)</h2>
<p>Par défaut, lorsque le processus père s&#8217;arrête, tous les processus fils s&#8217;arrête. À l&#8217;inverse, lorsqu&#8217;un processus fils s&#8217;arrête &#8211; via un <code>exit(0);</code> par exemple -, sa mémoire est libérée, il devient un processus zombie (seul le bloc de contrôle reste présent) et le processus père continue de fonctionner.</p>
<p>Ainsi, l&#8217;on peut voir de nombreuses lignes marquées par un <em>defunct</em> lorsque l&#8217;on liste les processus avec un <code>ps</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">root      9175  0.0  0.0 136380  1100 ?        Sl   Jun30   0:00 /[...]/relay
root      9629  0.0  0.0      0     0 ?        Z    Jun23   0:00 [relay] &lt;defunct&gt;
root      9853  0.0  0.0      0     0 ?        Z    Jun30   0:00 [relay] &lt;defunct&gt;
root      9884  0.0  0.0      0     0 ?        Z    Jun30   0:00 [relay] &lt;defunct&gt;</pre></div></div>

<p>C&#8217;est parce que le processus père n&#8217;écoutes pas le signal <strong>SIGCHLD</strong>, qui est envoyé par le fils lors de son extinction. Ainsi, en écoutant le signal, le père peut libérer son bloc de contrôle. En <code>C</code>, c&#8217;est la fonction <code><strong>waitpid</strong></code> qui nous sera utile.</p>
<h2>Une ligne à ajouter</h2>
<p>Il n&#8217;y a qu&#8217;une seule ligne (ainsi qu&#8217;un <code>#include</code>) à ajouter à votre code <code>C</code> pour que les processus zombies soient &#8220;ramassés&#8221; par votre processus père. De temps en temps &#8211; l&#8217;idéal étant la boucle principale s&#8217;il y a -, exécutée cette ligne ci:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>waitpid<span style="color: #009900;">&#40;</span>WAIT_ANY<span style="color: #339933;">,</span> NULL<span style="color: #339933;">,</span> WNOHANG<span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Les arguments sont les suivants:</p>
<ul>
<li><code>WAIT_ANY</code> est la constante permettant de dire que l&#8217;on souhaite attendre n&#8217;importe quel des processus fils de ce processus. À la place, nous aurions pu mettre le <em>pid</em> d&#8217;un processus particulier.</li>
<li><code>NULL</code> permet de ne pas récupérer d&#8217;informations de statut du processus.</li>
<li><code>WNOHANG</code> est une option permettant d&#8217;exécuter <code>waitpid</code> en mode <strong>non-bloquant</strong>.</li>
</ul>
<p>N&#8217;oubliez pas d&#8217;inclure l&#8217;en-tête des fonctions et constantes ainsi:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;sys/wait.h&gt;</span></pre></div></div>

<p>Ainsi, il ne restera plus de processus zombie, ou <em>defunct</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-sites.com/2011/07/05/c-regler-le-probleme-des-defunct-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MyOnlineSSH: Mise à jour</title>
		<link>http://www.d-sites.com/2011/03/28/myonlinessh-mise-a-jour/</link>
		<comments>http://www.d-sites.com/2011/03/28/myonlinessh-mise-a-jour/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 21:31:08 +0000</pubDate>
		<dc:creator>Samuel ROZE</dc:creator>
				<category><![CDATA[Actualités]]></category>
		<category><![CDATA[Adm. Système]]></category>
		<category><![CDATA[D-Sites]]></category>
		<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[MyOnlineSSH]]></category>
		<category><![CDATA[Nouveautées]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.d-sites.com/?p=946</guid>
		<description><![CDATA[Tweet Le service MyOnlineSSH a été mis à jour. Pour rappel, lors de mon précédent article sur MyOnlineSSH, je vous présentait ce service comme un client SSH Web: vous pouvez vous connecter sur un serveur SSH et utiliser votre navigateur &#8230; <a href="http://www.d-sites.com/2011/03/28/myonlinessh-mise-a-jour/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="border:1px solid #808080;background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.d-sites.com%2F2011%2F03%2F28%2Fmyonlinessh-mise-a-jour%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.d-sites.com/2011/03/28/myonlinessh-mise-a-jour/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.d-sites.com/2011/03/28/myonlinessh-mise-a-jour/"  data-text="MyOnlineSSH: Mise à jour" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.d-sites.com/2011/03/28/myonlinessh-mise-a-jour/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.d-sites.com/2011/03/28/myonlinessh-mise-a-jour/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>Le service <a href="http://www.myonlinessh.com">MyOnlineSSH</a> a été mis à jour. Pour rappel, lors de <a href="http://www.d-sites.com/2010/01/03/myonlinessh-connectez-vous-en-ssh-depuis-un-simple-navigateur-internet/">mon précédent article sur MyOnlineSSH</a>, je vous présentait ce service comme un client SSH Web: vous pouvez vous connecter sur un serveur SSH et utiliser votre navigateur comme terminal, ce qui est extrêmement pratique lorsque vous êtes à un endroit où vous pouvez pas utiliser le port 22 à l&#8217;exterieur de votre réseau, et que vous ne souhaitez pas <a href="http://www.d-sites.com/2011/01/18/tunnel-http-sur-ssh-connexion-securisee-et-non-filtree/">mettre en place un tunnel HTTP</a> par exemple.</p>
<h3>Change-log</h3>
<ul>
<li>Le <strong>Flash Player n&#8217;est maintenant plus requis</strong>, seules des requêtes GET et POST sont envoyées.</li>
<li>Vous pouvez créer <strong>plusieurs terminaux simultanés</strong></li>
<li><strong>Rapidité</strong> beaucoup plus importante.</li>
</ul>
<p>Si vous avez une quelconque suggestion ou question, n&#8217;hésitez pas à me contacter ou à laisser un commentaire sur cet article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-sites.com/2011/03/28/myonlinessh-mise-a-jour/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Erreur PHP &#8211; require_once(): Unable to allocate memory for pool</title>
		<link>http://www.d-sites.com/2011/03/06/erreur-php-require_once-unable-to-allocate-memory-for-pool/</link>
		<comments>http://www.d-sites.com/2011/03/06/erreur-php-require_once-unable-to-allocate-memory-for-pool/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 17:36:53 +0000</pubDate>
		<dc:creator>Samuel ROZE</dc:creator>
				<category><![CDATA[Adm. Système]]></category>
		<category><![CDATA[BUGS]]></category>
		<category><![CDATA[D-Sites]]></category>
		<category><![CDATA[Performances]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Production]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[require_once]]></category>

		<guid isPermaLink="false">http://www.d-sites.com/?p=871</guid>
		<description><![CDATA[Tweet Depuis peu, PHP me sort des erreurs assez bizarres, à savoir des &#8220;Unable to allocate memory for pool&#8220;. Ceci se passe notamment sur les fonctions require_once et include_once. Après quelques temps de recherche, il s&#8217;avère que c&#8217;est en fait &#8230; <a href="http://www.d-sites.com/2011/03/06/erreur-php-require_once-unable-to-allocate-memory-for-pool/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="border:1px solid #808080;background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.d-sites.com%2F2011%2F03%2F06%2Ferreur-php-require_once-unable-to-allocate-memory-for-pool%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.d-sites.com/2011/03/06/erreur-php-require_once-unable-to-allocate-memory-for-pool/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.d-sites.com/2011/03/06/erreur-php-require_once-unable-to-allocate-memory-for-pool/"  data-text="Erreur PHP &#8211; require_once(): Unable to allocate memory for pool" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.d-sites.com/2011/03/06/erreur-php-require_once-unable-to-allocate-memory-for-pool/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.d-sites.com/2011/03/06/erreur-php-require_once-unable-to-allocate-memory-for-pool/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><div style="float: right"><a href="http://www.d-sites.com/wp-content/uploads/2011/03/Capture.png"><img src="http://www.d-sites.com/wp-content/uploads/2011/03/Capture-270x300.png" alt="" title="Capture" width="270" height="300" class="alignright size-medium wp-image-872" /></a></div>
<p>Depuis peu, PHP me sort des erreurs assez bizarres, à savoir des &#8220;<strong>Unable to allocate memory for pool</strong>&#8220;. Ceci se passe notamment sur les fonctions <code>require_once</code> et <code>include_once</code>. Après quelques temps de recherche, il s&#8217;avère que c&#8217;est en fait APC qui créé cette erreur lorsqu&#8217;il n&#8217;a plus assez de place dans sa mémoire.</p>
<p>C&#8217;est pourquoi, pour éviter ce bug &#8211; <a href="http://pecl.php.net/bugs/bug.php?id=16966">voir ici le rapport de bug sur php.net</a> &#8211; vous devez augmenter la mémoire allouée à APC avant d&#8217;attendre une mise à jour corrigeant ce problème.<br />
Dans le fichier <code>/etc/php.d/apc.ini</code> (sous CentOS) éditez donc la ligne contenant la directive <code>apc.shm_size</code> en y ajoutant plusieurs mégas. Pour information, voici la configuration du serveur hébergeant <a href="http://www.d-sites.com">D-Sites.com</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">apc.shm_size<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">64M</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.d-sites.com/2011/03/06/erreur-php-require_once-unable-to-allocate-memory-for-pool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>socket_stream_select: Attendre un flux (stream) et un socket en même temps</title>
		<link>http://www.d-sites.com/2010/02/27/socket_stream_select-attendre-un-flux-stream-et-un-socket-en-meme-temps/</link>
		<comments>http://www.d-sites.com/2010/02/27/socket_stream_select-attendre-un-flux-stream-et-un-socket-en-meme-temps/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 15:36:04 +0000</pubDate>
		<dc:creator>Samuel ROZE</dc:creator>
				<category><![CDATA[Adm. Système]]></category>
		<category><![CDATA[D-Sites]]></category>
		<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[multiple]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[simultaneous]]></category>
		<category><![CDATA[socket]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[wait]]></category>

		<guid isPermaLink="false">http://www.d-sites.com/?p=655</guid>
		<description><![CDATA[Tweet Avec PHP, on peut interagir avec l&#8217;extérieur (et l&#8217;intérieur) du serveur sur lequel est exécuté le PHP à l&#8217;aide de flux et de sockets. Pour PHP, les flux &#8211; ou streams &#8211; et les sockets sont différents, alors qu&#8217;au &#8230; <a href="http://www.d-sites.com/2010/02/27/socket_stream_select-attendre-un-flux-stream-et-un-socket-en-meme-temps/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="border:1px solid #808080;background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.d-sites.com%2F2010%2F02%2F27%2Fsocket_stream_select-attendre-un-flux-stream-et-un-socket-en-meme-temps%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.d-sites.com/2010/02/27/socket_stream_select-attendre-un-flux-stream-et-un-socket-en-meme-temps/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.d-sites.com/2010/02/27/socket_stream_select-attendre-un-flux-stream-et-un-socket-en-meme-temps/"  data-text="socket_stream_select: Attendre un flux (stream) et un socket en même temps" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.d-sites.com/2010/02/27/socket_stream_select-attendre-un-flux-stream-et-un-socket-en-meme-temps/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.d-sites.com/2010/02/27/socket_stream_select-attendre-un-flux-stream-et-un-socket-en-meme-temps/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>Avec PHP, on peut interagir avec l&#8217;extérieur (et l&#8217;intérieur) du serveur sur lequel est exécuté le PHP à l&#8217;aide de flux et de sockets. Pour PHP, les flux &#8211; ou <em>streams</em> &#8211; et les sockets sont différents, alors qu&#8217;au niveau système, ce sont en réalité tous les deux des sockets (différents des sockets tels que l&#8217;entend PHP).</p>
<p>L&#8217;on travaille sur les deux en utilisant des fonctions toutes distinctes:</p>
<ul>
<li>Pour les flux, se sont <a href="http://fr.php.net/manual/fr/ref.stream.php">les fonctions <code>stream_*</code></a></li>
<li>Pour les sockets, se sont <a href="http://fr.php.net/manual/fr/ref.sockets.php">les fonctions <code>socket_*</code></a></li>
</ul>
<p>Parmi celles-ci, il y a deux fonctions extrêmement utiles: <code>stream_select</code> et <code>socket_select</code>. Elles permettent d&#8217;attendre de nouvelles données respectivement depuis un flux et un socket.</p>
<p>Vous pouvez par exemple attendre deux flux de données en même temps avec <code>stream_select</code>. Si l&#8217;un des deux a de nouvelles informations, la fonction retourne un entier décrivant le nombre de flux qui ont eu de nouvelles notifications. Vous pouvez aussi ajouter un <em>timeout</em>, etc&#8230; De la même manière, vous pouvez attendre un ou plusieurs sockets avec <code>socket_select</code>.</p>
<p>Seulement, si vous travaillez à la fois avec des flux et des sockets&#8230; Comment faire?</p>
<ol>
<li>Vous pouvez très bien mettre des <em>timeout</em> à quelques dizaines de millisecondes, regarder pendant <code>x</code> ms le flux, <code>x</code> ms le socket, puis on recommence&#8230; C&#8217;est une solution comme une autre mais très peu propre, et qui ne sera jamais &#8220;instantanée&#8221;.</li>
<li>Vous pouvez utiliser un système, auquel vous vous connecterez en socket, qui écoutera un flux et dès que le flux recevra des données, il vous l&#8217;enverra par le socket. Ainsi, vous aurez que des sockets, vous pouvez donc utiliser <code>socket_select</code>.</li>
<li>Mais, pourquoi ne pas créer une fonction <code>socket_stream_select</code>, ou <code>stream_socket_select</code>, comme vous voulez, dans le coeur de PHP, qui transformera les flux et les sockets PHP en sockets systèmes pour les écouter avec la fonction C <code>select</code> ?</li>
</ol>
<p><span id="more-655"></span></p>
<h2>Une fonction <code>socket_stream_select</code></h2>
<p>Elle aurait très bien pu s&#8217;appeller <code>stream_socket_select</code> mais les fonctions <code>socket_*</code> étant présentes uniquement lorsque PHP est compilé avec <code>--enable-socket</code>, et que les flux sont toujours présents, a fait que mon choix s&#8217;est porté vers l&#8217;ajout d&#8217;une fonction à l&#8217;extension &#8220;socket&#8221; de PHP.</p>
<p>La fonction socket_stream_select ressemble à <a href="http://fr.php.net/socket_select">socket_select</a> et <a href="http://fr.php.net/stream_select">stream_select</a>, mais elle prend 8 paramètres, qui sont décrit après son prototype que voilà:</p>
<blockquote><p>int <strong>socket_stream_select</strong> ( array <em>&amp;$read_streams</em>, array <em>&amp;$read_sockets</em>, array <em>&amp;$write_streams</em>, array <em>&amp;$write_sockets</em>, array <em>&amp;$except_streams</em>, array <em>&amp;$except_sockets</em>, int <em>$tv_sec</em> [, int <em>$tv_usec</em>])</p></blockquote>
<ul>
<li><strong>$read_streams</strong><br />
Flux surveillés pour la lecture</li>
<li><strong>$read_sockets</strong><br />
Sockets surveillés pour la lecture</li>
<li><strong>$write_streams</strong><br />
Flux surveillés pour l&#8217;écriture</li>
<li><strong>$write_sockets</strong><br />
Sockets surveillés pour l&#8217;écriture</li>
<li><strong>$except_streams</strong><br />
Flux surveillés pour leurs exceptions</li>
<li><strong>$except_sockets</strong><br />
Sockets surveillés pour leurs exceptions</li>
<li>Les paramètres <strong>$tv_sec</strong> (en secondes) et <strong>$tv_usec</strong> (en millisecondes) forment le paramètre <em>timeout</em> (durée de vie). Le timeout est la durée maximale de temps avant que socket_stream_select() ne se termine. <strong>$tv_sec</strong> peut être zéro, ce qui fera que socket_stream_select() retournera immédiatement. C&#8217;est très pratique pour faire du polling (sondage). Si <strong>$tv_sec</strong> est NULL  (pas de timeout), socket_stream_select() peut se bloquer indéfiniment.</li>
</ul>
<h2>Installation de la fonction socket_stream_select</h2>
<p>Pour pouvoir bénéficier de la fonction socket_stream_select, vous devez utiliser votre propre version de PHP, que vous aurez préalablement patchée avec le patch pour socket_stream_select, puis compiler avec l&#8217;option &#8211;enable-socket.</p>
<p>Le patch se trouve à cette adresse:</p>
<ul>
<li><a href="http://www.d-sites.com/wp-content/uploads/2009/12/socket_stream_select.patch">http://www.d-sites.com/wp-content/uploads/2009/12/socket_stream_select.patch</a></li>
</ul>
<p>Dans le dossier des sources de PHP 5.3, il vous suffit d&#8217;exécuter ces deux commandes afin de créer cette fonction socket_stream_select dans le coeur de PHP:</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">wget http://www.d-sites.com/wp-content/uploads/2009/12/socket_stream_select.patch -O socket_stream_select.patch
patch -p0 &lt; socket_stream_select.patch</pre></div></div>

<p>Bonne continuation. <img src='http://www.d-sites.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-sites.com/2010/02/27/socket_stream_select-attendre-un-flux-stream-et-un-socket-en-meme-temps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MyOnlineSSH: Version anglaise</title>
		<link>http://www.d-sites.com/2010/01/12/myonlinessh-version-anglaise/</link>
		<comments>http://www.d-sites.com/2010/01/12/myonlinessh-version-anglaise/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 23:29:14 +0000</pubDate>
		<dc:creator>Samuel ROZE</dc:creator>
				<category><![CDATA[Actualités]]></category>
		<category><![CDATA[D-Sites]]></category>
		<category><![CDATA[MyOnlineSSH]]></category>
		<category><![CDATA[Nouveautées]]></category>
		<category><![CDATA[php-gettext-edit]]></category>
		<category><![CDATA[Production]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[translation]]></category>

		<guid isPermaLink="false">http://www.d-sites.com/?p=726</guid>
		<description><![CDATA[Tweet La version anglaise de MyOnlineSSH est mise en ligne permettant à tous les anglophones de se connecter en SSH depuis leur navigateur Internet, éditée avec PHP-Gettext-Edit, un outils permettant la gestion extrêmement facile des fichiers de traduction d&#8217;une application &#8230; <a href="http://www.d-sites.com/2010/01/12/myonlinessh-version-anglaise/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="border:1px solid #808080;background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.d-sites.com%2F2010%2F01%2F12%2Fmyonlinessh-version-anglaise%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.d-sites.com/2010/01/12/myonlinessh-version-anglaise/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.d-sites.com/2010/01/12/myonlinessh-version-anglaise/"  data-text="MyOnlineSSH: Version anglaise" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.d-sites.com/2010/01/12/myonlinessh-version-anglaise/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.d-sites.com/2010/01/12/myonlinessh-version-anglaise/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>La <a href="http://www.myonlinessh.com/en/index.html">version anglaise</a> de <a href="http://www.d-sites.com/projets/myonlinessh/">MyOnlineSSH</a> est mise en ligne permettant à tous les anglophones de se connecter en SSH depuis leur navigateur Internet, éditée avec <a href="http://www.d-sites.com/projets/php-gettext-edit/">PHP-Gettext-Edit</a>, un outils permettant la gestion extrêmement facile des fichiers de traduction d&#8217;une application Internet (dont la version 2, avec gestion de comptes utilisateurs ne devrait pas tarder).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-sites.com/2010/01/12/myonlinessh-version-anglaise/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP-Gettext-Edit: Gérez vos traductions Gettext simplement!</title>
		<link>http://www.d-sites.com/2010/01/09/php-gettext-edit-gerez-vos-traductions-gettext-simplement/</link>
		<comments>http://www.d-sites.com/2010/01/09/php-gettext-edit-gerez-vos-traductions-gettext-simplement/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 15:12:46 +0000</pubDate>
		<dc:creator>Samuel ROZE</dc:creator>
				<category><![CDATA[Conception]]></category>
		<category><![CDATA[D-Sites]]></category>
		<category><![CDATA[Nouveautées]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php-gettext-edit]]></category>
		<category><![CDATA[Production]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[gettext]]></category>
		<category><![CDATA[traduction]]></category>

		<guid isPermaLink="false">http://www.d-sites.com/?p=708</guid>
		<description><![CDATA[Tweet PHP-Gettext-Edit est une application PHP qui permet de gérer très simplement les différentes traduction d&#8217;un site Internet par exemple, plus généralement d&#8217;une application (qu&#8217;elle soit écrite en PHP, C, Java, JavaScript&#8230;) utilisant des fichiers de traduction Gettext. En utilisant &#8230; <a href="http://www.d-sites.com/2010/01/09/php-gettext-edit-gerez-vos-traductions-gettext-simplement/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="border:1px solid #808080;background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.d-sites.com%2F2010%2F01%2F09%2Fphp-gettext-edit-gerez-vos-traductions-gettext-simplement%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.d-sites.com/2010/01/09/php-gettext-edit-gerez-vos-traductions-gettext-simplement/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.d-sites.com/2010/01/09/php-gettext-edit-gerez-vos-traductions-gettext-simplement/"  data-text="PHP-Gettext-Edit: Gérez vos traductions Gettext simplement!" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.d-sites.com/2010/01/09/php-gettext-edit-gerez-vos-traductions-gettext-simplement/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.d-sites.com/2010/01/09/php-gettext-edit-gerez-vos-traductions-gettext-simplement/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p><a href="http://www.php-gettext-edit.net">PHP-Gettext-Edit</a> est une application PHP qui permet de gérer très simplement les différentes traduction d&#8217;un site Internet par exemple, plus généralement d&#8217;une application (qu&#8217;elle soit écrite en PHP, C, Java, JavaScript&#8230;) utilisant des fichiers de traduction Gettext.</p>
<p>En utilisant PHP-Gettext-Edit, vous pouvez en quelques clics analyser votre code, faire les traductions et compiler les fichiers de traductions! PHP-Gettext-Edit vous permet de:</p>
<ul>
<li>Analyser un code source pour en générer un modèle de traduction, contenant toutes les chaines de caractère à traduire</li>
<li>Créer des fichiers de traduction à partir de modèles</li>
<li>Éditer directement depuis votre navigateur un fichier de traduction</li>
<li>Compiler en .mo ou en JSON un fichier de traduction</li>
<li>Contrôler la validité
<ul>
<li>Des modèles par rapport au code source</li>
<li>Des fichiers de traductions par rapport à leurs modèles</li>
<li>Des fichiers compilés par rapport à leurs fichiers de traduction</li>
<li>Des langues entre-elles par rapports aux fichiers qu&#8217;elles contiennent</li>
</ul>
</li>
<li>Éffectuer les opérations précédentes de manière collective</li>
</ul>
<p style="text-align: center;"><strong>Rendez-vous sur le site du projet, <a href="http://www.php-gettext-edit.net">www.php-gettext-edit.net</a> &raquo;</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-sites.com/2010/01/09/php-gettext-edit-gerez-vos-traductions-gettext-simplement/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MyOnlineSSH: Connectez-vous en SSH depuis un simple navigateur Internet</title>
		<link>http://www.d-sites.com/2010/01/03/myonlinessh-connectez-vous-en-ssh-depuis-un-simple-navigateur-internet/</link>
		<comments>http://www.d-sites.com/2010/01/03/myonlinessh-connectez-vous-en-ssh-depuis-un-simple-navigateur-internet/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 18:16:03 +0000</pubDate>
		<dc:creator>Samuel ROZE</dc:creator>
				<category><![CDATA[D-Sites]]></category>
		<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[Nouveautées]]></category>
		<category><![CDATA[Production]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Tests]]></category>
		<category><![CDATA[navigateur]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.d-sites.com/?p=704</guid>
		<description><![CDATA[Tweet Vous pouvez aussi voir la page du projet MyOnlineSSH. MyOnlineSSH est un service permettant de se connecter à un serveur en SSH directement depuis votre navigateur. La configuration necessaire est très petite: Un navigateur avec le JavaScript activé Flash &#8230; <a href="http://www.d-sites.com/2010/01/03/myonlinessh-connectez-vous-en-ssh-depuis-un-simple-navigateur-internet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="border:1px solid #808080;background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.d-sites.com%2F2010%2F01%2F03%2Fmyonlinessh-connectez-vous-en-ssh-depuis-un-simple-navigateur-internet%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.d-sites.com/2010/01/03/myonlinessh-connectez-vous-en-ssh-depuis-un-simple-navigateur-internet/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.d-sites.com/2010/01/03/myonlinessh-connectez-vous-en-ssh-depuis-un-simple-navigateur-internet/"  data-text="MyOnlineSSH: Connectez-vous en SSH depuis un simple navigateur Internet" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.d-sites.com/2010/01/03/myonlinessh-connectez-vous-en-ssh-depuis-un-simple-navigateur-internet/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.d-sites.com/2010/01/03/myonlinessh-connectez-vous-en-ssh-depuis-un-simple-navigateur-internet/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p><strong>Vous pouvez aussi <a href="http://www.d-sites.com/projets/myonlinessh/">voir la page du projet MyOnlineSSH</a>.</strong></p>
<p><a href="http://www.myonlinessh.com">MyOnlineSSH</a> est un service permettant de se connecter à un serveur en SSH directement depuis votre navigateur. La configuration necessaire est très petite:</p>
<ul>
<li>Un navigateur avec le JavaScript activé</li>
<li>Flash Player installé</li>
<li>Le port 80 ouvert</li>
</ul>
<p>En effet, seul le port 80 suffit pour se connecter au SSH à l&#8217;aide de MyOnlineSSH comme vous pouvez le voir dans la page <a href="http://www.myonlinessh.com/help.html">Aide de MyOnlineSSH</a>.</p>
<p><img class="aligncenter" src="http://www.myonlinessh.com/template/images/examples/m_port-80.png" alt="" width="800" height="169" />Je vous invite donc à tester dès à présent MyOnlineSSH:</p>
<p style="text-align: center;"><a href="http://www.myonlinessh.com">http://www.myonlinessh.com</a></p>
<p style="text-align: left;">D&#8217;ici peu, une traduction anglaise de MyOnlineSSH verra le jour pour nos amis anglophones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-sites.com/2010/01/03/myonlinessh-connectez-vous-en-ssh-depuis-un-simple-navigateur-internet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Optimiser WordPress avec WP-Super-Cache</title>
		<link>http://www.d-sites.com/2009/12/27/optimiser-wordpress-avec-wp-super-cache/</link>
		<comments>http://www.d-sites.com/2009/12/27/optimiser-wordpress-avec-wp-super-cache/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 18:03:08 +0000</pubDate>
		<dc:creator>Samuel ROZE</dc:creator>
				<category><![CDATA[D-Sites]]></category>
		<category><![CDATA[Performances]]></category>
		<category><![CDATA[Production]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.d-sites.com/?p=682</guid>
		<description><![CDATA[Tweet Pour ce 100ème article, nous allons rapidement nous intéresser à la vitesse d&#8217;éxécution de WordPress. En effet, la grosse machinerie WordPress peut mettre plusieurs secondes à générer une simple page d&#8217;article lorsqu&#8217;elle est installée sans plus de configuration. En &#8230; <a href="http://www.d-sites.com/2009/12/27/optimiser-wordpress-avec-wp-super-cache/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="border:1px solid #808080;background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.d-sites.com%2F2009%2F12%2F27%2Foptimiser-wordpress-avec-wp-super-cache%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.d-sites.com/2009/12/27/optimiser-wordpress-avec-wp-super-cache/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.d-sites.com/2009/12/27/optimiser-wordpress-avec-wp-super-cache/"  data-text="Optimiser WordPress avec WP-Super-Cache" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.d-sites.com/2009/12/27/optimiser-wordpress-avec-wp-super-cache/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.d-sites.com/2009/12/27/optimiser-wordpress-avec-wp-super-cache/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>Pour ce 100ème article, nous allons rapidement nous intéresser à la vitesse d&#8217;éxécution de WordPress. En effet, la grosse machinerie WordPress peut mettre plusieurs secondes à générer une simple page d&#8217;article lorsqu&#8217;elle est installée sans plus de configuration. En effet, les différents plug-ins, thèmes et compagnies ne font pas de WordPress quelque chose de rapide, dans la mesure où le nombre de fichiers chargés pour une simple page peut aller jusqu&#8217;à 1000 et le nombre de requêtes SQL est colossal!</p>
<h2>WordPress sans cache</h2>
<p>Je vais prendre les chiffres de D-Sites: sans cache avec quelques plug-ins (captcha/statistiques/coloration syntaxique) et sur un hébergement mutualisé OVH, la page d&#8217;accueil par exemple, met en moyenne 2 secondes pour être générée, comme l&#8217;atteste le site <a href="http://www.ismyblogworking.com/www.d-sites.com">IsMyBlogWorking</a>.</p>
<p><img class="aligncenter size-full wp-image-685" title="blog-before-supercache" src="http://www.d-sites.com/wp-content/uploads/2009/12/blog-before-supercache.png" alt="blog-before-supercache" width="759" height="304" /></p>
<p>Deux secondes pour afficher une page, c&#8217;est beaucoup beaucoup trop, nous allons donc mettre en place le cache. Pour le mettre en place sur un blog WordPress, rien de plus simple: dans l&#8217;administration, dans le menu Extensions, cliquez sur Ajouter. Ensuite, il vous suffit de rechercher un plug-in au nom de &#8220;WP Super Cache&#8221;. Installez-le de manière automatique, tout marche très bien, créez les règles dans le fichier HTACCESS puis ça roule !</p>
<p><span id="more-682"></span></p>
<h2>WordPress avec cache</h2>
<p>Grâce au même système de mesure, voici le résultat.</p>
<p><img class="aligncenter size-full wp-image-684" title="blog-after-super-cache" src="http://www.d-sites.com/wp-content/uploads/2009/12/blog-after-super-cache.png" alt="blog-after-super-cache" width="760" height="250" /></p>
<p>C&#8217;est en effet extrêmement plus rapide ! Il y a donc un gros gain au niveau du temps de chargement. Ainsi, les visiteurs sentent le site beaucoup plus fluide, ce qui leur donne envie de continuer à naviguer sur celui-ci. <img src='http://www.d-sites.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Voici le graphique du temps de réponse de la page d&#8217;accueil de D-Sites. On voit bien l&#8217;installation de WP-Super-Cache, lorsque le temps de chargement descend. Les variations sont dues au fait que le temps d&#8217;expiration du cache est de une heure. Par conséquent, si personne n&#8217;a visiter cette page précise pendant 1 heure, alors le prochain visiteur se verra recharger la page sans cache &#8211; et générer le cache par la même occasion.</p>
<p><img class="aligncenter" src="http://ismyblogworking.com/g/0698064b2c50db15440208426560d0bb.png" alt="" width="294" height="200" />Bonne chance ! <img src='http://www.d-sites.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-sites.com/2009/12/27/optimiser-wordpress-avec-wp-super-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>De nouvelles traductions pour i2c</title>
		<link>http://www.d-sites.com/2009/12/16/de-nouvelles-traductions-pour-i2c/</link>
		<comments>http://www.d-sites.com/2009/12/16/de-nouvelles-traductions-pour-i2c/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 13:38:17 +0000</pubDate>
		<dc:creator>Samuel ROZE</dc:creator>
				<category><![CDATA[D-Sites]]></category>
		<category><![CDATA[i2c]]></category>
		<category><![CDATA[Nouveautées]]></category>
		<category><![CDATA[getCountryName]]></category>
		<category><![CDATA[traduction]]></category>

		<guid isPermaLink="false">http://www.d-sites.com/?p=666</guid>
		<description><![CDATA[Tweet Après l&#8217;ajout de nouvelles fonctions à l&#8217;interface SOAP d&#8217;i2c, voici 4 nouvelles traductions disponible pour les fonctions donnant le nom réel des pays et des continents: es_ES &#8211; Spanish nl_NL &#8211; Dutch de_DE &#8211; German pt_PT &#8211; Portuguese La &#8230; <a href="http://www.d-sites.com/2009/12/16/de-nouvelles-traductions-pour-i2c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="border:1px solid #808080;background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.d-sites.com%2F2009%2F12%2F16%2Fde-nouvelles-traductions-pour-i2c%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.d-sites.com/2009/12/16/de-nouvelles-traductions-pour-i2c/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.d-sites.com/2009/12/16/de-nouvelles-traductions-pour-i2c/"  data-text="De nouvelles traductions pour i2c" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.d-sites.com/2009/12/16/de-nouvelles-traductions-pour-i2c/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.d-sites.com/2009/12/16/de-nouvelles-traductions-pour-i2c/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>Après l&#8217;ajout de <a href="http://www.d-sites.com/2009/12/15/i2c-quatres-nouvelles-fonctions-soap/">nouvelles fonctions à l&#8217;interface SOAP</a> d&#8217;<a href="http://www.d-sites.com/projets/i2c/">i2c</a>, voici 4 nouvelles traductions disponible pour les fonctions donnant le nom réel des pays et des continents:</p>
<ul>
<li><code>es_ES</code> &#8211; Spanish</li>
<li><code>nl_NL</code> &#8211; Dutch</li>
<li><code>de_DE</code> &#8211; German</li>
<li><code>pt_PT</code> &#8211; Portuguese</li>
</ul>
<p>La <a href="http://www.d-sites.com/projets/i2c/">page du projet i2c</a> à été mise en jour en conséquence, ce qui porte donc à 6 le nombre de langues supportées par les fonctions de traduction d&#8217;i2c.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-sites.com/2009/12/16/de-nouvelles-traductions-pour-i2c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using apc
Database Caching 1/34 queries in 0.067 seconds using apc
Object Caching 956/1040 objects using apc

Served from: d-sites.com @ 2012-02-04 19:59:23 -->
