<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel>
	<title>Noplay</title>
	<link>http://www.noplay.net/</link>
	<description></description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>




<item xml:lang="fr">
		<title>Les variables sp&#233;ciales en shell</title>
		<link>http://noplay.net/Les-variables-speciales-en-shell.html</link>
		<guid isPermaLink="true">http://noplay.net/Les-variables-speciales-en-shell.html</guid>
		<dc:date>2009-12-14T18:08:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Noplay</dc:creator>


		<dc:subject>Confirm&#233;</dc:subject>
		<dc:subject>Free Documentation License</dc:subject>
		<dc:subject>Programmation shell</dc:subject>

		<description>$# $# Contient le nombre d'arguments passe a votre script $* $* Contient la liste des param&#232;tres pass&#233;e au script $@ Comme $* mais il prend en compte les espaces, on r&#233;cup&#232;re donc les arguments sous forme de tableau. Par exemple pour ce code : for var in &quot;$*&quot; do echo $var; done test.sh &quot;toto tata&quot; tutu Donnera : toto tata tutu Alors que pour ce code : for var in &quot;$@&quot; do echo $var; done test.sh &quot;toto tata&quot; tutu (...)

-
&lt;a href="http://noplay.net/-UNIX,31-.html" rel="directory"&gt;UNIX&lt;/a&gt;

/ 
&lt;a href="http://noplay.net/+-Confirme-+.html" rel="tag"&gt;Confirm&#233;&lt;/a&gt;, 
&lt;a href="http://noplay.net/+-Free-Documentation-License-+.html" rel="tag"&gt;Free Documentation License&lt;/a&gt;, 
&lt;a href="http://noplay.net/+-Programmation-shell-+.html" rel="tag"&gt;Programmation shell&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;$#&lt;/h3&gt;
&lt;p&gt;&lt;i&gt;$#&lt;/i&gt; Contient le nombre d'arguments passe a votre script&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;$*&lt;/h3&gt;
&lt;p&gt;&lt;i&gt;$*&lt;/i&gt; Contient la liste des param&#232;tres pass&#233;e au script&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;$@&lt;/h3&gt;
&lt;p&gt;Comme &lt;i&gt;$*&lt;/i&gt; mais il prend en compte les espaces, on r&#233;cup&#232;re donc les arguments sous forme de tableau.&lt;/p&gt; &lt;p&gt;Par exemple pour ce code :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;for var in &quot;$*&quot;&lt;br /&gt; do&lt;br /&gt; echo $var;&lt;br /&gt; done&lt;/code&gt;&lt;/div&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;test.sh &quot;toto tata&quot; tutu&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Donnera :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;toto tata tutu&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Alors que pour ce code :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;for var in &quot;$@&quot;&lt;br /&gt; do&lt;br /&gt; echo $var;&lt;br /&gt; done&lt;/code&gt;&lt;/div&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;test.sh &quot;toto tata&quot; tutu&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Donnera :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;toto tata&lt;br /&gt; tutu&lt;/code&gt;&lt;/div&gt;
&lt;h3 class=&quot;spip&quot;&gt;$ ?&lt;/h3&gt;
&lt;p&gt;&lt;i&gt;$ ?&lt;/i&gt; Contient le r&#233;sultat de la derni&#232;re commande ex&#233;cut&#233;&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;$$&lt;/h3&gt;
&lt;p&gt;Le PID du shell&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;$ !&lt;/h3&gt;
&lt;p&gt;Le PID de la derni&#232;re commande mise en background.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;$_&lt;/h3&gt;
&lt;p&gt;Contient le dernier argument de la pr&#233;c&#233;dente commande.&lt;/p&gt; &lt;p&gt;Exemple :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;# echo toto&lt;br /&gt; toto&lt;br /&gt; # echo $_&lt;br /&gt; toto&lt;/code&gt;&lt;/div&gt;
&lt;h3 class=&quot;spip&quot;&gt;$0 $1 $2&lt;/h3&gt;
&lt;p&gt;Ces variables contiennent les arguments pass&#233;s en param&#232;tre &#224; votre script shell.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Lire les IPTC en Python</title>
		<link>http://noplay.net/Lire-les-IPTC-en-Python.html</link>
		<guid isPermaLink="true">http://noplay.net/Lire-les-IPTC-en-Python.html</guid>
		<dc:date>2009-11-10T12:41:34Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Noplay</dc:creator>



		<description>Pour r&#233;cup&#233;rer les IPTC en Python vous avez plusieurs choix dont PIL. Le support des IPTC de PIL &#233;tant incomplet je me suis rabattu sur le module IPTCInfo. Voici un exemple d'utilisation : from iptcinfo import IPTCInfo import sys info = IPTCInfo&amp;#40;'test.jpg'&amp;#41; # Affiche la liste des mots clef print info.keywords

-
&lt;a href="http://noplay.net/-Python-.html" rel="directory"&gt;Python&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Pour r&#233;cup&#233;rer les IPTC en Python vous avez plusieurs choix dont PIL.&lt;/p&gt; &lt;p&gt;Le support des IPTC de PIL &#233;tant incomplet je me suis rabattu sur le module &lt;a href='http://pypi.python.org/pypi/IPTCInfo/' class='spip_out'&gt;IPTCInfo&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Voici un exemple d'utilisation :&lt;/p&gt;
&lt;div class=&quot;coloration_code&quot;&gt;&lt;div class=&quot;spip_Python code&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;from&lt;/span&gt; iptcinfo &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;import&lt;/span&gt; IPTCInfo&lt;br /&gt;
&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: #dc143c;&quot;&gt;sys&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
info = IPTCInfo&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'test.jpg'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Affiche la liste des mots clef&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;print&lt;/span&gt; info.&lt;span style=&quot;color: black;&quot;&gt;keywords&lt;/span&gt;&lt;br /&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Effacer l'historique dans bash</title>
		<link>http://noplay.net/Effacer-l-historique-dans-bash.html</link>
		<guid isPermaLink="true">http://noplay.net/Effacer-l-historique-dans-bash.html</guid>
		<dc:date>2009-07-31T08:30:15Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Noplay</dc:creator>



		<description>Parfois on est mal r&#233;veill&#233; et un drame arrive. On tape son mot de passe dans la console... Du coup il faut l'effacer au plus vite de votre historique. Pour cela dans bash il suffit de faire : history -c

-
&lt;a href="http://noplay.net/-Logiciels-client-.html" rel="directory"&gt;Logiciels client&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Parfois on est mal r&#233;veill&#233; et un drame arrive. On tape son mot de passe dans la console... Du coup il faut l'effacer au plus vite de votre historique.&lt;/p&gt; &lt;p&gt;Pour cela dans bash il suffit de faire :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;history -c&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Changer une passphrase ssh</title>
		<link>http://noplay.net/Changer-une-passphrase-ssh.html</link>
		<guid isPermaLink="true">http://noplay.net/Changer-une-passphrase-ssh.html</guid>
		<dc:date>2009-06-25T13:29:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Noplay</dc:creator>



		<description>Si vous souhaitez changer une passphrase sur une clef SSH : ssh-keygen -p Il vous demande ensuite le chemin de votre clef. Pour finir il suffit ensuite d'entrer l'ancienne clef, puis la nouvelle.

-
&lt;a href="http://noplay.net/-Logiciels-client-.html" rel="directory"&gt;Logiciels client&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Si vous souhaitez changer une passphrase sur une clef SSH :
ssh-keygen -p&lt;/p&gt; &lt;p&gt;Il vous demande ensuite le chemin de votre clef.&lt;/p&gt; &lt;p&gt;Pour finir il suffit ensuite d'entrer l'ancienne clef, puis la nouvelle.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>GetText</title>
		<link>http://noplay.net/GetText.html</link>
		<guid isPermaLink="true">http://noplay.net/GetText.html</guid>
		<dc:date>2009-05-05T08:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Noplay</dc:creator>


		<dc:subject>planet-libre</dc:subject>

		<description>La traduction d'une application est un vrais probl&#232;me car il faut une m&#233;thode qui rajoute peu de travail au d&#233;veloppeur et qui permettent une traduction facile. On peut bien sur bricoler un syst&#232;me personelle pour g&#233;rer ce probl&#232;me mais il faudra aussi d&#233;velloper les outils annexe permettant de maintenir &#224; jours les diff&#233;rentes traduction GetText est un outils tr&#232;s utilis&#233; dans le monde de l'open source et disponible pour de nombreux languages. Il est tr&#232;s discret &#224; utiliser (...)

-
&lt;a href="http://noplay.net/-PHP-.html" rel="directory"&gt;PHP&lt;/a&gt;

/ 
&lt;a href="http://noplay.net/+-planet-libre-+.html" rel="tag"&gt;planet-libre&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;La traduction d'une application est un vrais probl&#232;me car il faut une m&#233;thode qui rajoute peu de travail au d&#233;veloppeur et qui permettent une traduction facile.&lt;/p&gt; &lt;p&gt;On peut bien sur bricoler un syst&#232;me personelle pour g&#233;rer ce probl&#232;me mais il faudra aussi d&#233;velloper les outils annexe permettant de maintenir &#224; jours les diff&#233;rentes traduction&lt;/p&gt; &lt;p&gt;GetText est un outils tr&#232;s utilis&#233; dans le monde de l'open source et disponible pour de nombreux languages. Il est tr&#232;s discret &#224; utiliser puisqu'il suffit de remplacer :&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;echo &quot;Hello World&quot;;&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;par&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;echo _(&quot;Hello World&quot;);&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;La chaine hello world sera ensuite extraite automatiquement de votre code source par les outils de gettext. Les d&#233;veloppeurs n'ont donc pas &#224; se soucier de maintenir &#224; jour le fichier de traduction.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Extraction des chaines &#224; traduire&lt;/h3&gt;
&lt;p&gt;Pour extraire les chaines &#224; traduire de vos fichier php il suffit d'utiliser la commande :&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;xgettext *.php&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;Cela va vous g&#233;n&#233;rer un fichier messages.po.&lt;/p&gt; &lt;p&gt;Il faut ensuite le compiler en fichier .mo utilisable par gettext.&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;msgfmt messages.po&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;L'un des principeaux probl&#232;me avec beaucoup de m&#233;thode est la mise &#224; jour des fichier de traduction. Et c'est l&#224; o&#249; &#224; mon gout gettext trouve tout son int&#234;ret.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://noplay.net/local/cache-vignettes/L8xH11/puce-32883.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; Commencez par renommer le fichier messages.po en old.po.
&lt;br /&gt;&lt;img src=&quot;http://noplay.net/local/cache-vignettes/L8xH11/puce-32883.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; G&#233;n&#233;rez le fichier messages.po
&lt;br /&gt;&lt;img src=&quot;http://noplay.net/local/cache-vignettes/L8xH11/puce-32883.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; Mergez les deux fichier grace &#224; cette commande :&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;msgmerge old.po messages.po --output-file=messages.po&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt;Quid des performances ?&lt;/h3&gt;
&lt;p&gt;GetText est puissant et on pourrait penser que cette solution est plus lente que un $lang[$language]['welcome']. Et bien non l'extension gettext est &#233;crite en C et ses performance sont meilleur que le simple tableau de string.&lt;/p&gt; &lt;p&gt;&lt;a href='http://mel.melaxis.com/devblog/2006/04/10/benchmarking-php-localization-is-gettext-fast-enough/' class='spip_out'&gt;Un benchmark&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Bibliographie&lt;/h3&gt;
&lt;p&gt;Un article int&#233;rressant sur gettext et php :
&lt;a href='http://www.onlamp.com/pub/a/php/2002/06/13/php.html' class='spip_out'&gt;http://www.onlamp.com/pub/a/php/200...&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Le site de gettext :
&lt;a href='http://www.gnu.org/software/gettext/' class='spip_out'&gt;http://www.gnu.org/software/gettext/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>iWork.com corruption</title>
		<link>http://noplay.net/iWork-com-corruption.html</link>
		<guid isPermaLink="true">http://noplay.net/iWork-com-corruption.html</guid>
		<dc:date>2009-01-08T09:28:57Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Noplay</dc:creator>



		<description>J'ai pas jou&#233; longtemps et il est d&#233;j&#224; cass&#233;.

-
&lt;a href="http://noplay.net/-Mac-.html" rel="directory"&gt;Mac&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;J'ai pas jou&#233; longtemps et il est d&#233;j&#224; cass&#233;.&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_169 spip_documents spip_documents_center' &gt;
&lt;img src='http://noplay.net/IMG/png/Image_2.png' width='500' height='287' alt=&quot;&quot; style='height:287px;width:500px;' /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Annuler une revision</title>
		<link>http://noplay.net/Annuler-une-revision.html</link>
		<guid isPermaLink="true">http://noplay.net/Annuler-une-revision.html</guid>
		<dc:date>2008-11-29T13:55:55Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Noplay</dc:creator>



		<description>Dans subversion pour annuler une modification en ligne de commande. Ce placer dans le r&#233;pertoire. A l'aide de la commande svn info r&#233;cup&#233;rez l'URL du d&#233;pots. Chemin : noplay# svn info Chemin: . URL : http://svn.noplay.net/ Racine du depot : svn://svn.noplay.net UUID du depot : 9e0b0c50-2be5-40e4-8cd1-2e3fc7b79647 Revision : 42 Type de noeud : repertoire Tache programme : normale Auteur de la derniere modification : noplay Revision de la derniere modification : 42 (...)

-
&lt;a href="http://noplay.net/-Subversion-.html" rel="directory"&gt;Subversion&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Dans subversion pour annuler une modification en ligne de commande.&lt;/p&gt; &lt;p&gt;Ce placer dans le r&#233;pertoire.&lt;/p&gt; &lt;p&gt;A l'aide de la commande &lt;i&gt;svn info&lt;/i&gt; r&#233;cup&#233;rez l'URL du d&#233;pots.&lt;/p&gt; &lt;p&gt;Chemin :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;noplay# svn info&lt;br /&gt; Chemin: .&lt;br /&gt; URL : http://svn.noplay.net/&lt;br /&gt; Racine du depot : svn://svn.noplay.net&lt;br /&gt; UUID du depot : 9e0b0c50-2be5-40e4-8cd1-2e3fc7b79647&lt;br /&gt; Revision : 42&lt;br /&gt; Type de noeud : repertoire&lt;br /&gt; Tache programme : normale&lt;br /&gt; Auteur de la derniere modification : noplay&lt;br /&gt; Revision de la derniere modification : 42&lt;br /&gt; Date de la derniere modification: 2008-07-18 21:09:59 +0200 (ven 18 jui 2008&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;A l'aide de la commande &lt;i&gt;svn log&lt;/i&gt; r&#233;cup&#233;rez la revision que vous souhaitez annuler :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;noplay# svn log | head&lt;br /&gt; ------------------------------------------------------------------------&lt;br /&gt; r42 | noplay | 2008-07-18 21:09:59 +0200 (ven 18 jui 2008) | 1 line&lt;br /&gt; Je casse tout&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Dans notre exemple c'est 42&lt;/p&gt; &lt;p&gt;Puis on repart en arri&#232;re :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;svn merge -r 42:41 http://svn.noplay.net&lt;br /&gt; svn commit&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Pourquoi il ne faut pas utiliser ?&gt;</title>
		<link>http://noplay.net/Pourquoi-il-ne-faut-pas-utiliser.html</link>
		<guid isPermaLink="true">http://noplay.net/Pourquoi-il-ne-faut-pas-utiliser.html</guid>
		<dc:date>2008-10-07T08:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Noplay</dc:creator>



		<description>La plupart des codes PHP ressemblent &#224; cela : &lt;?php echo &quot;Hello&quot;; ?&gt; Cela marche tr&#232;s bien. Le probl&#232;me c'est que si vous laissez des espaces apr&#232;s le tag fermant il seront aussi envoy&#233; aux navigateurs. Quel est le soucis me direz vous ? Le probl&#232;me Imaginons que vous vouliez g&#233;n&#233;rer un fichier binaire comme par exemple une image, les espaces suppl&#233;mentaires risque de corrompre le fichier. Autres probl&#232;mes plus courant c'est dans le cadre de (...)

-
&lt;a href="http://noplay.net/-PHP-.html" rel="directory"&gt;PHP&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;La plupart des codes PHP ressemblent &#224; cela :&lt;/p&gt;
&lt;div class=&quot;coloration_code&quot;&gt;&lt;div class=&quot;spip_php code&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&lt;?php&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Hello&quot;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&gt;&lt;/span&gt;&lt;br /&gt; &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Cela marche tr&#232;s bien. Le probl&#232;me c'est que si vous laissez des espaces apr&#232;s le tag fermant il seront aussi envoy&#233; aux navigateurs. Quel est le soucis me direz vous ?&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Le probl&#232;me&lt;/h3&gt;
&lt;p&gt;Imaginons que vous vouliez g&#233;n&#233;rer un fichier binaire comme par exemple une image, les espaces suppl&#233;mentaires risque de corrompre le fichier.&lt;/p&gt; &lt;p&gt;Autres probl&#232;mes plus courant c'est dans le cadre de l'utilisation de session. Nous avons deux fichier&lt;/p&gt; &lt;p&gt;&lt;strong&gt;lib.php&lt;/strong&gt; :&lt;/p&gt; &lt;div class=&quot;coloration_code&quot;&gt;&lt;div class=&quot;spip_php code&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&lt;?php&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ff0000&quot;&gt;function hello&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&#123;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&#125;&lt;/span&gt;&lt;br /&gt;
?&gt;&lt;/span&gt;&lt;br /&gt;
PLEIN D ESPACES&lt;br /&gt; &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;index.php&lt;/strong&gt; :&lt;/p&gt; &lt;p&gt;&lt;code class=&quot;php&quot;&gt;
&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;
&lt;span style=&quot;color: #0000BB&quot;&gt;&lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;include(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;lib.php&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;session_start&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Vous allez voir ce type d'erreur :
&lt;strong&gt;Warning : session_start() : Cannot send session cookie - headers already sent by&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;En effet le m&#233;canisme de session de PHP n&#233;cessite de modifier les headers HTTP et lorsque PHP voit le premier caract&#232;re du contenu de la page il envoi les headers.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;La solution&lt;/h3&gt;
&lt;p&gt;La solution est de ne pas mettre le tag fermant votre code marchera parfaitement et vous &#233;limin&#233;s le risque de caract&#232;res parasites.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>The Gimp 2.6</title>
		<link>http://noplay.net/The-Gimp-2-6.html</link>
		<guid isPermaLink="true">http://noplay.net/The-Gimp-2-6.html</guid>
		<dc:date>2008-10-01T20:41:09Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Noplay</dc:creator>


		<dc:subject>planet-libre</dc:subject>

		<description>La version 2.6 de The Gimp est disponible. Le changement qui m'a saut&#233; imm&#233;diatement aux yeux c'est qu'il n'y a plus de menu dans la boite &#224; outils et lors du lancement on voit une fen&#234;tre image vide. La fen&#234;tre d'image devient donc la principale fen&#234;tre de l'applications et les autres fen&#234;tres des fen&#234;tres utilitaire. Cela n'a l'air de rien, mais ces modifications devraient permettre aux Windows manager de mieux g&#233;rer les fen&#234;tres de The (...)

-
&lt;a href="http://noplay.net/-The-Gimp-.html" rel="directory"&gt;The Gimp&lt;/a&gt;

/ 
&lt;a href="http://noplay.net/+-planet-libre-+.html" rel="tag"&gt;planet-libre&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;La version 2.6 de The Gimp est disponible.&lt;/p&gt; &lt;p&gt;Le changement qui m'a saut&#233; imm&#233;diatement aux yeux c'est qu'il n'y a plus de menu dans la boite &#224; outils et lors du lancement on voit une fen&#234;tre image vide.&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_168 spip_documents spip_documents_center' &gt;
&lt;img src='http://noplay.net/local/cache-vignettes/L500xH289/gimp26_01-f8b9b.jpg' width='500' height='289' alt=&quot;&quot; style='height:289px;width:500px;' /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;La fen&#234;tre d'image devient donc la principale fen&#234;tre de l'applications et les autres fen&#234;tres des fen&#234;tres utilitaire. Cela n'a l'air de rien, mais ces modifications devraient permettre aux Windows manager de mieux g&#233;rer les fen&#234;tres de The Gimp.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://noplay.net/local/cache-vignettes/L8xH11/puce-32883.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://gimp.org/release-notes/gimp-2.6.html' class='spip_out'&gt;Une explication compl&#232;te des changements&lt;/a&gt;
&lt;br /&gt;&lt;img src=&quot;http://noplay.net/local/cache-vignettes/L8xH11/puce-32883.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://gimp.org/' class='spip_out'&gt;Le site officiel de The Gimp&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>D&#233;tecter si on est dans une iframe</title>
		<link>http://noplay.net/Detecter-si-on-est-dans-une-iframe.html</link>
		<guid isPermaLink="true">http://noplay.net/Detecter-si-on-est-dans-une-iframe.html</guid>
		<dc:date>2008-09-05T22:13:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Noplay</dc:creator>


		<dc:subject>D&#233;butant</dc:subject>

		<description>Parfois il peut &#234;tre utile de d&#233;tecter si notre Javascript est lanc&#233; dans une iframe. Le code suivant affiche une boite d'alerte si on est dans une iframe. &lt;script language=&quot;JavaScript&quot;&gt; &lt;!-- if &amp;#40;top.frames.length!=0&amp;#41; &amp;#123; alert&amp;#40;'Dans une iframe'&amp;#41;; &amp;#125; // --&gt; &lt;/script&gt;

-
&lt;a href="http://noplay.net/-JavaScript-.html" rel="directory"&gt;JavaScript&lt;/a&gt;

/ 
&lt;a href="http://noplay.net/+-Debutant-+.html" rel="tag"&gt;D&#233;butant&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Parfois il peut &#234;tre utile de d&#233;tecter si notre Javascript est lanc&#233; dans une iframe.&lt;/p&gt; &lt;p&gt;Le code suivant affiche une boite d'alerte si on est dans une iframe.&lt;/p&gt;
&lt;div class=&quot;coloration_code&quot;&gt;&lt;div class=&quot;spip_Javascript cadre&quot;&gt;&lt;div class=&quot;javascript&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;script language=&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;JavaScript&quot;&lt;/span&gt;&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;!--&lt;/div&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;top.&lt;span style=&quot;color: #006600;&quot;&gt;frames&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;length&lt;/span&gt;!=&lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt; &lt;span style=&quot;color: #000066;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'Dans une iframe'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// --&gt; &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;/script&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
