<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:series="http://unfoldingneurons.com/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>CyBWarrior</title>
	
	<link>http://www.cybwarrior.com</link>
	<description>Vulgarisation non vulgaire de l'informatique pour tout et pour tous</description>
	<lastBuildDate>Tue, 19 Jul 2011 10:41:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cybwarrior" /><feedburner:info uri="cybwarrior" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>SVG + JavaScript = Stress !</title>
		<link>http://feedproxy.google.com/~r/cybwarrior/~3/F-MECLbE7jM/</link>
		<comments>http://www.cybwarrior.com/2011/07/svg-javascript-stress/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 10:27:32 +0000</pubDate>
		<dc:creator>cybwarrior</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://www.cybwarrior.com/?p=514</guid>
		<description><![CDATA[Depuis peu, les navigateurs modernes permettent d&#8217;utiliser des graphiques au format SVG. Cela est intéressant, car il est possible d&#8217;interagir avec ces graphiques à l&#8217;aide de JavaScript. Non plus seulement afin de redimensionner l&#8217;image, d&#8217;en modifier l&#8217;attribut alt, mais carrément de dessiner comme on le ferait avec un logiciel de dessin tel que Inkscape ! [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis peu, les navigateurs modernes permettent d&#8217;utiliser des graphiques au format <a href="http://fr.wikipedia.org/wiki/Scalable_Vector_Graphics"><strong>SVG</strong></a>. Cela est intéressant, car il est possible d&#8217;interagir avec ces graphiques à l&#8217;aide de <strong>JavaScript</strong>. Non plus seulement afin de redimensionner l&#8217;image, d&#8217;en modifier l&#8217;attribut <em>alt</em>, mais carrément de dessiner comme on le ferait avec un logiciel de dessin tel que <a href="http://inkscape.org/"><strong>Inkscape </strong></a>! Mieux : il est possible non seulement de dessiner, mais d&#8217;intercepter des événements et de modifier l&#8217;image en conséquence ! Il devient ainsi possible de faire des choses étonnantes, et il n&#8217;y a presque plus besoin de <strong>Flash </strong>pour faire des applications web intéressantes.</p>
<p>La preuve : je me suis amusé à faire un petit jeu (que j&#8217;ai également ajouté sur <a href="http://www.scriptland.cybwarrior.com/"><strong>ScriptLand</strong></a>) pour tester un peu ce qu&#8217;il était possible de faire. Voici ci-dessous : il s&#8217;agit de démêler les nœuds. <strong>Attention ! Il existe encore quelques petits bugs que je corrigerai &#8211; un jour&#8230; </strong> </p>
<p>À noter que pour faire cela, j&#8217;ai utilisé le merveilleux <a href="http://prototype-graphic.xilinus.com/"><strong>Prototype Graphic Framework</strong></a> qui simplifie bien la vie !</p>
<div align="center"><iframe frameborder="0" align="center" src="http://www.scriptland.cybwarrior.com/stress/" width="520" height="520"></iframe></div>
<p>N&#8217;hésitez pas à faire part de vos commentaires !</p>

<p><a href="http://feedads.g.doubleclick.net/~a/1-S1mL9FGwmTYQim4uuvdohFtAg/0/da"><img src="http://feedads.g.doubleclick.net/~a/1-S1mL9FGwmTYQim4uuvdohFtAg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/1-S1mL9FGwmTYQim4uuvdohFtAg/1/da"><img src="http://feedads.g.doubleclick.net/~a/1-S1mL9FGwmTYQim4uuvdohFtAg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/cybwarrior/~4/F-MECLbE7jM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.cybwarrior.com/2011/07/svg-javascript-stress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.cybwarrior.com/2011/07/svg-javascript-stress/</feedburner:origLink></item>
		<item>
		<title>Prototype et les interpréteurs JSON natifs des navigateurs : NATIVE_JSON_PARSE_SUPPORT</title>
		<link>http://feedproxy.google.com/~r/cybwarrior/~3/zmZiyjdYJTA/</link>
		<comments>http://www.cybwarrior.com/2011/04/prototype-et-les-interpreteurs-json-natifs-des-navigateurs-native_json_parse_support/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 17:06:20 +0000</pubDate>
		<dc:creator>cybwarrior</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[NATIVE_JSON_PARSE_SUPPORT]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://www.cybwarrior.com/?p=509</guid>
		<description><![CDATA[J&#8217;ai aujourd&#8217;hui expérimenté un curieux problème en essayant de mettre à jour Prototype sur un site web. Du code qui fonctionnait bien, subitement, ne fonctionnait plus avec la version 1.7.
En cherchant bien, j&#8217;ai fini pas comprendre qu&#8217;il y avait un problème avec du code JSON. Or, à première vue, ce code paraissait tout à fait [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai aujourd&#8217;hui expérimenté un curieux problème en essayant de mettre à jour <strong><a href="http://www.prototypejs.org/">Prototype</a> </strong>sur un site web. Du code qui fonctionnait bien, subitement, ne fonctionnait plus avec la version <strong>1.7</strong>.</p>
<p>En cherchant bien, j&#8217;ai fini pas comprendre qu&#8217;il y avait un problème avec du code <strong>JSON</strong>. Or, à première vue, ce code paraissait tout à fait correct :</p>
<pre>{
	mode : "exact",
	elements : "textarea_bouzi_txt_index_para_1",
	theme : "advanced",
	skin : "o2k7",
	plugins : "",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_statusbar_location : "bottom",
	convert_urls : false,
	relative_urls : false,
	forced_root_block : false,
	extended_valid_elements : "div[*],iframe[*]"
}</pre>
<p>Pourquoi cela ne fonctionnait-il pas alors ? C&#8217;est qu&#8217;en y regardant de plus près, on voit qu&#8217;il n&#8217;est pas correct : les propriétés ne sont pas entre guillemets. Ce code (qui provient je crois de <strong>TinyMCE </strong>- c&#8217;est à vérifier) devrait donc plutôt être :</p>
<pre>{
	"mode" : "exact",
	"elements" : "textarea_bouzi_txt_index_para_1",
	"theme" : "advanced",
	"skin" : "o2k7",
	"plugins" : "",
	"theme_advanced_toolbar_location" : "top",
	"theme_advanced_toolbar_align" : "left",
	"theme_advanced_statusbar_location" : "bottom",
	"convert_urls" : false,
	"relative_urls" : false,
	"forced_root_block" : false,
	"extended_valid_elements" : "div[*],iframe[*]"
}</pre>
<p>Reste que cela n&#8217;explique pas pourquoi ce code, aussi erroné soit-il, ne fonctionnait subitement plus.</p>
<p>La réponse est que les navigateurs récents implémentent désormais d&#8217;une manière native le propre interpréteur JSON. Plus besoin de passer par une bibliothèque JavaScript JSON ; on fait simplement :</p>
<pre>JSON.parse('["du code JSON"]');</pre>
<p>Or, dans sa dernière version, Prototype essaye de s&#8217;appuyer sur l&#8217;interpréteur JSON natif du navigateur quand il en existe un, ceci à des fins de performance. Mais c&#8217;est là qu&#8217;il y a un problème : cet interpréteur est en général beaucoup plus rigoureux. J&#8217;ai en effet essayé avec<strong> Firefox 3.6</strong> et <strong>Internet Explorer 9.0</strong>, et dans les deux cas, le code JSON qui n&#8217;utilise pas de guillemets pour les propriétés provoque une erreur.</p>
<p>Au sens strict, on ne peut pas parler d&#8217;un <em>bug </em>de ces interpréteurs, car le code JSON est effectivement mal formé. Cependant, il existe un grand nombre de bibliothèques qui ne rendent pas un code JSON avec les propriétés entre guillemets (comme apparemment la version de TinyMCE que j&#8217;utilise). Tout ce code fera immanquablement planter la dernière version de Prototype, ce qui est problématique.</p>
<p>La meilleure solution consisterait à fournir du code JSON bien formé à Prototype, mais ce n&#8217;est pas toujours possible. Reste alors une autre solution simple, consistant à <em>downgrader </em>prototype afin qu&#8217;il ne cherche pas à utiliser le <em>parser </em>natif du navigateur lorsqu&#8217;il y en a un, et le forcer à utiliser son propre interpréteur.</p>
<p>Pour ce faire, il y a plusieurs solutions, qui nécessitent toutes de modifier un peu le fichier prototype.js. Je les liste par ordre de préférence personnelle :</p>
<ul>
<li>Remplacer la ligne 772 par :
<pre>evalJSON: evalJSON,</pre>
</li>
<li>Remplacer le bloc des lignes 535-537 par :
<pre>var NATIVE_JSON_PARSE_SUPPORT = false;</pre>
</li>
<li>Remplacer le bloc des lignes 718-721 par :
<pre>function parseJSON() {
    var json = this.unfilterJSON();
    return evalJSON(json);
}</pre>
</li>
</ul>
<p>Faites votre propre choix ! Même si la meilleure solution reste d&#8217;avoir du code JSON propre dès le départ <img src='http://www.cybwarrior.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/ewVe2e8WsNp-7QIWyNg3X0-7-HY/0/da"><img src="http://feedads.g.doubleclick.net/~a/ewVe2e8WsNp-7QIWyNg3X0-7-HY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ewVe2e8WsNp-7QIWyNg3X0-7-HY/1/da"><img src="http://feedads.g.doubleclick.net/~a/ewVe2e8WsNp-7QIWyNg3X0-7-HY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/cybwarrior/~4/zmZiyjdYJTA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.cybwarrior.com/2011/04/prototype-et-les-interpreteurs-json-natifs-des-navigateurs-native_json_parse_support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.cybwarrior.com/2011/04/prototype-et-les-interpreteurs-json-natifs-des-navigateurs-native_json_parse_support/</feedburner:origLink></item>
		<item>
		<title>PHP : programmer sans erreurs du type « notice »</title>
		<link>http://feedproxy.google.com/~r/cybwarrior/~3/R2xVlFhNbro/</link>
		<comments>http://www.cybwarrior.com/2011/04/php-programmer-sans-erreurs-du-type-notice/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 13:59:59 +0000</pubDate>
		<dc:creator>cybwarrior</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Notice]]></category>

		<guid isPermaLink="false">http://www.cybwarrior.com/?p=502</guid>
		<description><![CDATA[J&#8217;en connais certains qui aiment avoir un code PHP qui ne génère aucune erreur du type &#171;&#160;notice&#171;&#160;. Une erreur notice, c&#8217;est lorsque, par exemple, on essaye de traiter une variable qui n&#8217;est pas initialisée :
//$bob = "pas initialisée, c'est un commentaire";
print $bob; // cela va générer une erreur de type notice
Il ne s&#8217;agit pas d&#8217;erreur [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;en connais certains qui aiment avoir un code <strong>PHP </strong>qui ne génère aucune erreur du type &laquo;&nbsp;<strong>notice</strong>&laquo;&nbsp;. Une erreur notice, c&#8217;est lorsque, par exemple, on essaye de traiter une variable qui n&#8217;est pas initialisée :</p>
<pre>//$bob = "pas initialisée, c'est un commentaire";
print $bob; // cela va générer une erreur de type notice</pre>
<p>Il ne s&#8217;agit pas d&#8217;erreur au sens propre du terme. PHP est un langage de script, beaucoup moins rigoureux qu&#8217;un &laquo;&nbsp;vrai&nbsp;&raquo; langage, comme Java par exemple. S&#8217;accorder de telles libertés dans le code ne l&#8217;empêchera pas de fonctionner. Pour ma part, un code qui générerait d&#8217;innombrable erreur de ce type notice ne me dérangerait pas. Ainsi, une solution simple pour en finir avec elle consiste à changer le niveau du rapport d&#8217;erreur. Par exemple, en tout début de code, quelque chose comme :</p>
<pre>error_reporting(E_ALL | ~E_NOTICE);</pre>
<p>Ou dans le fichier <em>php.ini</em> :</p>
<pre>error_reporting = E_ALL | ~E_NOTICE</pre>
<p>Cependant, cela ne fait que masquer le problème &#8211; si tant est que ça en soit un -, puisque les erreurs de ce type continuent d&#8217;exister ; elles ne sont simplement plus affichée.</p>
<p>Pour bien faire, la vraie solution rigoureuse consistera alors à récrire son code de façon à ce qu&#8217;il n&#8217;en génère plus. Comme la plupart de ces erreurs sont souvent dues à des variables non initialisées que l&#8217;on utilise sans les tester, une solution simple consiste à s&#8217;assurer qu&#8217;elles ont bien une valeur avant toute chose. Par exemple, le code de tout à l&#8217;heure devient :</p>
<pre>//$bob = "pas initialisée, c'est un commentaire";
if(isset($bob))
{
	print $bob; // cela va générer une erreur notice
}
else
{
	// faire autre chose
}</pre>
<p>On comprend que répéter ce code à chaque fois peut être facilement très fastidieux&#8230; Mais on peut s&#8217;éviter cette peine grâce à la petite fonction suivante :</p>
<pre>function getIfSet(&amp; $var, $default = null)
{
	if(isset($var))
	{
		return $var;
	}
	else
	{
		return $default;
	}
}</pre>
<p>Cette fonction prend en premier argument la variable que l&#8217;on souhaite utiliser, mais dont on ignore si elle est initialisée ou non. Le deuxième argument, qui est optionnel (et est à <em>null </em>par défaut), est la valeur qui sera renvoyée s&#8217;il se trouve que la variable n&#8217;est pas initialisée :</p>
<pre>//$bob = "pas initialisée, c'est un commentaire";
print $bob; // cela va générer une erreur de type notice
print getIfSet($bob); // cela ne génère pas d'erreur et n'affiche rien
print getIfSet($bob, "pas initialisée"); // cela affiche "pas initialisée"</pre>
<p>Cette fonction sera à coup sûr très utile à tous ceux qui souhaitent débarrasser leur code de ce type d&#8217;erreurs !</p>

<p><a href="http://feedads.g.doubleclick.net/~a/UdTXlfNfCfY9fmQ7xDZGtAPZuQ8/0/da"><img src="http://feedads.g.doubleclick.net/~a/UdTXlfNfCfY9fmQ7xDZGtAPZuQ8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UdTXlfNfCfY9fmQ7xDZGtAPZuQ8/1/da"><img src="http://feedads.g.doubleclick.net/~a/UdTXlfNfCfY9fmQ7xDZGtAPZuQ8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/cybwarrior/~4/R2xVlFhNbro" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.cybwarrior.com/2011/04/php-programmer-sans-erreurs-du-type-notice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.cybwarrior.com/2011/04/php-programmer-sans-erreurs-du-type-notice/</feedburner:origLink></item>
		<item>
		<title>L’expérience MagicDroid : comment avoir une application Android à succès ?</title>
		<link>http://feedproxy.google.com/~r/cybwarrior/~3/p-qp6FsY4Tc/</link>
		<comments>http://www.cybwarrior.com/2011/02/lexperience-magicdroid-comment-avoir-une-application-android-a-succes/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 14:43:45 +0000</pubDate>
		<dc:creator>cybwarrior</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[MagicDroid]]></category>

		<guid isPermaLink="false">http://www.cybwarrior.com/?p=495</guid>
		<description><![CDATA[Je suis fier de vous annoncer une nouvelle application Android : MagicDroid.
Le principe est tout simple. Il s&#8217;agit d&#8217;un tour de magie reposant sur la numération binaire, qui doit être au moins aussi vieux que celui-ci.
En fait, j&#8217;ai fait cette application avant tout comme un test. En effet, le Calendrier Philosophique m&#8217;a demandé plusieurs semaines [...]]]></description>
			<content:encoded><![CDATA[<p>Je suis fier de vous annoncer une nouvelle application Android : <a href="https://market.android.com/details?id=com.ixme.magicdroid"><strong>MagicDroid</strong></a>.</p>
<p>Le principe est tout simple. Il s&#8217;agit d&#8217;un tour de magie reposant sur la numération binaire, qui doit être au moins aussi vieux que celui-ci.</p>
<p>En fait, j&#8217;ai fait cette application avant tout comme un test. En effet, le <a href="http://www.cybwarrior.com/2011/02/la-calendrier-philosophique-ma-premiere-application-sous-android/"><strong>Calendrier Philosophique</strong></a> m&#8217;a demandé plusieurs semaines de travail intensif, alors que celle-ci seulement quelques heures. Je voulais comparer, et voir en terme de succès ce qu&#8217;il en serait. Faut-il qu&#8217;une application soit très travaillée, bien finie, repose sur un bon concept pour qu&#8217;elle soit plébiscitée ? Ou un petit truc bidouillé en quelques heures suffit-il ?</p>
<p>Les résultats sont sans appel, et confirme un peu ce que je soupçonnais. Je joue la carte de la transparence, et vous livre mes chers statistiques :</p>
<table border="0" align="center">
<tbody>
<tr>
<th></th>
<th>Calendrier Philosophique</th>
<th>MagicDroid</th>
</tr>
<tr>
<td>Téléchargements</td>
<td>1070</td>
<td>675</td>
</tr>
<tr>
<td>Installations actives</td>
<td>31%</td>
<td>56%</td>
</tr>
<tr>
<td>Note</td>
<td>4 étoiles</td>
<td>5 étoiles</td>
</tr>
<tr>
<td>Votes</td>
<td>8</td>
<td>6</td>
</tr>
<tr>
<td>Commentaires</td>
<td>5</td>
<td>4</td>
</tr>
</tbody>
</table>
<p>Sachant que j&#8217;ai fait le <strong>MagicDroid</strong> quelques semaines après : ces chiffres sont à pondérer. Reste que l&#8217;on voit que le <strong>MagicDroid</strong>, malgré ses défauts, plaît beaucoup plus ! Notamment les installations actives : cela laisse penser que beaucoup de personnes l&#8217;utilisent régulièrement !</p>
<p>Si vous voulez avoir du succès, laissez tomber les applications culturelles : préférez donc le divertissement !</p>
<p>Comme <strong>MagicDroid</strong> semble plaire dans son état actuel, je vais essayer, dès que j&#8217;aurai le temps, de la perfectionner et la rendre un peu plus intéressante. J&#8217;ai déjà quelques idées !</p>

<p><a href="http://feedads.g.doubleclick.net/~a/2GhRLNfn9wzC-w0yaiGu8I3fkdc/0/da"><img src="http://feedads.g.doubleclick.net/~a/2GhRLNfn9wzC-w0yaiGu8I3fkdc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2GhRLNfn9wzC-w0yaiGu8I3fkdc/1/da"><img src="http://feedads.g.doubleclick.net/~a/2GhRLNfn9wzC-w0yaiGu8I3fkdc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/cybwarrior/~4/p-qp6FsY4Tc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.cybwarrior.com/2011/02/lexperience-magicdroid-comment-avoir-une-application-android-a-succes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.cybwarrior.com/2011/02/lexperience-magicdroid-comment-avoir-une-application-android-a-succes/</feedburner:origLink></item>
		<item>
		<title>Le calendrier philosophique : ma première application sous Android</title>
		<link>http://feedproxy.google.com/~r/cybwarrior/~3/hO13cwi2Vwg/</link>
		<comments>http://www.cybwarrior.com/2011/02/la-calendrier-philosophique-ma-premiere-application-sous-android/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 19:13:35 +0000</pubDate>
		<dc:creator>cybwarrior</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.cybwarrior.com/?p=484</guid>
		<description><![CDATA[Depuis que j&#8217;ai découvert Android, j&#8217;ai l&#8217;impression de revivre les premières émotions que j&#8217;avais connues alors que je découvrais l&#8217;informatique et la programmation il y a de ça plusieurs années : j&#8217;ai envie de développer toutes sortes d&#8217;applications. Et je viens de finir la première ! J&#8217;ai en effet collaboré avec Morbleu ! afin de [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis que j&#8217;ai découvert <strong>Android</strong>, j&#8217;ai l&#8217;impression de revivre les premières émotions que j&#8217;avais connues alors que je découvrais l&#8217;informatique et la programmation il y a de ça plusieurs années : j&#8217;ai envie de développer toutes sortes d&#8217;applications. Et je viens de finir la première ! J&#8217;ai en effet collaboré avec <a href="http://www.morbleu.com"><strong>Morbleu !</strong></a> afin de mettre au point leur <strong>« <a href="http://www.morbleu.com/le-calendrier-positiviste-dauguste-comte-desormais-aussi-disponible-sous-android/">Calendrier Positiviste</a> »</strong>. Si vous avez Android, n&#8217;hésitez pas à télécharger l&#8217;application et à nous dire ce que vous en pensez !</p>

<p><a href="http://feedads.g.doubleclick.net/~a/EhpwcU8XmBqa83JbWwVhp1C2zjg/0/da"><img src="http://feedads.g.doubleclick.net/~a/EhpwcU8XmBqa83JbWwVhp1C2zjg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/EhpwcU8XmBqa83JbWwVhp1C2zjg/1/da"><img src="http://feedads.g.doubleclick.net/~a/EhpwcU8XmBqa83JbWwVhp1C2zjg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/cybwarrior/~4/hO13cwi2Vwg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.cybwarrior.com/2011/02/la-calendrier-philosophique-ma-premiere-application-sous-android/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.cybwarrior.com/2011/02/la-calendrier-philosophique-ma-premiere-application-sous-android/</feedburner:origLink></item>
		<item>
		<title>Samsung R730 : régler la luminosité de l’écran avec Ubuntu</title>
		<link>http://feedproxy.google.com/~r/cybwarrior/~3/dRj7c3yUIiU/</link>
		<comments>http://www.cybwarrior.com/2011/01/samsung-r730-regler-la-luminosite-de-lecran-avec-ubuntu/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 16:56:40 +0000</pubDate>
		<dc:creator>cybwarrior</dc:creator>
				<category><![CDATA[Trucs & astuces]]></category>
		<category><![CDATA[Samsung R730]]></category>

		<guid isPermaLink="false">http://www.cybwarrior.com/?p=478</guid>
		<description><![CDATA[Suite de mes aventures avec mon tout nouveau Samsung R730 et l&#8217;installation d&#8217;Ubuntu. Je rassure tout le monde : tout a parfaitement fonctionné. L&#8217;unique petit soucis que j&#8217;ai rencontré concernait le réglage de la luminosité de l&#8217;écran avec les touches FN. L&#8217;applet s&#8217;affichait bien, mais il n&#8217;y avait aucun effet.
Après quelques recherches, pour résoudre ce [...]]]></description>
			<content:encoded><![CDATA[<p>Suite de mes aventures avec mon tout nouveau <strong>Samsung R730</strong> et l&#8217;installation d&#8217;<strong>Ubuntu</strong>. Je rassure tout le monde : tout a parfaitement fonctionné. L&#8217;unique petit soucis que j&#8217;ai rencontré concernait le réglage de la luminosité de l&#8217;écran avec les touches <strong>FN</strong>. L&#8217;applet s&#8217;affichait bien, mais il n&#8217;y avait aucun effet.</p>
<p>Après quelques recherches, pour résoudre ce problème, j&#8217;ai dû :</p>
<ol>
<li>Dans le BIOS, mettre le réglage de la luminosité sur &laquo;&nbsp;User&nbsp;&raquo; et non plus sur &laquo;&nbsp;Auto&nbsp;&raquo;.</li>
<li>Installer les paquets <em>samsung-backlight</em>, <em>samsung-tools</em>, <em>nvidia-bl-dkms</em>, après avoir rajouté le dépôt <em>ppa:voria/ppa</em>. Pour ce faire :<br />
<blockquote><p>sudo add-apt-repository ppa:voria/ppa<br />
sudo apt-get update &amp;&amp; sudo apt-get upgrade<br />
sudo apt-get install samsung-backlight samsung-tools nvidia-bl-dkms</p></blockquote>
</li>
<li>Modifier une ligne dans la configuration de <strong>grub</strong> (aussi surprenant que cela puisse paraître) :<br />
<blockquote><p>gksudo gedit /etc/default/grub</p></blockquote>
<p>La ligne a modifier (en gras, la modification) :</p>
<blockquote><p>GRUB_CMDLINE_LINUX_DEFAULT=&nbsp;&raquo;quiet splash <strong>acpi_backlight=vendor</strong>&laquo;&nbsp;</p></blockquote>
<p>Puis :</p>
<blockquote><p>sudo update-grub</p></blockquote>
</li>
<li>Un redémarrage, et ça devrait fonctionner !</li>
</ol>

<p><a href="http://feedads.g.doubleclick.net/~a/zASbfuWoMao5h2-zZWvrGXQGyC0/0/da"><img src="http://feedads.g.doubleclick.net/~a/zASbfuWoMao5h2-zZWvrGXQGyC0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zASbfuWoMao5h2-zZWvrGXQGyC0/1/da"><img src="http://feedads.g.doubleclick.net/~a/zASbfuWoMao5h2-zZWvrGXQGyC0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/cybwarrior/~4/dRj7c3yUIiU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.cybwarrior.com/2011/01/samsung-r730-regler-la-luminosite-de-lecran-avec-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.cybwarrior.com/2011/01/samsung-r730-regler-la-luminosite-de-lecran-avec-ubuntu/</feedburner:origLink></item>
		<item>
		<title>Samsung R730 : dual (triple ?) boot fails!</title>
		<link>http://feedproxy.google.com/~r/cybwarrior/~3/zjuelsNU0z8/</link>
		<comments>http://www.cybwarrior.com/2011/01/samsung-r730-dual-triple-boot-fails/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 08:39:42 +0000</pubDate>
		<dc:creator>cybwarrior</dc:creator>
				<category><![CDATA[Tests]]></category>
		<category><![CDATA[Archos 101 IT]]></category>
		<category><![CDATA[Dell Inspiron 6400]]></category>
		<category><![CDATA[Playstation Move]]></category>
		<category><![CDATA[Samsung R730]]></category>

		<guid isPermaLink="false">http://www.cybwarrior.com/?p=463</guid>
		<description><![CDATA[Conformément à mes vœux de nouvelle année, je vais essayer d&#8217;innover avec des articles touchant à autre chose qu&#8217;à simplement la programmation et le développement. Je vais notamment tenter de vous faire part de mes premiers pas avec les nouveaux appareils que j&#8217;achète. Et il y a déjà du boulot : récemment, j&#8217;ai acquis un [...]]]></description>
			<content:encoded><![CDATA[<p>Conformément à mes vœux de nouvelle année, je vais essayer d&#8217;innover avec des articles touchant à autre chose qu&#8217;à simplement la programmation et le développement. Je vais notamment tenter de vous faire part de mes premiers pas avec les nouveaux appareils que j&#8217;achète. Et il y a déjà du boulot : récemment, j&#8217;ai acquis un <strong>Archos 101 IT</strong>, des manettes <strong>Playstation Move</strong> et, surtout, hier, un ordinateur portable <strong>Samsung R730</strong>.</p>
<p>J&#8217;ai acheté cet ordinateur car celui sur lequel je travaillais quotidiennement depuis 2005 ou 2006, un <strong>Dell Inspiron 6400</strong>, commençait à fatiguer sérieusement (les cordonniers sont toujours les plus mal chaussés). Le <strong>Samsung </strong>était en vente chez <a href="http://www.boulanger.fr/webapp/wcs/stores/servlet/ProductDisplay?catalogId=10001&amp;storeId=10001&amp;langId=-2&amp;categoryId=16467&amp;catEntryId=402854"><strong>Boulanger </strong></a>pour 499 EUR ; et de plus, Boulanger offrait 50 EUR de réduction supplémentaires sous forme de chèque cadeau, ce qui ramène le prix à 449 EUR. Ayant lu quelques impressions positives d&#8217;utilisateurs avant mon achat utilisant <strong>Ubuntu </strong>dessus, je partais confiant.</p>
<p>Car justement, depuis quelques mois/années, j&#8217;utilise exclusivement <strong>Ubuntu </strong>à la maison. Je n&#8217;avais donc que faire du <strong>Windows Seven</strong> installé par défaut sur le Samsung. J&#8217;essayais d&#8217;expliquer cela au vendeur pour qu&#8217;il consente à me le désinstaller, et pour qu&#8217;il me fasse un rabais &#8211; cela se fait de plus en plus -, mais celui-ci ne voulait ou ne pouvait pas : à la place, il essayait plutôt de me vendre un antivirus ou des extensions de garantie, dont je n&#8217;avais pas besoin (<a href="http://doc.ubuntu-fr.org/antivirus#la_pertinence_des_antivirus_sous_gnulinux">un antivirus sous Linux ? pourquoi faire ? oui, je sais, ça fait débat&#8230;</a>).</p>
<p>Je repartais donc avec un ordinateur portable sous Windows Seven&#8230; Étant donné que j&#8217;avais tout de même payé ce système d&#8217;exploitation dans le prix (<a href="http://bons-constructeurs-ordinateurs.info/">on peut l&#8217;estimer à 50, voir 100 EUR du prix !</a>), je me suis alors dit, quitte à installer Ubuntu : autant faire un <em>dual boot</em> ! Je l&#8217;avais déjà fait sur mon vieil Inspiron, et cela fonctionnait très bien &#8211; jusqu&#8217;à ce que j&#8217;ai besoin de la totalité de l&#8217;espace disque, et que, faute d&#8217;utiliser XP plus d&#8217;une fois par an simplement parce que le logiciel de mon téléphone <strong>Nokia </strong>ne pouvait fonctionner sous une autre plateforme, je passe à du full Ubuntu.</p>
<p>Ici également, tout s&#8217;est parfaitement déroulé. Sur les 320 Go d&#8217;espace disque, j&#8217;en attribuais 40 à Seven, et le reste à Ubuntu &#8211; allez savoir pourquoi, le reste correspondait seulement à 240 Go : quelques octets s&#8217;étaient dissipés dans la nature&#8230; Toujours est-il que je pouvais booter aussi bien sur Ubuntu que sur Seven, sans aucun problème !</p>
<p>Tout se passait bien, jusqu&#8217;à ce que je remarque au démarrage dans <strong>Grub </strong>que je possédais en fait trois systèmes d&#8217;exploitation différents : Ubuntu et Seven, ce qui était attendu, mais également un curieux <strong>Vista</strong>. Je cédais alors à ce vilain défaut qu&#8217;est la curiosité, et lançait ce dernier&#8230;</p>
<p><strong>Première erreur !</strong> Je me retrouvais avec une procédure Samsung de restauration du système&#8230; Je quittais évidemment tout ceci dès l&#8217;écran d&#8217;accueil en cliquant sur la croix de la fenêtre, espérant sottement avoir évité le pire. <strong></strong></p>
<p><strong>Seconde erreur !</strong> Je me retrouvais avec un ordinateur désormais incapable de rebooter, de retomber sur Grub&#8230;Sans doute ce Vista/restauration du diable aura-t-il mis la pagaille dans le MBR de mon ordinateur tout neuf !</p>
<p>Je démarrais alors l&#8217;ordinateur sur un <strong>Ubuntu Live CD</strong> pour tenter d&#8217;y voir plus clair. Je découvrais alors que tout était intact au niveau de mes différentes partitions : ouf ! Ce qui clochait devait effectivement être Grub, le boot loader ou le MBR &#8211; j&#8217;avoue ne pas y voir encore complétement clair dans tout cela.</p>
<p>J&#8217;ai pour l&#8217;instant essayé plusieurs choses pour retomber sur mes pattes : <a href="http://doc.ubuntu-fr.org/tutoriel/comment_amorcer_ubuntu_avec_bootmgr#ajout_d_une_entree_de_menu_pour_ubuntu_dans_l_amorceur_de_windows">changer le flag des partitions</a>, et aussi utiliser <a href="http://www.forum-vista.net/reparer-vista-avec-winre-279">un CD de restauration</a> pour réparer le démarrage Windows &#8211; mais rien à faire.</p>
<p>Tout cela ne serait évidemment pas arrivé si je m&#8217;étais débarrassé de Windows et si j&#8217;étais passé à du full Ubuntu. Mais si j&#8217;ai voulu conserver Windows, c&#8217;est parce que : 1) je l&#8217;avais payé dans le prix, et la <a href="http://bons-constructeurs-ordinateurs.info/">procédure de remboursement de Samsung est trop contraignante, décourageante</a> 2) certains appareils (comme mon <strong>Nokia E71</strong> ou mon <strong>iPod Shuffle</strong>) refusent de fournir des applications permettant de se connecter à eux à partir d&#8217;Ubuntu, imposant l&#8217;utilisation de Windows de fait (j&#8217;ai essayé <a href="http://doc.ubuntu-fr.org/wine">Wine </a>pour ces usages, mais sans succès).</p>
<p>Finalement, c&#8217;est en réinstallant Grub de la façon dont le décrit le tutoriel suivant que je suis parvenu à résoudre mon problème et à retrouver la situation initiale : <a href="http://doc.ubuntu-fr.org/tutoriel/comment_restaurer_grub">comment restaurer GRUB ?</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/HbBovrFu6GXRlkg64Jj8mWk9cq0/0/da"><img src="http://feedads.g.doubleclick.net/~a/HbBovrFu6GXRlkg64Jj8mWk9cq0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HbBovrFu6GXRlkg64Jj8mWk9cq0/1/da"><img src="http://feedads.g.doubleclick.net/~a/HbBovrFu6GXRlkg64Jj8mWk9cq0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/cybwarrior/~4/zjuelsNU0z8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.cybwarrior.com/2011/01/samsung-r730-dual-triple-boot-fails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.cybwarrior.com/2011/01/samsung-r730-dual-triple-boot-fails/</feedburner:origLink></item>
		<item>
		<title>Bonne cyber année 2011 !</title>
		<link>http://feedproxy.google.com/~r/cybwarrior/~3/T5qlHp26YQw/</link>
		<comments>http://www.cybwarrior.com/2011/01/bonne-cyber-annee-2011/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 09:48:05 +0000</pubDate>
		<dc:creator>cybwarrior</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.cybwarrior.com/?p=457</guid>
		<description><![CDATA[Bonne cyber année 2011 à tous nos lecteurs !
Merci à vous tous qui continuez à nous suivre en dépit des interruptions et nombreuses refontes du site. CyBWarrior a en effet connu un grand nombre de pauses, réformes et révolutions, et sa forme n&#8217;a pas été toujours simple à suivre.
Qui se souvient encore du temps où [...]]]></description>
			<content:encoded><![CDATA[<p>Bonne cyber année 2011 à tous nos lecteurs !</p>
<p>Merci à vous tous qui continuez à nous suivre en dépit des interruptions et nombreuses refontes du site. <strong>CyBWarrior</strong> a en effet connu un grand nombre de pauses, réformes et révolutions, et sa forme n&#8217;a pas été toujours simple à suivre.</p>
<p>Qui se souvient encore du temps où <strong>CyBWarrior</strong> faisait presque concurrence à<strong> <a href="http://www.commentcamarche.net/">Comment ça marche</a></strong> ou à <a href="http://www.developpez.com/"><strong>Developpez.com</strong></a> ? Hélas ! ce temps est aujourd&#8217;hui révolu : certains choix, certaines décisions tant personnelles que professionnelles nous empêchèrent de continuer à développer <strong>CyBWarrior</strong> autant qu&#8217;il eut été possible sur cette voie.</p>
<p>C&#8217;est pourquoi, il y a peu, nous prîmes la décision de transformer <strong>CyBWarrior</strong> en un <strong>blog</strong>. Sans doute est-ce la forme qui lui conviendrait le mieux pour pouvoir renaître de ses cendres. Mais encore faut-il que nous nous y tenions ! D&#8217;où cette bonne résolution 2011 : des mises à jour plus fréquentes pour cette année ! Et sans doute sur des sujets autres que la simple programmation : autant nous, et vous faire plaisir !</p>
<p>En passant, vous aurez probablement déjà remarqué que nous essayons depuis peu d&#8217;écrire nos articles aussi en Anglais/Américain. Ce n&#8217;est pas notre langue maternelle, et donc, il y aura certainement quelques fautes de nos phrases. N&#8217;hésitez pas à nous les signaler !</p>

<p><a href="http://feedads.g.doubleclick.net/~a/3LawLJvVm7pFuKC0VFCVj-MtnOE/0/da"><img src="http://feedads.g.doubleclick.net/~a/3LawLJvVm7pFuKC0VFCVj-MtnOE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3LawLJvVm7pFuKC0VFCVj-MtnOE/1/da"><img src="http://feedads.g.doubleclick.net/~a/3LawLJvVm7pFuKC0VFCVj-MtnOE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/cybwarrior/~4/T5qlHp26YQw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.cybwarrior.com/2011/01/bonne-cyber-annee-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.cybwarrior.com/2011/01/bonne-cyber-annee-2011/</feedburner:origLink></item>
		<item>
		<title>Comment empêcher Android d’indexer les nouveaux médias dans la bibliothèque</title>
		<link>http://feedproxy.google.com/~r/cybwarrior/~3/W9W92YUvNJw/</link>
		<comments>http://www.cybwarrior.com/2010/11/comment-empecher-android-dindexer-les-nouveaux-medias-dans-la-bibliotheque/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 10:52:11 +0000</pubDate>
		<dc:creator>cybwarrior</dc:creator>
				<category><![CDATA[Trucs & astuces]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.cybwarrior.com/?p=446</guid>
		<description><![CDATA[À chaque fois qu&#8217;un nouveau fichier est ajouté sur un appareil, le système d&#8217;exploitation Android semble l&#8217;indexer à la bibliothèque média. Cette fonctionnalité est très intéressante, car elle permet de retrouver toutes ses photos, vidéos, musiques automatiquement. Cependant, peuvent se présenter des cas où l&#8217;on ne désire pas que les fichiers que l&#8217;on vient d&#8217;ajouter [...]]]></description>
			<content:encoded><![CDATA[<p>À chaque fois qu&#8217;un nouveau fichier est ajouté sur un appareil, le système d&#8217;exploitation <strong>Android</strong> semble l&#8217;indexer à la bibliothèque média. Cette fonctionnalité est très intéressante, car elle permet de retrouver toutes ses photos, vidéos, musiques automatiquement. Cependant, peuvent se présenter des cas où l&#8217;on ne désire pas que les fichiers que l&#8217;on vient d&#8217;ajouter se trouvent indexés.</p>
<p>Pour éviter ceci, c&#8217;est très simple : il suffit de rajouter dans le répertoire contenant le ou les fichiers (et même tous les sous-répertoires) un simple fichier (vide) du nom de :</p>
<blockquote><p><code>.nomedia</code></p></blockquote>
<p>Simple, et efficace !</p>

<p><a href="http://feedads.g.doubleclick.net/~a/YXpKiV8a1oZ_ub937ZoOkmweUs8/0/da"><img src="http://feedads.g.doubleclick.net/~a/YXpKiV8a1oZ_ub937ZoOkmweUs8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YXpKiV8a1oZ_ub937ZoOkmweUs8/1/da"><img src="http://feedads.g.doubleclick.net/~a/YXpKiV8a1oZ_ub937ZoOkmweUs8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/cybwarrior/~4/W9W92YUvNJw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.cybwarrior.com/2010/11/comment-empecher-android-dindexer-les-nouveaux-medias-dans-la-bibliotheque/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.cybwarrior.com/2010/11/comment-empecher-android-dindexer-les-nouveaux-medias-dans-la-bibliotheque/</feedburner:origLink></item>
		<item>
		<title>Facebook lance HipHop, un compilateur PHP</title>
		<link>http://feedproxy.google.com/~r/cybwarrior/~3/v2nTtC2VZEc/</link>
		<comments>http://www.cybwarrior.com/2010/02/facebook-lance-hiphop-un-compilateur-php/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 10:04:44 +0000</pubDate>
		<dc:creator>cybwarrior</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[HipHop]]></category>
		<category><![CDATA[OpenSource]]></category>

		<guid isPermaLink="false">http://www.cybwarrior.com/?p=440</guid>
		<description><![CDATA[Cela n&#8217;aura pas échappé aux plus observateurs : Facebook est construit − plus ou moins − en PHP.
PHP : code interprété ou pseudo-interprété. Sur de petites, moyennes et grandes applications, c&#8217;est un langage parfait. Mais sur une application de la dimension de Facebook, qui est une énorme et gigantesque application utilisée par des millions d&#8217;utilisateurs [...]]]></description>
			<content:encoded><![CDATA[<p>Cela n&#8217;aura pas échappé aux plus observateurs : <strong>Facebook</strong> est construit − plus ou moins − en <strong>PHP</strong>.</p>
<p><strong>PHP</strong> : code interprété ou pseudo-interprété. Sur de petites, moyennes et grandes applications, c&#8217;est un langage parfait. Mais sur une application de la dimension de Facebook, qui est une énorme et gigantesque application utilisée par des millions d&#8217;utilisateurs simultanément, il est nécessaire de l&#8217;optimiser.</p>
<p><a href="http://developers.facebook.com/news.php?blog=1&amp;story=358">Facebook a mis au point une sorte de compilateur pour PHP, baptisé <strong>HipHop</strong></a>, qui <strong>transforme le code PHP en C++</strong>. Grâce à un système en plusieurs couches, le code que l&#8217;on écrit en PHP peut ainsi être au final compilé et gagner en rapidité.</p>
<p><img class="aligncenter size-medium wp-image-441" title="HipHop_transformation_process" src="http://www.cybwarrior.com/wp-content/uploads/2010/02/HipHop_transformation_process-300x187.png" alt="HipHop_transformation_process" width="300" height="187" />Tout ceci est censé être publié en <strong>OpenSource</strong>, pour le plus grand bonheur de tous, contrairement à certains autres produits bien connus&#8230;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/JPHw7LgkMOGzdeBuIg1e5T7lKd4/0/da"><img src="http://feedads.g.doubleclick.net/~a/JPHw7LgkMOGzdeBuIg1e5T7lKd4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JPHw7LgkMOGzdeBuIg1e5T7lKd4/1/da"><img src="http://feedads.g.doubleclick.net/~a/JPHw7LgkMOGzdeBuIg1e5T7lKd4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/cybwarrior/~4/v2nTtC2VZEc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.cybwarrior.com/2010/02/facebook-lance-hiphop-un-compilateur-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.cybwarrior.com/2010/02/facebook-lance-hiphop-un-compilateur-php/</feedburner:origLink></item>
	</channel>
</rss>

