<?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"
	>

<channel>
	<title>Sahid.Funraill.Org</title>
	<atom:link href="http://sahid.funraill.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://sahid.funraill.org</link>
	<description>DevBlog sur les langages libres</description>
	<pubDate>Wed, 27 Aug 2008 18:44:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>FadeIn/FadeOut avec Javascript et Prototype.js</title>
		<link>http://sahid.funraill.org/2008/08/25/fadein-fadeout-with-javascript-and-prototypejs/</link>
		<comments>http://sahid.funraill.org/2008/08/25/fadein-fadeout-with-javascript-and-prototypejs/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 13:04:15 +0000</pubDate>
		<dc:creator>sahid</dc:creator>
		
		<category><![CDATA[ActualitÃ©s]]></category>

		<category><![CDATA[Add new tag]]></category>

		<guid isPermaLink="false">http://sahid.funraill.org/?p=148</guid>
		<description><![CDATA[FadeIn/FadeOut with Javascript and Prototype.js

Bon&#8230;, apres avoir recherchÃ© deux, trois minutes sur google afin de trouver une methode de fade in/out en Javascript utilisant prototype et surtout n&#8217;Ã©tant pas une usine Ã  gaz, je me suis mis Ã  en coder une rapide.

Exemple:

Les methodes de fadeIn et fadeOut

Les deux fonctionnes de la mÃªme maniÃ¨re, elles Ã©tendent [...]]]></description>
			<content:encoded><![CDATA[<h2>FadeIn/FadeOut with Javascript and Prototype.js</h2>
<p>
Bon&#8230;, apres avoir recherchÃ© deux, trois minutes sur google afin de trouver une methode de fade in/out en Javascript utilisant prototype et surtout n&#8217;Ã©tant pas une usine Ã  gaz, je me suis mis Ã  en coder une rapide.
</p>
<h3>Exemple:</h3>
<p><iframe src="http://sahid.funraill.org/wp-content/uploads/2008/08/fade-in-out2.html" style="border:none; width:90%; height:250px"></iframe></p>
<h3>Les methodes de fadeIn et fadeOut</h3>
<p>
Les deux fonctionnes de la mÃªme maniÃ¨re, elles Ã©tendent la classe Element avec la methode addMethodes de prototype.<br/>
</p>
<table border="1" style="font-size:small">
<tr>
<th>methods</th>
<th>Parameters</th>
<th>Events</th>
</tr>
<tr>
<td>fadeIn ([options])</td>
<td>delay (in millisecond), begin (start opacity, min 0.0), end (end opacity, max 1.0)</td>
<td>onCreate, onComplete</td>
</tr>
<tr>
<td>fadeOut ([options])</td>
<td>delay (in millisecond), begin (start opacity, min 0.0), end (end opacity, max 1.0)</td>
<td>onCreate, onComplete</td>
</tr>
</table>
<h3>Usage:</h3>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1">$ <span class="br0">&#40;</span><span class="st0">&#8216;myElement&#8217;</span><span class="br0">&#41;</span>.<span class="me1">observe</span> <span class="br0">&#40;</span><span class="st0">&#8216;fadeIn:onComplete&#8217;</span>, callback<span class="br0">&#41;</span>.<span class="me1">fadeIn</span> <span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">$ <span class="br0">&#40;</span><span class="st0">&#8216;myElement&#8217;</span><span class="br0">&#41;</span>.<span class="me1">fadeIn</span> <span class="br0">&#40;</span><span class="br0">&#123;</span>delay:<span class="nu0">30</span><span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">/// default 8</span></div>
</li>
<li class="li1">
<div class="de1">$ <span class="br0">&#40;</span><span class="st0">&#8216;myElement&#8217;</span><span class="br0">&#41;</span>.<span class="me1">fadeIn</span> <span class="br0">&#40;</span><span class="br0">&#123;</span>delay:<span class="nu0">30</span>, begin:<span class="nu0">0</span>.<span class="nu0">3</span><span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">// default 0.0</span></div>
</li>
<li class="li1">
<div class="de1">$ <span class="br0">&#40;</span><span class="st0">&#8216;myElement&#8217;</span><span class="br0">&#41;</span>.<span class="me1">fadeIn</span> <span class="br0">&#40;</span><span class="br0">&#123;</span>delay:<span class="nu0">30</span>, begin:<span class="nu0">0</span>.<span class="nu0">3</span>, end:<span class="nu0">0</span>.<span class="nu0">8</span><span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">// default 1.0 </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
</div>
<h3>Source:</h3>
<p><a target="_blanc" href="http://sahid.funraill.org/wp-content/uploads/2008/08/fadeinout.js">http://sahid.funraill.org/wp-content/uploads/2008/08/fadeinout.js</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sahid.funraill.org/2008/08/25/fadein-fadeout-with-javascript-and-prototypejs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Prechargement d&#8217;images en Javascript</title>
		<link>http://sahid.funraill.org/2008/08/19/prechargement-dimages-en-javascript/</link>
		<comments>http://sahid.funraill.org/2008/08/19/prechargement-dimages-en-javascript/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 13:13:40 +0000</pubDate>
		<dc:creator>sahid</dc:creator>
		
		<category><![CDATA[ActualitÃ©s]]></category>

		<category><![CDATA[DÃ©veloppements, Langages]]></category>

		<category><![CDATA[Javascript/Ajax]]></category>

		<guid isPermaLink="false">http://sahid.funraill.org/?p=146</guid>
		<description><![CDATA[
Javascript, prechargement d&#8217;images (images loader)


Une fonction Javascript toute bete pour faire patienter vos visiteurs durant le chargement d&#8217;images un peu lourdes.

Exemple: 

Source: 




preload = function &#40;o, img_src, w, h&#41; &#123;


&#160; var img = new Image &#40;&#41;;


&#160; img.onload = function &#40;&#41; &#123;


&#160; &#160; o.onload = null;


&#160; &#160; if &#40;w&#41; o.width&#160; = w;


&#160; &#160; if &#40;h&#41; o.height [...]]]></description>
			<content:encoded><![CDATA[<h2>
Javascript, prechargement d&#8217;images (images loader)<br />
</h2>
<p>
Une fonction Javascript toute bete pour faire patienter vos visiteurs durant le chargement d&#8217;images un peu lourdes.
</p>
<h3>Exemple: </h3>
<p><iframe style="border: none; width:90%; height:400px" src="http://sahid.funraill.org/wp-content/uploads/2008/08/preload.html"></iframe></p>
<h3>Source: </h3>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1">preload = <span class="kw2">function</span> <span class="br0">&#40;</span>o, img_src, w, h<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> img = <span class="kw2">new</span> Image <span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; img.<span class="kw3">onload</span> = <span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; o.<span class="kw3">onload</span> = <span class="kw2">null</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>w<span class="br0">&#41;</span> o.<span class="me1">width</span>&nbsp; = w;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>h<span class="br0">&#41;</span> o.<span class="me1">height</span> = h;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; o.<span class="me1">src</span> = img.<span class="me1">src</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; img.<span class="me1">src</span> = img_src;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> </div>
</li>
</ol>
</div>
</div>
<h3>Usage: </h3>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="sc2"><span class="coMULTI">&lt;!&#8211; sans redimensionnement &#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"><a href="http://december.com/html/4/element/img.html"><span class="kw2">&lt;img</span></a> <span class="kw3">src</span>=<span class="st0">&#8220;images/ajax-loader.gif&#8221;</span> <span class="kw3">onload</span>=<span class="st0">&#8220;preload (this, &#8216;images/larges/big.jpg&#8217;)&#8221;</span>/<span class="kw2">&gt;</span></a></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"><span class="coMULTI">&lt;!&#8211; avec redimensionnement homothetique sur la largeur &#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"><a href="http://december.com/html/4/element/img.html"><span class="kw2">&lt;img</span></a> <span class="kw3">src</span>=<span class="st0">&#8220;images/ajax-loader.gif&#8221;</span> <span class="kw3">onload</span>=<span class="st0">&#8220;preload (this, &#8216;images/larges/big.jpg, 300&#8242;)&#8221;</span>/<span class="kw2">&gt;</span></a></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"><span class="coMULTI">&lt;!&#8211; avec redimensionnement homothetique sur la hauteur &#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"><a href="http://december.com/html/4/element/img.html"><span class="kw2">&lt;img</span></a> <span class="kw3">src</span>=<span class="st0">&#8220;images/ajax-loader.gif&#8221;</span> <span class="kw3">onload</span>=<span class="st0">&#8220;preload (this, &#8216;images/larges/big.jpg, null, 300&#8242;)&#8221;</span>/<span class="kw2">&gt;</span></a></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"><span class="coMULTI">&lt;!&#8211; avec redimensionnement &#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"><a href="http://december.com/html/4/element/img.html"><span class="kw2">&lt;img</span></a> <span class="kw3">src</span>=<span class="st0">&#8220;images/ajax-loader.gif&#8221;</span> <span class="kw3">onload</span>=<span class="st0">&#8220;preload (this, &#8216;images/larges/big.jpg, null, 300, 400&#8242;)&#8221;</span>/<span class="kw2">&gt;</span></a></span> </div>
</li>
</ol>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sahid.funraill.org/2008/08/19/prechargement-dimages-en-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mettre en cache ses objets Javascript</title>
		<link>http://sahid.funraill.org/2008/06/22/mettre-en-cache-ses-objets-javascript/</link>
		<comments>http://sahid.funraill.org/2008/06/22/mettre-en-cache-ses-objets-javascript/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 13:19:29 +0000</pubDate>
		<dc:creator>sahid</dc:creator>
		
		<category><![CDATA[DÃ©veloppements, Langages]]></category>

		<category><![CDATA[Javascript/Ajax]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[cache]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://sahid.funraill.org/?p=145</guid>
		<description><![CDATA[myStorage.js &#8230;ses requÃªtes Ajax en cache

Cette classe JS permet de mettre en cache les rÃ©sultats de ses requÃªtes Ajax.
l&#8217;intÃ©rÃªt est d&#8217;Ã©viter les requÃªtes inutiles au serveur d&#8217;application (et/ou de donnÃ©es). elle utilise le framework prototype.js


Dans une application full Ajax, ou un simple widget Ajax, il peut Ãªtre intÃ©ressant de mettre le rÃ©sultat de ses requÃªtes [...]]]></description>
			<content:encoded><![CDATA[<h2>myStorage.js &#8230;ses requÃªtes Ajax en cache</h2>
<p>
Cette classe JS permet de mettre en cache les rÃ©sultats de ses requÃªtes Ajax.<br />
l&#8217;intÃ©rÃªt est d&#8217;Ã©viter les requÃªtes inutiles au serveur d&#8217;application (et/ou de donnÃ©es). elle utilise le framework prototype.js
</p>
<p>
Dans une application full Ajax, ou un simple widget Ajax, il peut Ãªtre intÃ©ressant de mettre le rÃ©sultat de ses requÃªtes en cache. si on prend l&#8217;exemple de donnÃ©es extraites d&#8217;une base de donnÃ©es, l&#8217;intÃ©rÃªt est encore plus important, car cela Ã©vite de re taper la base de donnÃ©es Ã  chaque Ã©vÃ¨nement de l&#8217;utilisateur.<br />
Le seul problÃ¨me est qu&#8217;il est important de bien gÃ©rer la validitÃ© des informations mises en cache.
</p>
<h3>Mise en route</h3>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="sc2"><a href="http://december.com/html/4/element/script.html"><span class="kw2">&lt;script</span></a> <span class="kw3">type</span>=<span class="st0">&#8220;text/javascript&#8221;</span> <span class="kw3">src</span>=<span class="st0">&#8220;prototype.js&#8221;</span><span class="kw2">&gt;</span></a></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"><a href="http://december.com/html/4/element/script.html"><span class="kw2">&lt;script</span></a> <span class="kw3">type</span>=<span class="st0">&#8220;text/javascript&#8221;</span> <span class="kw3">src</span>=<span class="st0">&#8220;myStorage.js&#8221;</span><span class="kw2">&gt;</span></a></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"><a href="http://december.com/html/4/element/script.html"><span class="kw2">&lt;script</span></a> <span class="kw3">type</span>=<span class="st0">&#8220;text/javascript&#8221;</span><span class="kw2">&gt;</span></a></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; window.onload = function () {</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; storage = new myStorage ();</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; }</div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
<h3>Un exemple rapide d&#8217;utilisateur avec Ajax.Request</h3>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> loadData <span class="br0">&#40;</span>id<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> key = <span class="st0">&#8216;item-&#8217;</span> + id;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> <span class="kw1">item</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/** get data if exists */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="kw1">item</span> = storage.<span class="me1">get</span> <span class="br0">&#40;</span>key<span class="br0">&#41;</span><span class="br0">&#41;</span> !== <span class="kw2">false</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">item</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> Ajax.<span class="me1">Request</span> <span class="br0">&#40;</span><span class="st0">&#8216;data.php?id=&#8217;</span> + id, <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; onSuccess: <span class="kw2">function</span> <span class="br0">&#40;</span>xhr<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> json = xhr.<span class="me1">responseText</span>.<span class="me1">evalJSON</span> <span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>json.<span class="me1">response</span> &amp;&amp; json.<span class="me1">response</span> == <span class="st0">&#8216;OK&#8217;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/** add data for 1 hour */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; storage.<span class="me1">set</span> <span class="br0">&#40;</span>key, json.<span class="me1">data</span>, <span class="nu0">3600</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> json.<span class="me1">data</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> </div>
</li>
</ol>
</div>
</div>
<h3>details sur la lib et tÃ©lÃ©chargement</h3>
<ul>
<li><a href="http://code.google.com/p/mystoragejs/">Project Home Page</a></li>
<li><a href="http://code.google.com/p/mystoragejs/wiki/manual">Reference Manual</a></li>
<li><a href="http://code.google.com/p/mystoragejs/issues/list">Report Bugs</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sahid.funraill.org/2008/06/22/mettre-en-cache-ses-objets-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Offre d&#8217;emploi  : Postes de dÃ©veloppeurs PHP5</title>
		<link>http://sahid.funraill.org/2008/06/07/offre-emploi-postes-de-developpeurs-php5/</link>
		<comments>http://sahid.funraill.org/2008/06/07/offre-emploi-postes-de-developpeurs-php5/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 16:17:45 +0000</pubDate>
		<dc:creator>sahid</dc:creator>
		
		<category><![CDATA[ActualitÃ©s]]></category>

		<category><![CDATA[GÃ©nÃ©rales]]></category>

		<guid isPermaLink="false">http://sahid.funraill.org/?p=144</guid>
		<description><![CDATA[Recherche dÃ©veloppeurs PHP confirmÃ©s

Dans la sociÃ©tÃ© ou je travaille on recherche des dÃ©veloppeurs PHP 5 expÃ©rimentÃ©s
pour la maintenance et l&#8217;Ã©volution de plusieurs projets de sites communautaire et de commerce Ã  forte audience


La plateforme de dÃ©veloppement est basÃ©e sur des serveurs Apache 2 sous GNU/Linux Debian, PHP5 ainsi que MySQL 5 couplÃ© Ã  des serveurs Memcached.

Au [...]]]></description>
			<content:encoded><![CDATA[<h2>Recherche dÃ©veloppeurs PHP confirmÃ©s</h2>
<p>
Dans la sociÃ©tÃ© ou je travaille on recherche des dÃ©veloppeurs PHP 5 expÃ©rimentÃ©s<br />
pour la maintenance et l&#8217;Ã©volution de plusieurs projets de sites communautaire et de commerce Ã  forte audience
</p>
<p>
La plateforme de dÃ©veloppement est basÃ©e sur des serveurs Apache 2 sous GNU/Linux Debian, PHP5 ainsi que MySQL 5 couplÃ© Ã  des serveurs Memcached.
</p>
<h3>Au niveau des compÃ©tences requis</h3>
<ul>
<li> La maitrise de PHP 5 est indispensable (SÃ©curitÃ©, OrientÃ© Objet), la connaissance des motifs de conception du GOF sont des plus non nÃ©gligables.</li>
<li> La sociÃ©tÃ© porte un trÃ¨s grand intÃ©rÃªt Ã  la base de donnÃ©es MySQL 5, une connaissance approfondie de celles-ci est un plus (administration InnoDB, rÃ©plication, triggers, procÃ©dures stockÃ©es &#8230;)</li>
<li> La gestion de projet via SVN, SHH et les outils GNU</li>
<li> Une vraie passion pour un code bien Ã©crit, documentÃ© (un minimum), optimisÃ©</li>
</ul>
<p>
L&#8217;offre s&#8217;adresse vraiment Ã  des personnes passionnÃ©es, entreprenantes et autonomes qui ont envie de voir leurs codes, concepts, et idÃ©es tourner sur des serveurs en production et Ã  forte charge.
</p>
<p>
Sinon au niveau des plus, il y a un bon salaire (30/40 Kâ‚¬ Ã  nÃ©gocier), la mutuelle, les tickets resto et surtout le baby foot :)<br />
L&#8217;ambiance gÃ©nÃ©rale de la sociÃ©tÃ© est jeune et dÃ©tendue.
</p>
<p>
<br/><br />
Les postes sont Ã  pourvoir Ã  Levallois-Perret (92300),<br />
vous pouvez me contacter, ou directement passer par : Kais AHMED kais(arobase)neteck-fr(point)com</p>
]]></content:encoded>
			<wfw:commentRss>http://sahid.funraill.org/2008/06/07/offre-emploi-postes-de-developpeurs-php5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Script Python svn_commit</title>
		<link>http://sahid.funraill.org/2008/04/19/script-python-svn-commit/</link>
		<comments>http://sahid.funraill.org/2008/04/19/script-python-svn-commit/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 20:57:09 +0000</pubDate>
		<dc:creator>sahid</dc:creator>
		
		<category><![CDATA[DÃ©veloppements, Langages]]></category>

		<category><![CDATA[Outils]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[script]]></category>

		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://sahid.funraill.org/?p=143</guid>
		<description><![CDATA[Simple script pour commit une liste de fichiers

Je me suis fait un petit script en Python permettant de commit une suite de fichiers inscrits dans un fichier texte. ca me permet de mieux gerer les fichiers que j&#8217;edite et ceux qui doivent etre envoyÃ©s sur le serveur svn.


Le plus simple est de placer le script [...]]]></description>
			<content:encoded><![CDATA[<h2>Simple script pour commit une liste de fichiers</h2>
<p>
Je me suis fait un petit script en Python permettant de commit une suite de fichiers inscrits dans un fichier texte. ca me permet de mieux gerer les fichiers que j&#8217;edite et ceux qui doivent etre envoyÃ©s sur le serveur svn.
</p>
<p>
Le plus simple est de placer le script dans ~/bin/svn_commit.
</p>
<h3>Le script python</h3>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="co1">#!/usr/bin/env python</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># -*- coding: utf-8 -*-</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">os</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">for</span> rfile <span class="kw1">in</span> <span class="kw3">sys</span>.<span class="me1">argv</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span> rfile == <span class="kw3">sys</span>.<span class="me1">argv</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">continue</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">try</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">cmd</span> = <span class="st0">&#8220;&#8221;</span>.<span class="me1">join</span> <span class="br0">&#40;</span><span class="kw2">open</span> <span class="br0">&#40;</span>rfile, <span class="st0">&#8216;r&#8217;</span><span class="br0">&#41;</span>\</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span class="me1">readlines</span> <span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>\</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span class="me1">replace</span> <span class="br0">&#40;</span><span class="st0">&#8220;<span class="es0">\n</span>&#8220;</span>, <span class="st0">&#8221; &#8220;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">os</span>.<span class="me1">system</span> <span class="br0">&#40;</span><span class="st0">&#8220;svn commit &#8220;</span> + <span class="kw3">cmd</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">except</span> <span class="kw2">IOError</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">print</span> <span class="st0">&#8220;le fichier &#8216;&#8221;</span>+rfile+<span class="st0">&#8220;&#8216; n&#8217;existe pas.&#8221;</span> </div>
</li>
</ol>
</div>
</div>
<h3>Exemple d&#8217;utilisation</h3>
<p>
# malist_1<br />
src/fichier.c<br />
cfg/general.conf<br />
img/image.png</p>
<p>~$svn_commit malist_1 malist_2</p>
]]></content:encoded>
			<wfw:commentRss>http://sahid.funraill.org/2008/04/19/script-python-svn-commit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ACPI: PCI Root Bridge</title>
		<link>http://sahid.funraill.org/2008/01/19/acpi-pci-root-bridge/</link>
		<comments>http://sahid.funraill.org/2008/01/19/acpi-pci-root-bridge/#comments</comments>
		<pubDate>Sat, 19 Jan 2008 17:38:32 +0000</pubDate>
		<dc:creator>sahid</dc:creator>
		
		<category><![CDATA[ActualitÃ©s]]></category>

		<category><![CDATA[Breve]]></category>

		<category><![CDATA[GNU/Linux]]></category>

		<category><![CDATA[Howto GNU/Linux]]></category>

		<guid isPermaLink="false">http://sahid.funraill.org/2008/01/19/acpi-pci-root-bridge/</guid>
		<description><![CDATA[Corriger le bug ACPI: PCI Root Bridge [PCI0]

Je tiens simplement Ã  faire passer le message pour ceux qui ont eu le meme probleme que moi au demarrage de leur PC, le boot se met en pause et affiche le message ACPI: PCI Root Bridge [PCI0] &#8230;
J&#8217;ai donc reportÃ© le bug sur bugzilla.kernel.org, celui-ci a Ã©tÃ© [...]]]></description>
			<content:encoded><![CDATA[<h2>Corriger le bug ACPI: PCI Root Bridge [PCI0]</h2>
<p>
Je tiens simplement Ã  faire passer le message pour ceux qui ont eu le meme probleme que moi au demarrage de leur PC, le boot se met en pause et affiche le message ACPI: PCI Root Bridge [PCI0] &#8230;<br />
J&#8217;ai donc reportÃ© le bug sur bugzilla.kernel.org, celui-ci a Ã©tÃ© corrigÃ© en passant l&#8217;option &#8220;pci=nommconf&#8221; Ã  grub.
</p>
<p>
<a href="http://bugzilla.kernel.org/show_bug.cgi?id=9339">Le rapport de bug</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sahid.funraill.org/2008/01/19/acpi-pci-root-bridge/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RÃ©cuperer ses contacts MSN, Gmail, Yahoo avec PHP</title>
		<link>http://sahid.funraill.org/2007/12/04/recuperer-ses-contacts-msn-gmail-yahoo-avec-php/</link>
		<comments>http://sahid.funraill.org/2007/12/04/recuperer-ses-contacts-msn-gmail-yahoo-avec-php/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 21:55:39 +0000</pubDate>
		<dc:creator>sahid</dc:creator>
		
		<category><![CDATA[DÃ©veloppements, Langages]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[contact]]></category>

		<category><![CDATA[Gmail]]></category>

		<category><![CDATA[grab]]></category>

		<category><![CDATA[Lycos]]></category>

		<category><![CDATA[MSN]]></category>

		<category><![CDATA[recuperer les contact]]></category>

		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://sahid.funraill.org/2007/12/04/recuperer-ses-contacts-msn-gmail-yahoo-avec-php/</guid>
		<description><![CDATA[Classe PHP pour vos contacts MSN, Gmail Yahoo&#8230;

Pour les besoins d&#8217;un projet au boulot, j&#8217;ai du faire quelques recherches afin de trouver comment rÃ©cupÃ©rer les contacts des boites msn, yahoo, gmail, et autres&#8230; le problÃ¨me est que sur le net on trouve de nombreux Web service proposant ces fonctionnalitÃ©s mais tres peu de librairies libres [...]]]></description>
			<content:encoded><![CDATA[<h2>Classe PHP pour vos contacts MSN, Gmail Yahoo&#8230;</h2>
<p>
Pour les besoins d&#8217;un projet au boulot, j&#8217;ai du faire quelques recherches afin de trouver comment rÃ©cupÃ©rer les contacts des boites msn, yahoo, gmail, et autres&#8230; le problÃ¨me est que sur le net on trouve de nombreux Web service proposant ces fonctionnalitÃ©s mais tres peu de librairies libres &#8230;
</p>
<p>
Apres de multiples recherches je suis tombÃ© sur plusieurs classes intÃ©ressantes, et j&#8217;ai donc pensÃ© les rassembler pour en faire un petit paquetage simple d&#8217;emploi
</p>
<h3>PrÃ©sentation de la classe Contacts</h3>
<p>
En utilisant le pattern decorator et une petite factory je suis arrivÃ© Ã  faire en sorte de simplifier un maximum son utilisation
</p>
<h3>Un exemple du decorator avec Gmail</h3>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">class</span> GmailDecorator</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; private <span class="re0">$_instance</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; private <span class="re0">$_user</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; private <span class="re0">$_pass</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; public <span class="kw2">function</span> __construct <span class="br0">&#40;</span><span class="re0">$user</span>, <span class="re0">$pass</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">require</span> <span class="br0">&#40;</span><span class="st0">&#8216;libs/importGmail.class.php&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$this</span>-&gt;_instance = <span class="kw2">new</span> GMailer;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$this</span>-&gt;_user = <span class="re0">$user</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$this</span>-&gt;_pass = <span class="re0">$pass</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; public <span class="kw2">function</span> getContacts <span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$result</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a> <span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<a href="http://www.php.net/is_object"><span class="kw3">is_object</span></a> <span class="br0">&#40;</span><span class="re0">$this</span>-&gt;_instance<span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; throw <span class="kw2">new</span> Exception <span class="br0">&#40;</span><span class="st0">&#8220;Aucune instance GMailer&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$this</span>-&gt;_instance-&gt;<span class="me1">setLoginInfo</span> <span class="br0">&#40;</span><span class="re0">$this</span>-&gt;_user, <span class="re0">$this</span>-&gt;_pass, <span class="st0">&#8220;+1GMT&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$this</span>-&gt;_instance-&gt;<span class="me1">connect</span> <span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;_instance-&gt;<span class="me1">fetchBox</span> <span class="br0">&#40;</span>GM_CONTACT, <span class="st0">&#8216;all&#8217;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$snapshot</span> = <span class="re0">$this</span>-&gt;_instance-&gt;<span class="me1">getSnapshot</span> <span class="br0">&#40;</span>GM_CONTACT<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;_instance-&gt;<span class="me1">disconnect</span> <span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$i</span> = <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a> <span class="br0">&#40;</span><span class="re0">$snapshot</span>-&gt;<span class="me1">contacts</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$snapshot</span>-&gt;<span class="me1">contacts</span> <span class="kw1">as</span> <span class="re0">$contact</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$result</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;name&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$contact</span><span class="br0">&#91;</span><span class="st0">&#8216;name&#8217;</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$result</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;email&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$contact</span><span class="br0">&#91;</span><span class="st0">&#8216;email&#8217;</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$i</span>++;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$result</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; throw <span class="kw2">new</span> Exception <span class="br0">&#40;</span><span class="st0">&#8216;Impossible de se connecter&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">class</span> YahooDecorator <span class="br0">&#123;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">class</span> MSNDecorator <span class="br0">&#123;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co2"># etc &#8230; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
</div>
<p>
Ensuite la Factory s&#8217;occupe de nous retourner l&#8217;objet en fonction du type qu&#8217;on lui passe en paramÃ¨tre
</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">class</span> Contacts</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; public <a href="http://www.php.net/static"><span class="kw3">static</span></a> <span class="re0">$arr_type</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a> <span class="br0">&#40;</span><span class="st0">&#8216;Gmail&#8217;</span>, <span class="st0">&#8216;MSN&#8217;</span>, <span class="st0">&#8216;Yahoo&#8217;</span>, <span class="st0">&#8216;Lycos&#8217;</span>, <span class="st0">&#8216;AOL&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; public <a href="http://www.php.net/static"><span class="kw3">static</span></a> <span class="kw2">function</span> factory <span class="br0">&#40;</span><span class="re0">$user</span>, <span class="re0">$pass</span>, <span class="re0">$type</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/in_array"><span class="kw3">in_array</span></a> <span class="br0">&#40;</span><span class="re0">$type</span>, self::<span class="re0">$arr_type</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$class</span> = <span class="st0">&#8220;{$type}Decorator&#8221;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">new</span> <span class="re0">$class</span> <span class="br0">&#40;</span><span class="re0">$user</span>, <span class="re0">$pass</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">else</span> throw <span class="kw2">new</span> Exception <span class="br0">&#40;</span><span class="st0">&#8216;Invalide type, utilisez : &#8216;</span>.<a href="http://www.php.net/implode"><span class="kw3">implode</span></a> <span class="br0">&#40;</span><span class="st0">&#8220;, &#8220;</span>, self::<span class="re0">$arr_type</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> </div>
</li>
</ol>
</div>
</div>
<h2>Etat du paquetage Contacts (MAJ : 27/08/08)</h2>
<table border="1" style="margin-left:30px">
<tr>
<td style="background-color:#faa">&nbsp;&nbsp;</td>
<td>Gmail</td>
<td>Retourne un tableau vide</td>
</tr>
<tr>
<td style="background-color:#afa">&nbsp;&nbsp;</td>
<td>Yahoo!</td>
<td>Teste rÃ©ussi avec @yahoo.fr</td>
</tr>
<tr>
<td style="background-color:#afa">&nbsp;&nbsp;</td>
<td>AOL</td>
<td>Teste rÃ©ussi avec @aol.com</td>
</tr>
<tr>
<td style="background-color:#afa">&nbsp;&nbsp;</td>
<td>Lycos</td>
<td>Teste rÃ©ussi avec @lycos.com</td>
</tr>
<tr>
<td style="background-color:#afa">&nbsp;&nbsp;</td>
<td>MSN</td>
<td>Teste rÃ©ussi avec @hotmail.fr @hotmail.com</td>
</tr>
</table>
<p><em>NOTE : Gmail, AOL, Yahoo, et Lycos, n&#8217;ont pas besoin du suffixe @host.com</em><br />
<br/></p>
<h3>Un petit exemple</h3>
<p><iframe src="http://labs.funraill.org/pub/PHP/contacts/ex/Usage.php" style="width:80%; height:350px; border:1px solid #ccc;"></iframe></p>
<ul>
<li><a href="http://labs.funraill.org/pub/PHP/contacts/">Contacts PHP, Yahoo, Gmail, MSN, AOL, Lycos</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sahid.funraill.org/2007/12/04/recuperer-ses-contacts-msn-gmail-yahoo-avec-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Support des espaces de noms en PHP</title>
		<link>http://sahid.funraill.org/2007/11/27/support-des-espaces-de-noms-en-php/</link>
		<comments>http://sahid.funraill.org/2007/11/27/support-des-espaces-de-noms-en-php/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 15:14:11 +0000</pubDate>
		<dc:creator>sahid</dc:creator>
		
		<category><![CDATA[ActualitÃ©s]]></category>

		<category><![CDATA[DÃ©veloppements, Langages]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[escapes de noms]]></category>

		<category><![CDATA[namespaces]]></category>

		<category><![CDATA[PHP5]]></category>

		<category><![CDATA[PHP5.3]]></category>

		<guid isPermaLink="false">http://sahid.funraill.org/2007/11/27/support-des-espaces-de-noms-en-php/</guid>
		<description><![CDATA[PHP 5.3, NameSpaces

Voila une trÃ¨s bonne chose, j&#8217;en avais dÃ©jÃ  entendu parlÃ© mais il me semblait que c&#8217;Ã©tait pour la version 6 de PHP, toujours est il que c&#8217;Ã©tait vÃ©ritablement un manque pour les dÃ©veloppeurs PHP.


Donc Ã  partir de la version 5.3 on devrait retrouver le support des espaces de noms pour les fonctions, les [...]]]></description>
			<content:encoded><![CDATA[<h2>PHP 5.3, NameSpaces</h2>
<p>
Voila une trÃ¨s bonne chose, j&#8217;en avais dÃ©jÃ  entendu parlÃ© mais il me semblait que c&#8217;Ã©tait pour la version 6 de PHP, toujours est il que c&#8217;Ã©tait vÃ©ritablement un manque pour les dÃ©veloppeurs PHP.
</p>
<p>
Donc Ã  partir de la version 5.3 on devrait retrouver le support des espaces de noms pour les fonctions, les classes, ainsi que les constantes. l&#8217;interet est assez important pour un langage comme le PHP et son nombre incroyable de bibliothÃ¨ques.
</p>
<p>
Vous pouvez jeter un oeil sur la partie de la doc qui traite de se sujet<br />
<a href="http://fr.php.net/manual/fr/language.namespaces.php">http://fr.php.net/manual/fr/language.namespaces.php</a>
</p>
<h4>Via l&#8217;utilisation d&#8217;accesseurs</h4>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">require</span> <span class="st0">&#8216;MyProject/Db/Connection.php&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; use MyProject::<span class="me2">DB</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; use MyProject::<span class="me2">DB</span>::<span class="me2">Connection</span> <span class="kw1">as</span> DbConnection;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$x</span> = <span class="kw2">new</span> MyProject::<span class="me2">DB</span>::<span class="me2">Connection</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$y</span> = <span class="kw2">new</span> DB::<span class="me2">connection</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$z</span> = <span class="kw2">new</span> DbConnection<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; DB::<span class="me2">connect</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
<h4>DÃ©finition dans tout le script</h4>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; namespace A::<span class="me2">B</span>::<span class="me2">C</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="coMULTI">/* This function is A::B::C::fopen */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">function</span> <a href="http://www.php.net/fopen"><span class="kw3">fopen</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="coMULTI">/* &#8230; */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$f</span> = ::<a href="http://www.php.net/fopen"><span class="kw3">fopen</span></a><span class="br0">&#40;</span>&#8230;<span class="br0">&#41;</span>; <span class="co1">// call global fopen</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> <span class="re0">$f</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sahid.funraill.org/2007/11/27/support-des-espaces-de-noms-en-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hebergement pour dÃ©veloppeurs</title>
		<link>http://sahid.funraill.org/2007/11/24/hebergement-pour-developpeur/</link>
		<comments>http://sahid.funraill.org/2007/11/24/hebergement-pour-developpeur/#comments</comments>
		<pubDate>Sat, 24 Nov 2007 18:52:24 +0000</pubDate>
		<dc:creator>sahid</dc:creator>
		
		<category><![CDATA[ActualitÃ©s]]></category>

		<category><![CDATA[Breve]]></category>

		<category><![CDATA[DÃ©veloppements, Langages]]></category>

		<category><![CDATA[Inclassables]]></category>

		<category><![CDATA[Le blog]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[GNU/Linux]]></category>

		<category><![CDATA[hebergement]]></category>

		<category><![CDATA[hosting]]></category>

		<category><![CDATA[hostingrails.com]]></category>

		<guid isPermaLink="false">http://sahid.funraill.org/2007/11/24/hebergement-pour-developpeur/</guid>
		<description><![CDATA[HostingRails.com, le meilleur hebergeur GNU/Linux

En debut d&#8217;apres-midi le blog Ã©tait lÃ©gÃ¨rement indisponible, j&#8217;etais en train de le migrer sur mon nouvel hebergeur, j&#8217;en ai profitÃ© pour passer Ã  la version 2.3 de wordpress.

Un billet publicitaire &#8230;mais il le faut !

En pleine recherche pour trouver un nouvel hebergeur, ayant un peu trop de problemes avec 1and1 [...]]]></description>
			<content:encoded><![CDATA[<h2>HostingRails.com, le meilleur hebergeur GNU/Linux</h2>
<p>
En debut d&#8217;apres-midi le blog Ã©tait lÃ©gÃ¨rement indisponible, j&#8217;etais en train de le migrer sur mon nouvel hebergeur, j&#8217;en ai profitÃ© pour passer Ã  la version 2.3 de wordpress.
</p>
<h3>Un billet publicitaire &#8230;mais il le faut !</h3>
<p>
En pleine recherche pour trouver un nouvel hebergeur, ayant un peu trop de problemes avec 1and1 et leur &#8220;jemenfoustisme&#8221; envers leurs clients, je suis tombÃ© sur <a href="http://www.hostingrails.com/home/1985769786">HostingRails.com</a>, et vraiment ils offrent le meilleur rapport qualitÃ©/prix que je n&#8217;ai jamais vu.
</p>
<p>
J&#8217;avais envie de trouver un hebergement qui offre accÃ¨s Ã  une base de donnÃ©es PostgreSQL ainsi que SSH sans avoir Ã  passer par un serveur dediÃ© ou semi-dediÃ©, un peu trop couteux pour mes besoins.
</p>
<h3>La petite histoire &#8230;</h3>
<p>Si j&#8217;ai bien compris cette offre d&#8217;hebergement est issue de deux developpeurs passionnÃ©s de Ruby qui ont eu envie d&#8217;offrir un hebergement mutualisÃ© de haute qualitÃ© afin de promouvoir Ruby On Rails</p>
<p>
Les developpeurs d&#8217;autres languages de programmation ne seront pas en reste car l&#8217;offre propose Python, PHP, Perl, en plus de Ruby, ainsi que les serveurs Apache2 et LightHTTP (<a href="http://www.hostingrails.com/home/1985769786">plus d&#8217;infos&#8230;</a>), ainsi qu&#8217;un accÃ¨s SVN&#8230;
</p>
<h3>Merci Ã  l&#8217;Euro fort &#8230; :)</h3>
<p>
Le truc pas mal si vous decidez d&#8217;opter pour cette offre, est le taux de change de l&#8217;euro qui est bien plus fort que celui du dollar&#8230; et mon hebergement de 2 annÃ©es pour un peu moins de 70$ m&#8217;est revenu Ã  environ 47euros !.
</p>
<ul>
<li><a href="http://www.hostingrails.com/home/1985769786">HostingRails.com</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sahid.funraill.org/2007/11/24/hebergement-pour-developpeur/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Patcher le noyau Linux</title>
		<link>http://sahid.funraill.org/2007/11/10/patcher-le-noyau-linux/</link>
		<comments>http://sahid.funraill.org/2007/11/10/patcher-le-noyau-linux/#comments</comments>
		<pubDate>Sat, 10 Nov 2007 16:50:24 +0000</pubDate>
		<dc:creator>sahid</dc:creator>
		
		<category><![CDATA[GNU/Linux]]></category>

		<category><![CDATA[Howto GNU/Linux]]></category>

		<guid isPermaLink="false">http://sahid.funraill.org/2007/11/10/patcher-le-noyau-linux/</guid>
		<description><![CDATA[Utiliser une version de Linux en dÃ©veloppement

Depuis l&#8217;achat de mon nouveau portable, j&#8217;ai quelques problemes avec la gestion de l&#8217;ACPI, une des solutions qui m&#8217;a Ã©tÃ© proposÃ©e dans le bugzilla de kernel.org est d&#8217;utiliser une version du noyau Linux encore en dÃ©veloppement.

Je n&#8217;avais encore jamais resenti le besoin de patcher mon noyau Linux Ã  [...]]]></description>
			<content:encoded><![CDATA[<h2>Utiliser une version de Linux en dÃ©veloppement</h2>
<p>
Depuis l&#8217;achat de mon nouveau portable, j&#8217;ai quelques problemes avec la gestion de l&#8217;ACPI, une des solutions qui m&#8217;a Ã©tÃ© proposÃ©e dans le bugzilla de kernel.org est d&#8217;utiliser une version du noyau Linux encore en dÃ©veloppement.
</p>
<p>Je n&#8217;avais encore jamais resenti le besoin de patcher mon noyau Linux Ã  part pour utiliser bootsplash, m&#8217;enfin ma pÃ©riode geek et deco en tout genre est belle et bien finie maintenant ( ; &#8230;rien ne vaut un demarrage en mode texte ( ;&#8230;&#8221;
</p>
<p>
Bref, voila rapidement la mÃ©thode que j&#8217;ai utilisÃ©.
</p>
<h3>Telecharger le patch ainsi que le bon noyau</h3>
<p>
Sur le site kernel.org vous pouvez telecharger le patch qui vous permettra de passer de la version stable actuelle du noyau Linux, a la prochaine version en dÃ©veloppement.
</p>
<ul>
<li>Donc, on tÃ©lÃ©charge le patch ainsi que la version base-line fournie avec [B]</li>
<li>On decompresse le noyau ainsi que le patch</li>
<li>On copie le patch dans la racine des sources dÃ©compressÃ©es</li>
<li>On applique le patch avec la commande <em>patch -p1 < lepatch</em></li>
<li>Pour finir il ne reste plus qu&#8217;a configurer et compiler le noyau, vous pouvez suivre un de mes precedents articles</li>
</ul>
<p>Le tour est jouÃ© !!</p>
<p><em>Pour info, ca n&#8217;a pas rÃ©solu mon probleme );</em></p>
]]></content:encoded>
			<wfw:commentRss>http://sahid.funraill.org/2007/11/10/patcher-le-noyau-linux/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
