<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kodono &#187; Programmation</title>
	<atom:link href="http://blog.kodono.info/wordpress/tag/programmation/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kodono.info/wordpress</link>
	<description>Pour tous les technophiles</description>
	<lastBuildDate>Thu, 09 Sep 2010 12:18:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Utiliser la première occurrence dans une regexp [Javascript]</title>
		<link>http://blog.kodono.info/wordpress/2010/08/02/premiere-occurrence-regexp/</link>
		<comments>http://blog.kodono.info/wordpress/2010/08/02/premiere-occurrence-regexp/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 10:04:51 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[regexp]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=458</guid>
		<description><![CDATA[[niveau: intermédiaire] Lorsque vous utilisez une expression régulière, cela va vous retourner un maximum de caractères, ainsi si nous prenons la chaine &#171;&#160;foo:bar:gniii&#160;&#187; avec la regexp /^(.*):(.*)$/, on va avoir &#171;&#160;foo:bar&#160;&#187; d&#8217;une part et &#171;&#160;gniii&#160;&#187; d&#8217;autre part. Alors comment faire pour obtenir la première occurrence de &#171;&#160;:&#160;&#187; dans notre chaine ? Il suffit d&#8217;ajouter le [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Lorsque vous utilisez une expression régulière, cela va vous retourner un maximum de caractères, ainsi si nous prenons la chaine &laquo;&nbsp;foo:bar:gniii&nbsp;&raquo; avec la regexp <i>/^(.*):(.*)$/</i>, on va avoir &laquo;&nbsp;foo:bar&nbsp;&raquo; d&#8217;une part et &laquo;&nbsp;gniii&nbsp;&raquo; d&#8217;autre part.<br />
Alors comment faire pour obtenir la première occurrence de &laquo;&nbsp;:&nbsp;&raquo; dans notre chaine ? Il suffit d&#8217;ajouter le caractère clé &laquo;&nbsp;?&nbsp;&raquo;.<br />
Ainsi dans notre exemple il faut écrire : <i>/^(.*<b>?</b>):(.*)$/</i>, qui retournera &laquo;&nbsp;foo&nbsp;&raquo; et &laquo;&nbsp;bar:gniii&nbsp;&raquo;.</p>
<p>A noter que cela est valable pour la fonction &laquo;&nbsp;match&nbsp;&raquo; de Javascript, mais aussi pour les autres langages comme PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2010/08/02/premiere-occurrence-regexp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encoder les caractères spéciaux d&#8217;une URL en Java (comme Javascript.escape()) [Programmation]</title>
		<link>http://blog.kodono.info/wordpress/2010/03/26/encoder-les-caracteres-speciaux-dune-url-en-java-comme-javascript-escape-programmation/</link>
		<comments>http://blog.kodono.info/wordpress/2010/03/26/encoder-les-caracteres-speciaux-dune-url-en-java-comme-javascript-escape-programmation/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 22:38:05 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=429</guid>
		<description><![CDATA[[niveau intermédiaire] Il est possible de reproduire la fonction escape() de Javascript pour le langage Java. Cela permet par exemple de transformer &#171;&#160;François&#160;&#187; en &#171;&#160;Fran%E7ois&#160;&#187; ou encore &#171;&#160;Maël&#160;&#187; en &#171;&#160;Ma%EBl&#160;&#187;. public String myEncodeURI(String str) { StringBuffer ostr = new StringBuffer(); for(int i=0; i&#60;str.length(); i++) { char ch = str.charAt(i); if ((ch &#62;= 0x0020) &#038;&#038; (ch [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>Il est possible de reproduire la fonction <em>escape()</em> de Javascript pour le langage Java. Cela permet par exemple de transformer &laquo;&nbsp;François&nbsp;&raquo; en &laquo;&nbsp;Fran%E7ois&nbsp;&raquo; ou encore &laquo;&nbsp;Maël&nbsp;&raquo; en &laquo;&nbsp;Ma%EBl&nbsp;&raquo;.</p>
<div class="code script">
<pre class="js">
public String myEncodeURI(String str) {
  StringBuffer ostr = new StringBuffer();
    for(int i=0; i&lt;str.length(); i++) {
      char ch = str.charAt(i);
      if ((ch &gt;= 0x0020) &#038;&#038; (ch &lt;= 0x007e))
        ostr.append(ch); // Pas besoin de convertir
      else {
        // conversion en HEX
        String hex = Integer.toHexString(str.charAt(i) &#038; 0xFFFF);
        ostr.append("%"+hex.toUpperCase());
      }
    }
    return (new String(ostr));
}
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2010/03/26/encoder-les-caracteres-speciaux-dune-url-en-java-comme-javascript-escape-programmation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connaître la version d&#8217;Internet Explorer [Javascript]</title>
		<link>http://blog.kodono.info/wordpress/2009/11/05/connaitre-la-version-dinternet-explorer-javascript/</link>
		<comments>http://blog.kodono.info/wordpress/2009/11/05/connaitre-la-version-dinternet-explorer-javascript/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 06:33:33 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=378</guid>
		<description><![CDATA[(niveau intermédiaire) Il est possible de connaître la version d&#8217;Internet Explorer en Javascript en utilisant le User Agent. Cependant, IE8, lorsqu&#8217;il est en mode compatibilité, va retourner IE7 quand on l&#8217;interroge. Cela peut poser problème. Il existe une solution qui permet de détecter IE8 même dans ce mode spécial, et sans utiliser les commentaires conditionnels [...]]]></description>
			<content:encoded><![CDATA[<p>(niveau intermédiaire)</p>
<p>Il est possible de connaître la version d&#8217;Internet Explorer en Javascript en utilisant le User Agent. Cependant, IE8, lorsqu&#8217;il est en mode compatibilité, va retourner IE7 quand on l&#8217;interroge. Cela peut poser problème. Il existe une solution qui permet de détecter IE8 même dans ce mode spécial, et sans utiliser les <a href="http://www.alsacreations.com/astuce/lire/48-commentaires-conditionnels.html">commentaires conditionnels</a> :</p>
<div class="code script">
<pre class="js">
// retourne un entier (5, 6, 7 ou 8), ou false si ce n'est pas IE
function getIEVersion() {
  if (!!(window.attachEvent &#038;&#038; navigator.userAgent.indexOf('Opera') === -1)) {
    var ver = navigator.userAgent.match(/MSIE ([0-9.]+);/);
    if (ver != null &#038;&#038; ver[1] != undefined) {
      ver = parseInt(ver[1]);
      if (ver == 7) {
        if (typeof (window.external.AddToFavoritesBar) != "undefined" ||
            typeof (window.external.AddService) != "undefined" ||
            typeof (window.external.AddService) != "undefined") return 8;
      }
      return ver;
    }
  }
  return false;
}</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/11/05/connaitre-la-version-dinternet-explorer-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simuler un click sur un bouton ou un lien [Programmation]</title>
		<link>http://blog.kodono.info/wordpress/2009/09/04/simuler-un-click-sur-un-bouton-ou-un-lien-programmation/</link>
		<comments>http://blog.kodono.info/wordpress/2009/09/04/simuler-un-click-sur-un-bouton-ou-un-lien-programmation/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 17:51:05 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau débutant]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=312</guid>
		<description><![CDATA[[niveau débutant] En Javascript on peut facilement simuler un clic sur un élément d&#8217;une page HTML. Pour cela on utilisera la fonction suivante : function fireEventClick(elem){ if(document.createEvent){ var e = document.createEvent('MouseEvents'); e.initMouseEvent('click', /* Event type */ true, /* Can bubble */ true, /* Cancelable */ document.defaultView, /* View */ 1, /* Mouse clicks */ 0, [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau débutant]</p>
<p>En Javascript on peut facilement simuler un clic sur un élément d&#8217;une page HTML. Pour cela on utilisera la fonction suivante :</p>
<div class="code script">
<pre class="js">
function fireEventClick(elem){
    if(document.createEvent){
      var e = document.createEvent('MouseEvents');
      e.initMouseEvent('click', /* Event type */
      true, /* Can bubble */
      true, /* Cancelable */
      document.defaultView, /* View */
      1, /* Mouse clicks */
      0, /* Screen x */
      0, /* Screen y */
      0, /* Client x */
      0, /* Client y */
      false, /* Ctrl */
      false, /* Alt */
      false, /* Shift */
      false, /* Meta */
      0, /* Button */
      null); /* Related target */
      elem.dispatchEvent(e);
    } else { // pour IE
      elem.click();
    }
}
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/09/04/simuler-un-click-sur-un-bouton-ou-un-lien-programmation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Indenter un fichier XML [A bookmarker]</title>
		<link>http://blog.kodono.info/wordpress/2009/08/04/indenter-un-fichier-xml-a-bookmarker/</link>
		<comments>http://blog.kodono.info/wordpress/2009/08/04/indenter-un-fichier-xml-a-bookmarker/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 16:49:55 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Niveau débutant]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[À bookmarker]]></category>
		<category><![CDATA[indenter]]></category>
		<category><![CDATA[web service]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=286</guid>
		<description><![CDATA[[niveau: débutant] Grâce au site Aysoon j&#8217;ai découvert http://xmlindent.com/. Ce service gratuit propose de copier/coller du code de type XML qui va alors vous être présenté correctement indenté. Mise à jour: dans les commentaires, Lio propose aussi http://www.indentation-xml.com/ qui, apparemment, supporte mieux les caractères accentués.]]></description>
			<content:encoded><![CDATA[<p>[niveau: débutant]</p>
<p>Grâce au site <a href="http://blog.aysoon.com/">Aysoon</a> j&#8217;ai découvert <a href="http://xmlindent.com/">http://xmlindent.com/</a>. Ce service gratuit propose de copier/coller du code de type XML qui va alors vous être présenté correctement indenté.</p>
<p><strong>Mise à jour</strong>: dans les commentaires, Lio propose aussi <a href="http://www.indentation-xml.com/">http://www.indentation-xml.com/</a> qui, apparemment, supporte mieux les caractères accentués.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/08/04/indenter-un-fichier-xml-a-bookmarker/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Stopper la propagation d&#8217;une action [Programmation]</title>
		<link>http://blog.kodono.info/wordpress/2009/07/28/stopper-la-propagation-dune-action/</link>
		<comments>http://blog.kodono.info/wordpress/2009/07/28/stopper-la-propagation-dune-action/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 16:37:34 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau expert]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=265</guid>
		<description><![CDATA[[niveau: expert] Lorsque vous avez un bouton &#60;button&#62; quelque part dans un formulaire HTML, alors que vous cliquez dessus avec Firefox, ce dernier va vouloir envoyer le formulaire, alors même que le bouton n&#8217;a pas cet objectif. En effet, supposons que vous vouliez que l&#8217;action onclick actionne une quelconque fonction javascript de votre cru. Pour [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: expert]</p>
<p>Lorsque vous avez un bouton <em>&lt;button&gt;</em> quelque part dans un formulaire HTML, alors que vous cliquez dessus avec Firefox, ce dernier va vouloir envoyer le formulaire, alors même que le bouton n&#8217;a pas cet objectif. En effet, supposons que vous vouliez que l&#8217;action <em>onclick</em> actionne une quelconque fonction javascript de votre cru.</p>
<p>Pour éviter ce comportement avec Firefox, on peut essayer d&#8217;insérer un <em>return false</em> qui aura plus ou moins de succès:</p>
<div class="code">
<pre class="xml html">&lt;button id="myButton" onclick="myFunction(); return false;"&gt;do it!&lt;/button&gt;</pre>
</div>
<p>Le <em>return false</em> donnera un résultat très aléatoire, et c&#8217;est pourquoi je conseille plutôt d&#8217;utiliser une fonction qui va stopper la propagation de l&#8217;évènement :</p>
<div class="code">
<pre class="xml html">&lt;button id="myButton" onclick="stopAction(event); myFunction();"&gt;do it!&lt;/button&gt;</pre>
</div>
<div class="code script">
<pre class="js">function stopAction(e) {
  if (!e) e = window.event;
  if (e.cancelBubble != undefined)
    e.cancelBubble = true;
  if (typeof e.stopPropagation != "undefined") {
    e.stopPropagation();
    e.preventDefault();
  }
  return false;
}</pre>
</div>
<p>Avec ça, lorsque vous cliquez sur le bouton, la page ne devrait pas être rechargée.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/07/28/stopper-la-propagation-dune-action/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Algorithmes de tri [Programmation]</title>
		<link>http://blog.kodono.info/wordpress/2009/05/15/algorithmes-de-tri-programmation/</link>
		<comments>http://blog.kodono.info/wordpress/2009/05/15/algorithmes-de-tri-programmation/#comments</comments>
		<pubDate>Fri, 15 May 2009 10:17:25 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau expert]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[À bookmarker]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=146</guid>
		<description><![CDATA[[niveau: expert] Lorsqu&#8217;on programme il arrive très souvent de devoir mettre en place un script de tri personnalisé. Si on se souvient de ses années d&#8217;études, on peut réussir à extraire de sa mémoire les brides d&#8217;un algorithme, mais est-ce vraiment performant ? David Martin s&#8217;est amusé à regrouper tous les algorithmes de tri sur [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: expert]</p>
<p>Lorsqu&#8217;on programme il arrive très souvent de devoir mettre en place un script de tri personnalisé. Si on se souvient de ses années d&#8217;études, on peut réussir à extraire de sa mémoire les brides d&#8217;un algorithme, mais est-ce vraiment performant ?</p>
<p>David Martin s&#8217;est amusé à regrouper tous <a href="http://www.sorting-algorithms.com/">les algorithmes de tri</a> sur son site et à fournir une petite animation pour chacun afin d&#8217;illustrer leur mode de fonctionnement. Vous pourrez donc facilement trouver la formule qui convient le mieux à votre application.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/05/15/algorithmes-de-tri-programmation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tester des expressions régulières (RegExp) en ligne [Programmation]</title>
		<link>http://blog.kodono.info/wordpress/2009/05/06/tester-des-expressions-regulieres-regexp-en-ligne-programmation/</link>
		<comments>http://blog.kodono.info/wordpress/2009/05/06/tester-des-expressions-regulieres-regexp-en-ligne-programmation/#comments</comments>
		<pubDate>Wed, 06 May 2009 11:40:35 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau expert]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[regexp]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=123</guid>
		<description><![CDATA[[niveau: expert] Vous connaissez certainement les RegExp. Lumadis.be propose de tester nos expressions régulières en utilisant les fonctions PHP preg_match, preg_match_all et ereg. Un outil en ligne bien pratique pour ces expressions parfois difficiles à formater ! EDIT: on notera aussi l&#8217;existence de cet autre outils en ligne très complet : http://gskinner.com/RegExr/]]></description>
			<content:encoded><![CDATA[<p>[niveau: expert]</p>
<p>Vous connaissez certainement les <a href="http://www.expreg.com/">RegExp</a>. Lumadis.be propose de <a href="http://lumadis.be/regex/test_regex.php?lang=fr">tester nos expressions régulières</a> en utilisant les fonctions PHP <em>preg_match</em>, <em>preg_match_all</em> et <em>ereg</em>.</p>
<p>Un outil en ligne bien pratique pour ces expressions parfois difficiles à formater !</p>
<p><b>EDIT</b>: on notera aussi l&#8217;existence de cet autre outils en ligne très complet : <a href="http://gskinner.com/RegExr/">http://gskinner.com/RegExr/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/05/06/tester-des-expressions-regulieres-regexp-en-ligne-programmation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
