<?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; Niveau intermédiaire</title>
	<atom:link href="http://blog.kodono.info/wordpress/tag/niveau-intermediaire/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kodono.info/wordpress</link>
	<description>Pour tous les technophiles</description>
	<lastBuildDate>Fri, 03 Feb 2012 08:15:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DOMContentLoaded pour cross browser (multi-navigateurs) [Javascript]</title>
		<link>http://blog.kodono.info/wordpress/2012/01/23/domcontentloaded-pour-cross-browser-multi-navigateurs-javascript/</link>
		<comments>http://blog.kodono.info/wordpress/2012/01/23/domcontentloaded-pour-cross-browser-multi-navigateurs-javascript/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 14:57:18 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=899</guid>
		<description><![CDATA[Après avoir parcouru le Net pour un évènement DOMContentLoaded (qui s&#8217;enclenche avant window.onload) qui puisse fonctionner sur tous les navigateurs (et en particulier IE7), j&#8217;ai pu trouver un article qui explique bien les différentes étapes et la solution adaptée : http://javascript.info/tutorial/onload-ondomcontentloaded Pour résumer la fonction à utiliser est : function bindReady(handler){ var called = false [...]]]></description>
			<content:encoded><![CDATA[<p>Après avoir parcouru le Net pour un évènement <code>DOMContentLoaded</code> (qui s&#8217;enclenche avant <code>window.onload</code>) qui puisse fonctionner sur tous les navigateurs (et en particulier IE7), j&#8217;ai pu trouver un article qui explique bien les différentes étapes et la solution adaptée : <a href="http://javascript.info/tutorial/onload-ondomcontentloaded" title="DOMContentLoaded cross browser article">http://javascript.info/tutorial/onload-ondomcontentloaded</a></p>
<p>Pour résumer la fonction à utiliser est :</p>
<pre class="brush: javascript">function bindReady(handler){
  var called = false
  function ready() {
    if (called) return
    called = true
    handler()
  }
  if ( document.addEventListener ) { // native event
    document.addEventListener( "DOMContentLoaded", ready, false )
  } else if ( document.attachEvent ) {  // IE
    try { var isFrame = window.frameElement != null } catch(e) {}

    // IE, the document is not inside a frame
    if ( document.documentElement.doScroll &#038;&#038; !isFrame ) {
      function tryScroll(){
        if (called) return
        try {
          document.documentElement.doScroll("left")
          ready()
        } catch(e) {
          setTimeout(tryScroll, 10)
        }
      }
      tryScroll()
    }

    // IE, the document is inside a frame
    document.attachEvent("onreadystatechange", function(){
      if ( document.readyState === "complete" ) {
        ready()
      }
    })
  }

  // Old browsers
  if (window.addEventListener)
    window.addEventListener('load', ready, false)
  else if (window.attachEvent)
    window.attachEvent('onload', ready)
  else {
    var fn = window.onload // very old browser, copy old onload
    window.onload = function() { // replace by new onload and call the old one
      fn &#038;&#038; fn()
      ready()
    }
  }
}</pre>
<p>A partir de là vous pouvez appeler votre fonction avec :</p>
<pre class="brush: javascript">bindReady(function() {
  /* quelque chose qui doit se lancer après le chargement du DOM */
});</pre>
<p>Dans le cas où vous voudriez appeler plusieurs fonctions, alors vous pouvez simplement faire quelque chose comme :</p>
<pre class="brush: javascript">
var fonctionsACharger=[];
bindReady(function() {
  for (var i=0; i&lt;functionsACharger.length;i++) functionsACharger[i]();
});

/* on ajoute les fonctions à charger dans notre tableau */
fonctionsACharger.push(function() {
  /* première chose à faire */
});
fonctionsACharger.push(function() {
  alert("Toutes les fonctions sont maintenant chargées !");
});
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2012/01/23/domcontentloaded-pour-cross-browser-multi-navigateurs-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Appeler un lien relatif dans une masterpage [Sharepoint]</title>
		<link>http://blog.kodono.info/wordpress/2012/01/18/appeler-un-lien-relatif-dans-une-masterpage-sharepoint/</link>
		<comments>http://blog.kodono.info/wordpress/2012/01/18/appeler-un-lien-relatif-dans-une-masterpage-sharepoint/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 09:51:31 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=888</guid>
		<description><![CDATA[J&#8217;ai eu le cas où j&#8217;avais besoin d&#8217;appeler un fichier Javascript à la racine de tous mes sites Sharepoint (et donc avec un lien relatif au site consulté). Pour cela j&#8217;ai modifié la masterpage en y ajoutant la ligne suivante : &#60;script type="text/javascript" src='&#60;asp:Literal runat="server" Text="&#60;% $SPUrl:~Site/customized.js %>">&#60;/asp:Literal>'> C&#8217;est donc &#60;asp:Literal runat="server" Text="&#60;% $SPUrl:~Site/customized.js %>">&#60;/asp:Literal> [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai eu le cas où j&#8217;avais besoin d&#8217;appeler un fichier Javascript à la racine de tous mes sites Sharepoint (et donc avec un lien relatif au site consulté). Pour cela j&#8217;ai modifié la masterpage en y ajoutant la ligne suivante :</p>
<pre class="brush: html">&lt;script type="text/javascript" src='&lt;asp:Literal runat="server" Text="&lt;% $SPUrl:~Site/customized.js %>">&lt;/asp:Literal>'></script></pre>
<p>C&#8217;est donc <code>&lt;asp:Literal runat="server" Text="&lt;% $SPUrl:~Site/customized.js %>">&lt;/asp:Literal></code> qui fait tout le boulot. Et bien sûr vous pouvez utiliser <code>asp:Literal</code> pour d&#8217;autres appels de fichiers !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2012/01/18/appeler-un-lien-relatif-dans-une-masterpage-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Define the preview image for your masterpage [Sharepoint]</title>
		<link>http://blog.kodono.info/wordpress/2012/01/17/define-the-preview-image-for-your-masterpage-sharepoint/</link>
		<comments>http://blog.kodono.info/wordpress/2012/01/17/define-the-preview-image-for-your-masterpage-sharepoint/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 17:26:57 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=883</guid>
		<description><![CDATA[You can easily define the preview image for your masterpage : just go to the Master Page Gallery (e.g. : http://your.server.com/your/root/dir/_catalogs/masterpage/) and find your masterpage in the collection. Then move your mouse hover to have the downward arrow that appears to open its context menu. Choose &#171;&#160;Edit Properties&#160;&#187;, and you&#8217;ll see a Preview Image section [...]]]></description>
			<content:encoded><![CDATA[<p>You can easily define the preview image for your masterpage : just go to the Master Page Gallery (e.g. : <a href="http://your.server.com/your/root/dir/_catalogs/masterpage/" title="Example link">http://your.server.com/your/root/dir/_catalogs/masterpage/</a>) and find your masterpage in the collection. Then move your mouse hover to have the downward arrow that appears to open its context menu. Choose &laquo;&nbsp;Edit Properties&nbsp;&raquo;, and you&#8217;ll see a Preview Image section <img src='http://blog.kodono.info/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>For your information, the image should <strong>216px × 160px</strong> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2012/01/17/define-the-preview-image-for-your-masterpage-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Si vous avez l&#8217;erreur &#171;&#160;The security validation for this page is invalid&#160;&#187; [Sharepoint]</title>
		<link>http://blog.kodono.info/wordpress/2011/12/23/si-vous-avez-lerreur-the-security-validation-for-this-page-is-invalid-sharepoint/</link>
		<comments>http://blog.kodono.info/wordpress/2011/12/23/si-vous-avez-lerreur-the-security-validation-for-this-page-is-invalid-sharepoint/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 11:14:34 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Astuce]]></category>
		<category><![CDATA[error message]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=818</guid>
		<description><![CDATA[&#171;&#160;The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.&#160;&#187; Si Sharepoint vous donne ce joli message d&#8217;erreur lorsque vous communiquez avec un de ses web services, alors il est possible que vous ayez oublié d&#8217;ajouter un header &#171;&#160;SOAPAction&#160;&#187; avec le nom du [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>&laquo;&nbsp;The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.&nbsp;&raquo;</p></blockquote>
<p>Si Sharepoint vous donne ce joli message d&#8217;erreur lorsque vous communiquez avec un de ses web services, alors il est possible que vous ayez oublié d&#8217;ajouter un <em>header</em> &laquo;&nbsp;SOAPAction&nbsp;&raquo; avec le nom du service associé.</p>
<p>Prenons l&#8217;exemple du web service <em>lists.asmx</em> et de l&#8217;action &laquo;&nbsp;UpdateListItems&nbsp;&raquo;. Si vous allez sur l&#8217;URL suivante <a href="http://votre_sharepoint/_vti_bin/lists.asmx?op=UpdateListItem">http://votre_sharepoint/_vti_bin/lists.asmx?op=UpdateListItem</a>s vous verrez la SOAPAction qu&#8217;il faut définir (cliquez pour agrandir) :<br />
<a href="http://blog.kodono.info/wordpress/wp-content/uploads/2011/12/20111223_Sharepoint_Web_Service.png"><img src="http://blog.kodono.info/wordpress/wp-content/uploads/2011/12/20111223_Sharepoint_Web_Service-300x166.png" alt="Copie d&#039;écran du web service lists.asmx" title="20111223_Sharepoint_Web_Service" width="300" height="166" class="aligncenter size-medium wp-image-819" /></a></p>
<p>Dans l&#8217;exemple ci-dessus il faut donc définir l&#8217;header &laquo;&nbsp;SOAPAction&nbsp;&raquo; avec la valeur &laquo;&nbsp;http://schemas.microsoft.com/sharepoint/soap/UpdateListItems&nbsp;&raquo;.<br />
Si vous utilisez l&#8217;AJAX de jQuery cela donnera quelque chose comme ça :</p>
<pre class="brush: javascript">
jQuery.ajax({
        url: "http://your_sharepoint/_vti_bin/lists.asmx",
        type: "POST",
        dataType: "xml",
        data: soapEnv,
        beforeSend: function(xhr) { xhr.setRequestHeader('SOAPAction', 'http://schemas.microsoft.com/sharepoint/soap/UpdateListItems'); },
        contentType: "text/xml; charset=\"utf-8\""
    });
</pre>
<p>Si vous utilisez l&#8217;add-on Firefox <a href="https://addons.mozilla.org/fr/firefox/addon/poster/">Poster</a>, alors utilisez l&#8217;onglet &laquo;&nbsp;Headers&nbsp;&raquo;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2011/12/23/si-vous-avez-lerreur-the-security-validation-for-this-page-is-invalid-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retrouver les styles CSS appliqués à un élément du DOM [Javascript]</title>
		<link>http://blog.kodono.info/wordpress/2011/12/22/retrouver-les-styles-css-appliques-a-un-element-du-dom-javascript/</link>
		<comments>http://blog.kodono.info/wordpress/2011/12/22/retrouver-les-styles-css-appliques-a-un-element-du-dom-javascript/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 13:55:31 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=814</guid>
		<description><![CDATA[[niveau intermédiaire] Voici une fonction (qui mériterait quelques optimisations) qui va vous permettre de trouver tous les styles appliqués à un élément : function getStyle(e) { var arr=(typeof window.getComputedStyle == "function" ? window.getComputedStyle(e) : e.currentStyle ); // IE will use the "currentStyle" var res=[]; $.each(arr, function(k,v) { // ici j'utilise le "each" de jQuery simplement [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>Voici une fonction (qui mériterait quelques optimisations) qui va vous permettre de trouver tous les styles appliqués à un élément :</p>
<pre class="brush: javascript">
function getStyle(e) {
    var arr=(typeof window.getComputedStyle == "function" ? window.getComputedStyle(e) : e.currentStyle ); // IE will use the "currentStyle"
    var res=[];
    $.each(arr, function(k,v) { // ici j'utilise le "each" de jQuery simplement parce que c'est plus pratique/simple que le for-in
      if (typeof window.getComputedStyle == "undefined") {
        var kNoCamel=k.replace(/([A-Z])/g, "-$1").toLowerCase(); // sous IE on a des noms de propriétés au format camelCase
        k=v;
        v=kNoCamel;
      }
      if (v.charAt(0) != "-") {
        var vSlice = v.slice(0,7);
        // ici on va chercher à conserver que quelques propriétés CSS bien particulières
        var ok = (vSlice=="border-"||vSlice=="margin-"||vSlice=="padding");
        switch(v) {
          case "background-color":
          case "color":
          case "font-style":
          case "font-weight":
          case "font-size":
          case "font-family":
          case "width":
          case "height":
          case "vertical-align":
          case "text-align":
          case "text-decoration": ok=true;
        }
        if (ok) {
          if (typeof window.getComputedStyle == "function") {
            var vCamel=(v.search("-") != -1 ? v.replace(/(-)(.)/g,function(c) { return c[1].toUpperCase();}) : v); // pour trouver les valeurs associés aux propriétés on se change en camelCase
            res.push(v+":"+arr[vCamel]);
          } else {
            res.push(v+":"+k);
          }
      }
    }
  });
  return res.join(";");
};

alert(getStyle(document.getElementById('test')));
/* qui retournera par exemple:
background-color:transparent;border-bottom-color:rgb(128, 128, 128);
border-bottom-left-radius:0px;border-bottom-right-radius:0px;
border-bottom-style:none;border-bottom-width:0px;border-collapse:collapse;
border-left-color:rgb(128, 128, 128);border-left-style:none;
border-left-width:1px;border-right-color:rgb(128, 128, 128);
border-right-style:none;border-right-width:0px;border-spacing:2px 2px;
border-top-color:rgb(128, 128, 128);border-top-left-radius:0px;
border-top-right-radius:0px;border-top-style:none;border-top-width:1px;
color:rgb(0, 0, 0);font-family:verdana;font-size:16px;font-style:normal;
font-weight:400;height:3738px;margin-bottom:0px;margin-left:0px;margin-right:0px;
margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;
padding-top:0px;text-align:start;text-decoration:none;vertical-align:baseline;width:1756px
*/
</pre>
<p><strong>Edit:</strong> J&#8217;ai découvert qu&#8217;il existe un plugin pour jQuery qui fait un peu près la même chose (sauf qu&#8217;il retourne TOUTES les propriétés et qu&#8217;il est bien <a href="http://jsperf.com/copycss-vs-mine" title="Test comparatif fait sur jsperf.com">plus lent à l&#8217;exécution</a>) : <a href="http://upshots.org/javascript/jquery-copy-style-copycss" title="jQuery CopyCSS plugin">http://upshots.org/javascript/jquery-copy-style-copycss</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2011/12/22/retrouver-les-styles-css-appliques-a-un-element-du-dom-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stocker un mot de passe en PHP grâce à bcrypt [sécurité]</title>
		<link>http://blog.kodono.info/wordpress/2011/08/08/stocker-un-mot-de-passe-en-php-grace-a-bcrypt-securite/</link>
		<comments>http://blog.kodono.info/wordpress/2011/08/08/stocker-un-mot-de-passe-en-php-grace-a-bcrypt-securite/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 17:53:00 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=657</guid>
		<description><![CDATA[[niveau: intermédiaire] Il a été démontré que le stockage de mot de passe n&#8217;est pas chose aisée, et que l&#8217;utilisation d&#8217;une méthode de hashage (MD5, SHA-1, etc) n&#8217;est pas parfaite, même avec l&#8217;utilisation d&#8217;un salt. D&#8217;après cette constatation plusieurs articles indiquent que la meilleure méthode reste l&#8217;utilisation de bcrypt, comme on peut le lire dans [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Il a été démontré que le stockage de mot de passe n&#8217;est pas chose aisée, et que l&#8217;utilisation d&#8217;une méthode de hashage (MD5, SHA-1, etc) n&#8217;est pas parfaite, même avec l&#8217;utilisation d&#8217;un <em>salt</em>. D&#8217;après cette constatation plusieurs articles indiquent que la meilleure méthode reste l&#8217;utilisation de <code>bcrypt</code>, comme on peut le lire dans <a href="http://codahale.com/how-to-safely-store-a-password/">How to safely store a password</a>.</p>
<p>L&#8217;utilisation de <code>bcrypt</code> est assez simple :<br />
1) Télécharger <a href="http://www.openwall.com/phpass/">phpass</a> (fichier .tgz qui contient un fichier <strong>PasswordHash.php</strong>);<br />
2) Appeler <em>PasswordHash.php</em> dans votre page :</p>
<pre class="brush:php">&lt;?php require('includes/PasswordHash.php'); ?></pre>
<p>3) Maintenant vous pouvez utiliser l&#8217;objet PasswordHash comme cela :</p>
<pre class="brush:php">&lt;?php
$password = $_POST["password"];
$hasher = new PasswordHash(8, FALSE);
$hash = $hasher->HashPassword($password);
?></pre>
<p>Et pour vérifier un mot de passe, vous devez utiliser ce petit bout de code :</p>
<pre class="brush:php">&lt;?php // vérification du mot de passe
$password = $_POST["password"];
$password_correct = "password qui vient de la base de données"; /* Le hash stocké précédemment */
$hasher = new PasswordHash(8, FALSE);
$check = $hasher->CheckPassword($password, $password_correct);

if ($check) {
 echo "Password correct!";
}
else {
 echo "Password incorrect...";
}
?></pre>
<p>A noter que si vous souhaitez le rendre compatible avec d&#8217;autres systèmes équivalents (comme <a href="http://www.mindrot.org/projects/jBCrypt/">BCrypt pour Java</a> par exemple), alors il faudra vous assurer que votre machine a bien CRYPT_BLOWFISH d&#8217;installé (on peut le voir avec <code>&lt;?php echo CRYPT_BLOWFISH; ?&gt;</code>) afin d&#8217;avoir une bonne compatibilité des deux systèmes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2011/08/08/stocker-un-mot-de-passe-en-php-grace-a-bcrypt-securite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evénement sur la fermeture d&#8217;une fenêtre (window close) [javascript]</title>
		<link>http://blog.kodono.info/wordpress/2011/07/26/evenement-sur-la-fermeture-dune-fenetre-window-close-javascript/</link>
		<comments>http://blog.kodono.info/wordpress/2011/07/26/evenement-sur-la-fermeture-dune-fenetre-window-close-javascript/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 13:14:59 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=634</guid>
		<description><![CDATA[[niveau: intermédiaire] Il est possible d&#8217;effectuer une action sur la page avant que l&#8217;utilisateur ne quitte la page (en la fermant, la rechargeant, en navigant dans l&#8217;historique, ou en cliquant sur un lien). Pour cela utilisez la méthode ci-dessous (via MDN) : window.onbeforeunload = function (e) { e = e &#124;&#124; window.event; // For IE [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Il est possible d&#8217;effectuer une action sur la page avant que l&#8217;utilisateur ne quitte la page (en la fermant, la rechargeant, en navigant dans l&#8217;historique, ou en cliquant sur un lien). Pour cela utilisez la méthode ci-dessous (via <a href="https://developer.mozilla.org/En/DOM/Window.onbeforeunload">MDN</a>) :</p>
<div class="code script">
<pre class="js">window.onbeforeunload = function (e) {
  e = e || window.event;
  // For IE and Firefox prior to version 4
  if (e) e.returnValue = 'Any string';

  // For Safari
  return 'Any string';
};</pre>
</div>
<p>Si vous ne voulez pas ce comportement pour un clic sur un lien, alors il faudra gérer une variable qui sera activée lors d&#8217;un clic sur un tag A (exemple avec jQuery) :</p>
<div class="code script">
<pre class="js">
__okForClosing = false;
window.onbeforeunload = function (e) {
  if (!__okForClosing) {
    e = e || window.event;
    // For IE and Firefox prior to version 4
    if (e) e.returnValue = 'Any string';

    // For Safari
    return 'Any string';
  }
};
$('a').click(function() { __okForClosing=true; });</div>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2011/07/26/evenement-sur-la-fermeture-dune-fenetre-window-close-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple effet highlight sur un element avec jQuery [javascript]</title>
		<link>http://blog.kodono.info/wordpress/2011/07/19/effet-highlight-un-element-avec-jquery-javascript/</link>
		<comments>http://blog.kodono.info/wordpress/2011/07/19/effet-highlight-un-element-avec-jquery-javascript/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 15:48:59 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=612</guid>
		<description><![CDATA[[niveau: intermédiaire] Si vous souhaitez créer un effet highlight sur un élément (en passant le background en jaune par exemple), voici comment il faut s&#8217;y prendre : jQuery.prototype.highlight = function() { jQuery(this).css("background-color","yellow").fadeTo('slow', 0.1, function() { jQuery(this).fadeTo('slow', 1.0, function() { jQuery(this).css("background-color","white"); }); }); }; jQuery('#mon-element').highlight(); A tester ici : Hello, I&#8217;m an example Highlight Total 31337 [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Si vous souhaitez créer un effet  highlight sur un élément (en passant le background en jaune par exemple), voici comment il faut s&#8217;y prendre :</p>
<div class="code script">
<pre class="js">
jQuery.prototype.highlight = function() {
  jQuery(this).css("background-color","yellow").fadeTo('slow', 0.1, function() {
    jQuery(this).fadeTo('slow', 1.0, function() {
      jQuery(this).css("background-color","white");
    });
  });
};

jQuery('#mon-element').highlight();
</pre>
</div>
<p><script>
jQuery.prototype.highlight = function() { 
  jQuery(this).css("background-color","yellow").fadeTo('slow', 0.1, function() {
    jQuery(this).fadeTo('slow', 1.0, function() {
      jQuery(this).css("background-color","white");
    });
  });
};
</script></p>
<div style="display:none">
A tester ici :</p>
<div>
<table border="1">
<tr>
<td colspan="2">Hello, I&#8217;m an example</td>
<td><a href="#nogo" onclick="jQuery(this).closest('tr').find('td').highlight()">Highlight</a></td>
</tr>
<tr>
<td>Total</td>
<td>31337</td>
<td><a href="#nogo" onclick="jQuery(this).closest('tr').find('td').highlight()">Highlight</a></td>
</tr>
</table>
<p>Ceci est pour le test. <a href="#nogo" onclick="jQuery(this).parent().highlight()">Highlight</a></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2011/07/19/effet-highlight-un-element-avec-jquery-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Forcer l&#8217;IPv4 au lieu de l&#8217;IPv6 sur Linux [astuce]</title>
		<link>http://blog.kodono.info/wordpress/2011/03/22/forcer-lipv4-sur-linux-astuce/</link>
		<comments>http://blog.kodono.info/wordpress/2011/03/22/forcer-lipv4-sur-linux-astuce/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 12:57:21 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[ipv6]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=566</guid>
		<description><![CDATA[[niveau intermédiaire] J&#8217;ai constaté que l&#8217;utilisation de la commande apt-get étant devenue lente, dû au fait qu&#8217;il essaie de se connecter en ipv6 au lieu d&#8217;ipv4. Pour modifier ce comportement, et forcer votre Linux à résoudre en ipv4 de manière générale, il suffit de modifier le fichier /etc/gai.conf en enlevant le commentaire sur la ligne : [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>J&#8217;ai constaté que l&#8217;utilisation de la commande <em>apt-get</em> étant devenue lente, dû au fait qu&#8217;il essaie de se connecter en ipv6 au lieu d&#8217;ipv4.</p>
<p>Pour modifier ce comportement, et forcer votre Linux à résoudre en ipv4 de manière générale, il suffit de modifier le fichier <code>/etc/gai.conf</code> en enlevant le commentaire sur la ligne :<br />
<code>precedence ::ffff:0:0/96  100</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2011/03/22/forcer-lipv4-sur-linux-astuce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Couper facilement une vidéo [traitement vidéo]</title>
		<link>http://blog.kodono.info/wordpress/2010/09/28/couper-facilement-une-video-traitement-video/</link>
		<comments>http://blog.kodono.info/wordpress/2010/09/28/couper-facilement-une-video-traitement-video/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 10:35:17 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Vidéo]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[encodage]]></category>
		<category><![CDATA[traitement vidéo]]></category>
		<category><![CDATA[vidéo]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=496</guid>
		<description><![CDATA[[niveau intermédiaire] (Cet article suppose que vous ayez des connaissances de base, comme comment lancer un exécutif en ligne de commande, dans le cas contraire vous pouvez vous référez à cet article qui propose deux autres solutions pour Windows) Pour cela vous aurez besoin de mencoder (qui se trouve dans le répertoire de MPlayer disponible [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>(Cet article suppose que vous ayez des connaissances de base, comme comment lancer un exécutif en ligne de commande, dans le cas contraire vous pouvez vous référez à <a href="http://blog.kodono.info/wordpress/?p=418">cet article qui propose deux autres solutions pour Windows</a>)</p>
<p>Pour cela vous aurez besoin de <strong>mencoder</strong> (qui se trouve dans le répertoire de MPlayer disponible pour Windows, Linux et Mac à <a href="http://www.mplayerhq.hu/MPlayer/releases/">http://www.mplayerhq.hu/MPlayer/releases/</a>). Vous devez ensuite lancer une console et taper la commande :<br />
<code>mencoder -ss 00:10:00 mon_fichier.avi -o mon_fichier_split.avi -oac copy -ovc copy</code><br />
Pour couper les dix premières minutes de votre vidéo.</p>
<p>Si vous souhaitez couper la fin de la vidéo, il faudra faire :<br />
<code>mencoder -endpos 00:02:00 mon_fichier.avi -o mon_fichier_split.avi -oac copy -ovc copy</code><br />
Pour couper les deux dernières minutes de votre vidéo.</p>
<p>Le format est sous la forme hh:mm:ss.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2010/09/28/couper-facilement-une-video-traitement-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retour à la ligne pour une commande shell [linux]</title>
		<link>http://blog.kodono.info/wordpress/2010/09/17/retour-a-la-ligne-pour-une-commande-shell-linux/</link>
		<comments>http://blog.kodono.info/wordpress/2010/09/17/retour-a-la-ligne-pour-une-commande-shell-linux/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 16:20:49 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=490</guid>
		<description><![CDATA[[niveau intermédiaire] Difficile de trouver un titre correspondant à la problématique. Il se trouve que lorsque vous tapez la commande suivante dans un shell, vous obtenez le résultat ci-dessous: debian:~/tmp# ls test1.txt test deux.txt test_trois.txt debian:~/tmp# for i in $(find . -name &#171;&#160;*.txt&#160;&#187;); do echo $i; done ./test1.txt ./test_trois.txt ./test deux.txt Comme on peut le [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>Difficile de trouver un titre correspondant à la problématique.<br />
Il se trouve que lorsque vous tapez la commande suivante dans un shell, vous obtenez le résultat ci-dessous:</p>
<div class="code">debian:~/tmp# ls<br />
test1.txt  test deux.txt  test_trois.txt<br />
debian:~/tmp# for i in $(find . -name &laquo;&nbsp;*.txt&nbsp;&raquo;); do echo $i; done<br />
./test1.txt<br />
./test_trois.txt<br />
./test<br />
deux.txt
</div>
<p>Comme on peut le constater, &laquo;&nbsp;test deux.txt&nbsp;&raquo; ayant un espace dans son nom, il est affiché sur deux lignes dans notre résultat au lieu d&#8217;une seule ligne.</p>
<p>Pour fixer ce problème, il suffit de modifier la <a href="http://tldp.org/LDP/abs/html/internalvariables.html#IFS">variable IFS</a> qui détermine le séparateur, puisque par défaut le séparateur va être un espace.<br />
Pour se faire nous devons mettre notre commande dans un script :</p>
<div class="code">#!/bin/bash<br />
# on demande à ce que le séparateur soit sur le retour à la ligne<br />
IFS=&#8217;<br />
&#8216;<br />
for i in $(find . -name &laquo;&nbsp;*.txt&nbsp;&raquo;); do<br />
  echo $i;<br />
done</div class="code">
<p>Le résultat de l&#8217;exécution de notre script :</p>
<div class="code">debian:~/tmp# ./script.sh<br />
./test1.txt<br />
./test_trois.txt<br />
./test deux.txt</div>
<p>Plus d&#8217;informations sur <a href="http://tldp.org/LDP/abs/html/internalvariables.html#IFS">http://tldp.org/LDP/abs/html/internalvariables.html#IFS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2010/09/17/retour-a-la-ligne-pour-une-commande-shell-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incruster des sous-titres dans une vidéo [Traitement vidéo]</title>
		<link>http://blog.kodono.info/wordpress/2010/09/09/incruster-des-sous-titres-dans-une-video-traitement-video/</link>
		<comments>http://blog.kodono.info/wordpress/2010/09/09/incruster-des-sous-titres-dans-une-video-traitement-video/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 11:58:48 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[traitement vidéo]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=483</guid>
		<description><![CDATA[[niveau intermédiaire] Il est possible d&#8217;incruster des sous-titres dans une vidéo grâce à VirtualDub et au filtre Subtitler, mais ici nous allons voir une autre solution en utilisant mencoder qui va permettre de faire la manipulation de façon automatique, plus rapidement (environ 20 minutes pour une vidéo d&#8217;une heure) et plus facilement. J&#8217;ai pu réussir [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>Il est possible d&#8217;incruster des sous-titres dans une vidéo grâce à VirtualDub et au filtre Subtitler, mais ici nous allons voir une autre solution en utilisant <a href="http://www.mplayerhq.hu/">mencoder</a> qui va permettre de faire la manipulation de façon automatique, plus rapidement (environ 20 minutes pour une vidéo d&#8217;une heure) et plus facilement.</p>
<p>J&#8217;ai pu réussir à obtenir ce que je vais vous expliquer grâce au tutorial du site <a href="http://www.hyjoo.com/sujet-24236.html">Hyjoo.com</a> où vous trouverez plus de détails (en particulier sur les options possibles). On notera que les fichiers indiqués dans ce tutorial sont plus aisés à trouver en se rendant à <a href="http://www.mplayerhq.hu/MPlayer/releases/">http://www.mplayerhq.hu/MPlayer/releases/</a>.</p>
<p>Ayant eu de nombreuses difficultés à obtenir ce que je souhaitais, j&#8217;ai décidé de le partager sur mon blog que cela puisse servir à d&#8217;autres !</p>
<p>A l&#8217;origine de ma recherche concernant l&#8217;incrustation de sous-titres, c&#8217;est parce que j&#8217;utilise <a href="http://www.orb.com">Orb</a> pour me permettre de lire les vidéos de mon ordinateur sur d&#8217;autres ordinateurs via Internet. Malheureusement Orb ne supporte pas les fichiers de sous-titres lors de la lecture d&#8217;une vidéo; de fait aucune phrase n&#8217;apparait lors de la diffusion du film via Orb.</p>
<p>Pour vous permettre l&#8217;incrustation, rien de plus facile :<br />
1) Téléchargez <a href="http://blog.kodono.info/wordpress/wp-content/uploads/MPlayer-1.0rc2.zip">ce fichier ZIP</a> (28Mo) qui contient déjà les bons programmes, c&#8217;est-à-dire MPlayer-1.0rc2 (récupéré sur le site officiel), ainsi que les codecs windows-all-20071007 (récupérés aussi sur le site officiel);<br />
2) Dézippez le fichier et vous allez trouver un répertoire qui se nomme &quot;<strong>to_convert</strong>&quot;;<br />
3) Placez vos fichiers .avi ainsi que vos fichiers de sous-titres .srt (qui doivent avoir le même nom &#8212; par exemple film.avi et film.srt) dans ce répertoire &quot;to_convert&quot;;<br />
4) Cliquez sur le fichier &quot;<strong>start.bat</strong>&quot; qui va lancer l&#8217;incrustation automatiquement sur tous les fichiers;<br />
5) Une fois terminé, les vidéos incrustées sont disponibles dans le répertoire &quot;to_convert&quot; avec le mot &quot;<strong>_subbed</strong>&quot; ajouté au nom d&#8217;origine.</p>
<p>On notera qu&#8217;un certain nombre d&#8217;options peuvent être ajoutées/modifiées :<br />
- taille des sous-titres;<br />
- position des sous-titres;<br />
- encodage de la vidéo;<br />
- dimension de la vidéo;<br />
- etc.<br />
Les options de base sont détaillées dans le tutorial de <a href="<a href="http://www.hyjoo.com/sujet-24236.html">Hyjoo.com</a>, et les options complètes sont sur <a href="http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.txt">le site officiel</a>.<br />
On notera qu&#8217;il ne semble pas possible (pour le moment en tout cas) de modifier la couleur des sous-titres malgré les options <em>-ass</em> et <em>-ass-font-color</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2010/09/09/incruster-des-sous-titres-dans-une-video-traitement-video/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Emuler Internet Explorer de Windows Mobile [Web Design]</title>
		<link>http://blog.kodono.info/wordpress/2010/08/03/emuler-internet-explorer-de-windows-mobile-web-design/</link>
		<comments>http://blog.kodono.info/wordpress/2010/08/03/emuler-internet-explorer-de-windows-mobile-web-design/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 17:48:28 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Application]]></category>
		<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=462</guid>
		<description><![CDATA[[niveau: intermédiaire] Pour tester la version mobile d&#8217;Internet Explorer il vous faut installer tout un attirail : - Virtual PC 2007; - Gestionnaire pour appareils Windows Mobile 6.1; - 040C/Windows Mobile 6 Professional Images (FRA).msi (attention de bien prendre la version PROFESSIONAL). Une fois tout cela installé, il faut procéder à plusieurs étapes : Dans [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Pour tester la version mobile d&#8217;Internet Explorer il vous faut installer tout un attirail :<br />
- <a href="https://www.microsoft.com/downloads/details.aspx?displaylang=fr&#038;familyid=04d26402-3199-48a3-afa2-2dc0b40a73b6">Virtual PC 2007</a>;<br />
- <a href="https://www.microsoft.com/downloads/details.aspx?familyid=46F72DF1-E46A-4A5F-A791-09F07AAA1914&#038;displaylang=fr">Gestionnaire pour appareils Windows Mobile 6.1</a>;<br />
- <a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=38c46aa8-1dd7-426f-a913-4f370a65a582&#038;displaylang=en">040C/Windows Mobile 6 Professional Images (FRA).msi</a> (attention de bien prendre la version PROFESSIONAL).</p>
<p>Une fois tout cela installé, il faut procéder à plusieurs étapes :</p>
<ol>
<li>Dans le menu Démarrer, choisissez <em>Windows Mobile 6 SDK</em>, puis <em>Standalone Emulator Images</em>, <em>French</em> et <em>Professional</em>; une fois lancé, cliquez sur <em>File</em>, <em>Configure&#8230;</em> puis <em>Network</em> et cochez la case &laquo;&nbsp;Enable NE2000 PCMCIA&nbsp;&raquo; et prenez votre connexion dans la liste déroulante.</li>
<li>Lancez maintenant <em>Device Emulator Manager</em> depuis le menu Démarrer de Windows; une fois lancé, dans l&#8217;arborescence, cliquez droit sur ce qui correspond à l&#8217;émulateur et prenez l&#8217;option &laquo;&nbsp;Cradle&nbsp;&raquo;.</li>
<li>Maintenant lancez le <em>Gestionnaire pour appareil Windows Mobile</em> depuis le menu Démarrer</li>
<li>Le gestionnaire devrait détecter votre émulateur et l&#8217;ajouter; de là vous pourrez configurer la connexion réseau en suivant cette image :<br />
<a href="http://blog.kodono.info/wordpress/wp-content/uploads/2010/08/20100803_emulateur_IE.png"><img src="http://blog.kodono.info/wordpress/wp-content/uploads/2010/08/20100803_emulateur_IE.png" alt="" title="20100803_emulateur_IE" width="468" height="301" class="aligncenter size-full wp-image-463" /></a></li>
<li>Maintenant vous devriez pouvoir lancer Internet Explorer sur votre émulateur et vous devriez avoir accès à Internet !</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2010/08/03/emuler-internet-explorer-de-windows-mobile-web-design/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>Bloquer les popups de publicité d&#8217;Avira AntiVir [Astuce]</title>
		<link>http://blog.kodono.info/wordpress/2010/01/27/bloquer-les-popups-de-publicite-davira-antivir-astuce/</link>
		<comments>http://blog.kodono.info/wordpress/2010/01/27/bloquer-les-popups-de-publicite-davira-antivir-astuce/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 06:56:08 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=411</guid>
		<description><![CDATA[[niveau intermédiaire] Si vous avez l&#8217;antivirus AntiVir, vous avez remarqué qu&#8217;une fenêtre publicitaire apparaît régulièrement. Voilà un effet bien gênant et désagréable. Pour éviter ce phénomène, voici la manipulation à faire (testée sur Windows Seven Ultimate et ça fonctionne) : 1) Dans le menu Démarrer, exécuter la commande &#171;&#160;secpol.msc&#160;&#187; 2) &#171;&#160;Stratégie de restriction logicielle&#160;&#187; 3) [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>Si vous avez l&#8217;antivirus AntiVir, vous avez remarqué qu&#8217;une fenêtre publicitaire apparaît régulièrement. Voilà un effet bien gênant et désagréable. Pour éviter ce phénomène, voici la manipulation à faire (testée sur Windows Seven Ultimate et ça fonctionne) :<br />
1) Dans le menu Démarrer, exécuter la commande &laquo;&nbsp;secpol.msc&nbsp;&raquo;<br />
2) &laquo;&nbsp;Stratégie de restriction logicielle&nbsp;&raquo;<br />
3) &laquo;&nbsp;Règles Supplémentaires&nbsp;&raquo;<br />
4) Clic droit dans la partie de droite, puis &laquo;&nbsp;Nouvelle règle de chemin d&#8217;accès&nbsp;&raquo;<br />
5) Parcourir jusqu&#8217;au fichier nommé &laquo;&nbsp;avnotify.exe&nbsp;&raquo; (dans C:\Program Files\Avira\AntiVir Desktop)<br />
6) Niveau de Sécurité en &laquo;&nbsp;Non autorisé&nbsp;&raquo;</p>
<p>Et voilà !</p>
<p>Si vous n&#8217;avez pas &laquo;&nbsp;secpol.msc&nbsp;&raquo;, voici une autre astuce :<br />
1) Trouvez le fichier &laquo;&nbsp;avnotify.exe&nbsp;&raquo; (dans C:\Program Files\Avira\AntiVir Desktop)<br />
2) Clic droit puis &laquo;&nbsp;Propriétés&nbsp;&raquo;<br />
3) Dans l&#8217;onglet &laquo;&nbsp;Sécurité&nbsp;&raquo;, sélectionnez &laquo;&nbsp;System&nbsp;&raquo; pour l&#8217;utilisateur puis &laquo;&nbsp;Modifier&nbsp;&raquo;<br />
4) Cliquez dans la colonne &laquo;&nbsp;Refuser&nbsp;&raquo; sur &laquo;&nbsp;Lire et Exécuter&nbsp;&raquo;<br />
5) Faites &laquo;&nbsp;OK&nbsp;&raquo;</p>
<p>Je ne l&#8217;ai pas testé mais plusieurs sites proposent cette solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2010/01/27/bloquer-les-popups-de-publicite-davira-antivir-astuce/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Utiliser la fonction mail() de PHP avec exim4 [Linux]</title>
		<link>http://blog.kodono.info/wordpress/2009/12/10/utiliser-la-fonction-mail-de-php-avec-exim4-linux/</link>
		<comments>http://blog.kodono.info/wordpress/2009/12/10/utiliser-la-fonction-mail-de-php-avec-exim4-linux/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 10:51:20 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=383</guid>
		<description><![CDATA[[niveau intermédiaire] Si vous utilisez une Debian ainsi que PHP, vous voulez certainement pouvoir envoyer des emails grâce à la fonction mail() qu&#8217;offre le langage. Pour cela, on va utiliser exim4 qui est en général déjà installé sur votre Debian toute fraiche (normalement vous avez également /usr/sbin/sendmail qui redirige sur /usr/sbin/exim4). Si vous n&#8217;avez pas [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>Si vous utilisez une Debian ainsi que PHP, vous voulez certainement pouvoir envoyer des emails grâce à la fonction <em>mail()</em> qu&#8217;offre le langage. Pour cela, on va utiliser <b>exim4</b> qui est en général déjà installé sur votre Debian toute fraiche (normalement vous avez également /usr/sbin/sendmail qui redirige sur /usr/sbin/exim4). Si vous n&#8217;avez pas <b>exim</b> d&#8217;installé, je vous invite à aller lire <a href="http://www.paperblog.fr/576185/installer-l-envoi-de-mails-depuis-son-site-la-fonction-php-mail/">ce billet de Paperblog</a>.</p>
<p>Par défaut <b>exim4</b> est configuré pour n&#8217;envoyer les emails qu&#8217;aux utilisateurs locaux. Pour modifier ce comportement, vous devez modifier le fichier <b>/etc/exim4/update-exim4.conf.conf</b> en mettant :</p>
<div class="code">dc_eximconfig_configtype=&#8217;internet&#8217;</div>
<p>Redémarrer <b>exim4</b> et vous devriez maintenant pouvoir envoyer des emails au monde entier. Attention cependant de bien bloquer le port 25 de votre machine au monde extérieur (mais pas en local) afin d&#8217;éviter que quiconque puisse utiliser votre serveur SMTP.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/12/10/utiliser-la-fonction-mail-de-php-avec-exim4-linux/feed/</wfw:commentRss>
		<slash:comments>2</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>Utiliser .htaccess pour rediriger selon le referer [Apache]</title>
		<link>http://blog.kodono.info/wordpress/2009/10/08/utiliser-htaccess-pour-rediriger-selon-refere-apache/</link>
		<comments>http://blog.kodono.info/wordpress/2009/10/08/utiliser-htaccess-pour-rediriger-selon-refere-apache/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 11:42:36 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=365</guid>
		<description><![CDATA[[niveau intermédiaire] Dans certains cas on aimerait pouvoir rediriger les personnes en provenance d&#8217;un certain site vers une page en particulier. Par exemple, vous voulez que les personnes venant de Facebook soient redirigées vers une page dédiée, vous devez inscrire cela dans votre fichier .htaccess : RewriteEngine On RewriteCond %{http_referer} ^http://([^.]+\.)*(facebook)\.com RewriteRule ^$ /facebook.php [R=302,L] [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>Dans certains cas on aimerait pouvoir rediriger les personnes en provenance d&#8217;un certain site vers une page en particulier. Par exemple, vous voulez que les personnes venant de Facebook soient redirigées vers une page dédiée, vous devez inscrire cela dans votre fichier .htaccess :</p>
<div class="code script">
<pre class="">RewriteEngine On
RewriteCond %{http_referer} ^http://([^.]+\.)*(facebook)\.com
RewriteRule ^$ /facebook.php [R=302,L]</pre>
</div>
<p>A noter que le <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">mod_rewrite</a> d&#8217;Apache aura dû être installé.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/10/08/utiliser-htaccess-pour-rediriger-selon-refere-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convertir des &#8216;em&#8217; en &#8216;px&#8217; (WebDesign)</title>
		<link>http://blog.kodono.info/wordpress/2009/10/05/convertir-des-em-en-px-webdesign/</link>
		<comments>http://blog.kodono.info/wordpress/2009/10/05/convertir-des-em-en-px-webdesign/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 10:13:15 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=360</guid>
		<description><![CDATA[[niveau intermédiaire] Lorsqu&#8217;on crée des CSS, il arrive qu&#8217;on s&#8217;y perde un peu entre les px bien pratiques, et les em tout aussi pratiques mais bien moins parlant&#8230;. Le site http://pxtoem.com/ propose de convertir des pixels en em.]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>Lorsqu&#8217;on crée des CSS, il arrive qu&#8217;on s&#8217;y perde un peu entre les px bien pratiques, et les <a href="http://www.alsacreations.com/article/lire/563-gerer-la-taille-du-texte-avec-les-em.html">em tout aussi pratiques</a> mais bien moins parlant&#8230;.</p>
<p>Le site <a href="http://pxtoem.com/">http://pxtoem.com/</a> propose de convertir des pixels en em.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/10/05/convertir-des-em-en-px-webdesign/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Importer des emails Thunderbird/Outlook dans GMail [Google Astuce]</title>
		<link>http://blog.kodono.info/wordpress/2009/08/02/importer-des-emails-thunderbirdoutlook-dans-gmail-google-astuce/</link>
		<comments>http://blog.kodono.info/wordpress/2009/08/02/importer-des-emails-thunderbirdoutlook-dans-gmail-google-astuce/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 17:49:31 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Application]]></category>
		<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[emails]]></category>
		<category><![CDATA[GMail]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=280</guid>
		<description><![CDATA[[niveau: intermédiaire] Après avoir essayé différentes solutions (comme gExodus, MailRedirect et Google Mail Loader), c&#8217;est finalement toGMail qui s&#8217;est imposé comme le meilleur outil pour migrer mes emails depuis Thunderbird vers mon compte GMail. Le très léger programme va utiliser les fonctions IMAP de GMail pour y déposer les messages tels qu&#8217;ils sont à l&#8217;origine, [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Après avoir essayé différentes solutions (comme <a href="http://blog.codefront.net/2004/06/23/gexodus-02-some-new-features-for-gmail-mbox-import-tool/">gExodus</a>, <a href="http://mailredirect.mozdev.org/">MailRedirect</a> et <a href="http://www.marklyon.org/gmail/default.htm">Google Mail Loader</a>), c&#8217;est finalement <a href="http://www.swampgas.com/index.php/tools/togmail-export-thunderbird-mailboxes-into-gmail/">toGMail</a> qui s&#8217;est imposé comme le meilleur outil pour migrer mes emails depuis Thunderbird vers mon compte GMail.</p>
<p>Le très léger programme va utiliser les fonctions IMAP de GMail pour y déposer les messages tels qu&#8217;ils sont à l&#8217;origine, avec les en-têtes intactes. Le procédé est rapide et efficace, et on peut même indiquer un libellé pour les messages importés.</p>
<p>Si vous utilisez Outlook, il vous faudra d&#8217;abord convertir vos boîtes mail au format de Thunderbird.</p>
<p><strong>Attention:</strong> Thunderbird conserve les emails effacés dans vos mailbox (qui se trouvent dans le <em>profil utilisateur/AppData/Roaming/Thunderbird/Profiles/&#8230;</em>) &#8212; vous devrez donc, dans Thunderbird, faire un clic droit sur les mailbox que vous souhaitez importer, puis sélectionner &laquo;&nbsp;Compacter&nbsp;&raquo;. Dès lors Thunderbird va enlever tous les emails qui ne devraient plus s&#8217;y trouver !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/08/02/importer-des-emails-thunderbirdoutlook-dans-gmail-google-astuce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modifier les mots du dictionnaire de Firefox [Astuce Firefox]</title>
		<link>http://blog.kodono.info/wordpress/2009/06/24/modifier-les-mots-du-dictionnaire-de-firefox-astuce-firefox/</link>
		<comments>http://blog.kodono.info/wordpress/2009/06/24/modifier-les-mots-du-dictionnaire-de-firefox-astuce-firefox/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 10:29:22 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[dictionnaire]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=251</guid>
		<description><![CDATA[[niveau: intermédiaire] Firefox souligne les mots incorrectement orthographiés en rouge. Un clic droit sur le mot permet de choisir une des propositions, et une option &#171;&#160;Ajouter au dictionnaire&#160;&#187; offre la possibilité de faire en sorte que Firefox se souvienne du mot. Vous aimeriez accéder à cette liste ? Pour cela, il suffit d&#8217;ouvrir le fichier [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Firefox souligne les mots incorrectement orthographiés en rouge. Un clic droit sur le mot permet de choisir une des propositions, et une option &laquo;&nbsp;Ajouter au dictionnaire&nbsp;&raquo; offre la possibilité de faire en sorte que Firefox se souvienne du mot. Vous aimeriez accéder à cette liste ? Pour cela, il suffit d&#8217;ouvrir le fichier <strong>persdict.dat</strong> que vous trouverez ici :</p>
<div class="code">Pour Windows Vista &#8211; %AppData%\Mozilla\Firefox\Profiles\xxx.default<br />
Pour Windows XP &#8211; C:\documents and settings\<username>\Application Data\Mozilla\Firefox\Profiles\xxx.default\
</div>
<p>Dans ce fichier vous verrez tous les mots ajoutés dans le dictionnaire intégré de Firefox.</p>
<p>(Source: <a href="http://labnol.blogspot.com/2006/11/firefox-2-spelling-dictionary-hacks.html">http://labnol.blogspot.com/2006/11/firefox-2-spelling-dictionary-hacks.html</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/06/24/modifier-les-mots-du-dictionnaire-de-firefox-astuce-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installer Linux dans Windows et tester ainsi les navigateurs Linux [Web Design]</title>
		<link>http://blog.kodono.info/wordpress/2009/05/13/installer-linux-dans-windows-et-tester-ainsi-les-navigateurs-linux-web-design/</link>
		<comments>http://blog.kodono.info/wordpress/2009/05/13/installer-linux-dans-windows-et-tester-ainsi-les-navigateurs-linux-web-design/#comments</comments>
		<pubDate>Wed, 13 May 2009 10:18:48 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=158</guid>
		<description><![CDATA[[niveau: intermédiaire] Linux est un système d&#8217;exploitation qui était réservé au geek, mais depuis plusieurs années les distributeurs font en sorte que cet OS soit plus facile à installer et à utiliser. Linux apparaît d&#8217;ailleurs de plus en plus comme une alternative à Windows. Il y a donc plusieurs raisons qui pourraient vous pousser à [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Linux est un système d&#8217;exploitation qui était réservé au <i>geek</i>, mais depuis plusieurs années les distributeurs font en sorte que cet OS soit plus facile à installer et à utiliser. Linux apparaît d&#8217;ailleurs de plus en plus comme une alternative à Windows.</p>
<p>Il y a donc plusieurs raisons qui pourraient vous pousser à installer Linux:<br />
- tester pour voir à quoi ça ressemble<br />
- regarder les applications disponibles<br />
- comprendre comment il est configurable<br />
- <b>tester les navigateurs</b> pour vos sites web</p>
<p>Pour entrer dans le monde merveilleux du Pingouin (qui en est la mascotte), vous avez principalement trois solutions:</p>
<ol>
<li>l&#8217;installation pure et dure du système en parallèle de Windows, c&#8217;est-à-dire que vous choisissez l&#8217;un ou l&#8217;autre au démarrage de la machine</li>
<li>l&#8217;utilisation d&#8217;un <a href="http://fr.wikipedia.org/wiki/LiveCD">LiveCD</a> qui offre la possibilité de démarrer sur un CD (ou une clé USB) qui contient Linux et ainsi de le tester sans rien installer sur l&#8217;ordinateur</li>
<li>virtualiser Linux (à l&#8217;instar de ce que je vous ai montré <a href="http://blog.kodono.info/wordpress/2009/04/20/tester-un-site-sous-ie6-ie7-et-ie8-web-design/">l&#8217;autre fois pour tester les IE</a>)</li>
</ol>
<p>Je vais ici vous expliquer le dernier cas. En effet, je connais déjà bien Linux, et l&#8217;intérêt majeur pour moi de l&#8217;installer est de pouvoir tester Firefox, Epiphany, et autres navigateurs afin de m&#8217;assurer du design d&#8217;un site web.</p>
<p>Virtualiser Linux dans Windows est simple. Si <a href="http://blog.kodono.info/wordpress/2009/04/20/tester-un-site-sous-ie6-ie7-et-ie8-web-design/">la dernière fois</a> nous avons utilisé VirtualPC c&#8217;est parce que Microsoft fournissait des images déjà prêtes pour leur logiciel. Mais cette fois-ci, nous allons plutôt utiliser <a href="http://www.virtualbox.org/">VirtualBox</a>. Pourquoi ? Parce que si vous installez Linux (et ici ce sera Ubuntu) dans VirtualPC, alors vous allez avoir une résolution d&#8217;écran de 800&#215;600, ce qui n&#8217;est pas franchement pratique. Les démarches pour passer en une résolution supérieure sont compliquées et risquées, alors qu&#8217;avec VirtualBox il suffit de quelques commandes !</p>
<p>La première chose à faire est donc de <a href="http://www.virtualbox.org/wiki/Downloads">télécharger VirtualBox</a> (j&#8217;utilise dans cet exemple la version &laquo;&nbsp;VirtualBox 2.2.2 for Windows hosts&nbsp;&raquo;). Ensuite, il vous faut télécharger une distribution Linux. Il en existe des centaines de versions&#8230; Plusieurs sites essaient de vous guider, comme <a href="http://www.commentcamarche.net/faq/sujet-3742-choisir-une-distribution-linux">Comment ça marche</a>. Pour notre cas pratique nous prendrons <a href="http://www.ubuntu-fr.org/">Ubuntu</a> qui est l&#8217;une des plus utilisées.<br />
Il vous faut récupérer l&#8217;image ISO d&#8217;Ubuntu (à l&#8217;heure où j&#8217;écris ces lignes le fichier est <a href="ftp://ftp.crihan.fr/releases/9.04/ubuntu-9.04-desktop-i386.iso">ftp://ftp.crihan.fr/releases/9.04/ubuntu-9.04-desktop-i386.iso</a>).</p>
<p>Une fois téléchargé, ouvrez VirtualBox (que vous aurez déjà installé). Cliquez sur &laquo;&nbsp;Nouveau&nbsp;&raquo; :<br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/05/20090413_vbox1.jpg" alt="20090413_vbox1" title="20090413_vbox1" width="467" height="281" class="aligncenter size-full wp-image-162" /><br />
Pour le nom inscrivez &laquo;&nbsp;Ubuntu&nbsp;&raquo;, et pour système d&#8217;exploitation prenez &laquo;&nbsp;Linux&nbsp;&raquo; et la version &laquo;&nbsp;Ubuntu&nbsp;&raquo; :<br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/05/20090413_vbox2.jpg" alt="20090413_vbox2" title="20090413_vbox2" width="495" height="420" class="aligncenter size-full wp-image-163" /><br />
Continuez avec les options par défaut.</p>
<p>Une fois fini vous devriez avoir cela :<br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/05/20090413_vbox4.jpg" alt="20090413_vbox4" title="20090413_vbox4" width="769" height="573" class="aligncenter size-full wp-image-164" /></p>
<p>Maintenant cliquez sur &laquo;&nbsp;Lancer&nbsp;&raquo; afin d&#8217;activer l&#8217;assistant de premier lancement. Celui-ci vous demande ce que vous voulez installer. Choisissez &laquo;&nbsp;Disque Optique&nbsp;&raquo; et &laquo;&nbsp;Fichier Image&nbsp;&raquo; en sélectionnant le fichier iso que vous avez téléchargé précédemment (&laquo;&nbsp;ubuntu-9.04-desktop-i386.iso&nbsp;&raquo;) ;<br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/05/20090413_vbox5.jpg" alt="20090413_vbox5" title="20090413_vbox5" width="458" height="415" class="aligncenter size-full wp-image-165" /><br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/05/20090413_vbox6.jpg" alt="20090413_vbox6" title="20090413_vbox6" width="632" height="494" class="aligncenter size-full wp-image-166" /></p>
<p>L&#8217;écran d&#8217;installation d&#8217;Ubuntu va démarrer. Vous n&#8217;avez plus qu&#8217;à choisir &laquo;&nbsp;Français&nbsp;&raquo; (avec les flèches) puis de prendre &laquo;&nbsp;Installer Ubuntu&nbsp;&raquo; :<br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/05/20090413_vbox7.jpg" alt="20090413_vbox7" title="20090413_vbox7" width="650" height="560" class="aligncenter size-full wp-image-167" /></p>
<p>Laissez les options par défaut proposées. Après plusieurs clics et quelques minutes vous vous retrouvez sous Ubuntu ! Malheureusement vous remarquez que vous êtes en résolution 800&#215;600&#8230; Voilà un problème de résolution d&#8217;écran qui est simple à régler.</p>
<p>Tout d&#8217;abord, vérifiez que vous n&#8217;avez aucune image CD chargée. Pour cela, votre bureau Ubuntu doit être vide de toute icône. Si vous voyez une icône en forme de CD avec un nom qui commence par Ubuntu, alors faites un clic droit dessus puis &laquo;&nbsp;Ejecter&nbsp;&raquo;. Une fois fait, sortez de la machine virtuelle (en appuyant sur la touche &laquo;&nbsp;Ctrl&nbsp;&raquo; de votre clavier, mais celle qui se trouve à droite), puis aller dans <em>Périphériques &gt; Installer les Additions invité&#8230;</em> :<br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/05/20090413_vbox7bis.jpg" alt="20090413_vbox7bis" title="20090413_vbox7bis" width="433" height="637" class="aligncenter size-full wp-image-168" /><br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/05/20090413_vbox8.jpg" alt="20090413_vbox8" title="20090413_vbox8" width="815" height="680" class="aligncenter size-full wp-image-169" /></p>
<p>Devrait alors apparaitre une icône avec un CD sur le bureau :<br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/05/20090413_vbox12.jpg" alt="20090413_vbox12" title="20090413_vbox12" width="492" height="257" class="aligncenter size-full wp-image-170" /><br />
(si ce n&#8217;est pas le cas, allez dans <em>Machine &gt; Redémarrage</em> pour redémarrer la machine virtuelle)</p>
<p>Maintenant, dans Ubuntu, allez dans <em>Applications &gt; Accessoires &gt; Terminal</em>. Une fenêtre au fond blanc s&#8217;ouvre. Vous allez y taper les commandes suivants :<br />
<code>sudo su<br />
<i>/* entrez votre password défini durant l'installation */</i><br />
cd /media/cdrom0<br />
./VBoxLinuxAdditions-x86.run</code><br />
Après quoi le système vous indique qu&#8217;il doit redémarrer. Ce qui doit donner :<br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/05/20090413_vbox13.jpg" alt="20090413_vbox13" title="20090413_vbox13" width="817" height="676" class="aligncenter size-full wp-image-171" /></p>
<p>Pour redémarrer, allez dans <em>Machine  &gt; Redémarrage</em>. Une fois le boot terminé, vous verrez Ubuntu avec une résolution d&#8217;écran équivalente à la vôtre !</p>
<p>Vous n&#8217;avez plus qu&#8217;à lancer Firefox pour découvrir le rendu de votre site, et vous pouvez installer d&#8217;autres navigateurs pour les tester.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/05/13/installer-linux-dans-windows-et-tester-ainsi-les-navigateurs-linux-web-design/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quelles polices de caractères utilisées sur le web ? [Web Design]</title>
		<link>http://blog.kodono.info/wordpress/2009/05/12/quelles-polices-de-caracteres-utilisees-sur-le-web-web-design/</link>
		<comments>http://blog.kodono.info/wordpress/2009/05/12/quelles-polices-de-caracteres-utilisees-sur-le-web-web-design/#comments</comments>
		<pubDate>Tue, 12 May 2009 10:34:04 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=149</guid>
		<description><![CDATA[[niveau: intermédiaire] Si vous n&#8217;êtes pas un webdesigner professionnel, vous vous demandez sans doute quelles polices de caractères sont utilisables sur le Web. Peut-on utiliser une fonte personnalisée? Quelles sont les principales familles de fontes génériques? C&#8217;est ainsi qu&#8217;est introduit le billet d&#8217;Alsacreation qui vous explique parfaitement les polices disponibles pour la plupart des navigateurs. [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<blockquote><p>Si vous n&#8217;êtes pas un webdesigner professionnel, vous vous demandez sans doute quelles polices de caractères sont utilisables sur le Web. Peut-on utiliser une fonte personnalisée? Quelles sont les principales familles de fontes génériques?</p></blockquote>
<p>C&#8217;est ainsi qu&#8217;est introduit le <a href="http://www.alsacreations.com/article/lire/631-quelles-polices-pour-un-site-web.html">billet d&#8217;Alsacreation</a> qui vous explique parfaitement les polices disponibles pour la plupart des navigateurs.</p>
<p>Dans cet excellent billet, l&#8217;auteur nous propose plusieurs polices de caractères:</p>
<div class="code">
<pre class="css">/* Polices à empattements (serif) */
font-family: Times, "Times New Roman", "Liberation Serif", FreeSerif, serif;
font-family: Georgia, "DejaVu Serif", Norasi, serif;

/* Polices sans empattements (sans-serif) */
font-family: Arial, Helvetica, "Liberation Sans", FreeSans, sans-serif;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-family: "Lucida Sans", "Lucida Grande", "Lucida Sans Unicode", "Luxi Sans", sans-serif;
font-family: Tahoma, Geneva, Kalimati, sans-serif;
font-family: Verdana, "DejaVu Sans", "Bitstream Vera Sans", Geneva, sans-serif;
font-family: Impact, "Arial Black", sans-serif;

/* Polices à chasse fixe (monospace) */
font-family: Courier, "Courier New", FreeMono, "Liberation Mono", monospace;
font-family: Monaco, "DejaVu Sans Mono", "Lucida Console", "Andale Mono", monospace;</pre>
</div>
</pre>
<p></code></p>
<p>Enfin vous pouvez retrouver un tableau très bien fait chez Dustin sur <a href="http://dustinbrewer.com/fonts-on-the-web-and-a-list-of-web-safe-fonts/">« Web safe and common fonts »</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/05/12/quelles-polices-de-caracteres-utilisees-sur-le-web-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les secrets du about:config de Firefox [Astuce Firefox]</title>
		<link>http://blog.kodono.info/wordpress/2009/05/02/les-secrets-du-aboutconfig-de-firefox-astuce-firefox/</link>
		<comments>http://blog.kodono.info/wordpress/2009/05/02/les-secrets-du-aboutconfig-de-firefox-astuce-firefox/#comments</comments>
		<pubDate>Sat, 02 May 2009 09:36:53 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=94</guid>
		<description><![CDATA[[niveau: intermédiaire] Savez-vous que Firefox est hautement configurable ? Pour cela il suffit de taper about:config dans la barre d&#8217;adresse (sans les http:// !), et il vous révèle alors ses entrailles. Mozillazine nous propose une page entièrement dédiée aux variables de sous le capot de Firefox. La plupart du temps vous n&#8217;aurez pas à modifier [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Savez-vous que Firefox est hautement configurable ? Pour cela il suffit de taper <em>about:config</em> dans la barre d&#8217;adresse (sans les <em>http://</em> !), et il vous révèle alors ses entrailles. Mozillazine nous propose <a href="http://kb.mozillazine.org/About:config_entries">une page entièrement dédiée</a> aux variables de sous le capot de Firefox. La plupart du temps vous n&#8217;aurez pas à modifier un de ces champs, mais parfois cela peut s&#8217;avérer utile.</p>
<p>Par exemple, si vous utilisez Firefox à votre travail sur un intranet dans un domaine Windows, vous avez dû remarquer que votre login/mot de passe vous sont sans arrêt demandés. Ce phénomène est dû au système d&#8217;authentification NTLM. Pour éviter de retaper nos informations, il suffit d&#8217;aller dans <em>about:config</em> puis de modifier la bonne variable :<br />
<code>network.automatic-ntlm-auth.trusted-uris</code><br />
Un simple double-clique permet de changer sa valeur. Vous aurez à inscrire, séparés par des virgules, les domaines de votre entreprise (par exemple <em>.monintranetdentreprise.com</em>, ou encore le nom d&#8217;un serveur à la résolution locale c&#8217;est-à-dire sans extension TLD comme <em>monserveurintranet</em>). Dorénavant lorsque vous accèderez à un de ces domaines, Firefox ne vous demandera plus vos informations.</p>
<p>Tux-Planet propose <a href="http://www.tux-planet.fr/firefox-3-10-astuces-de-configuration-pour-ameliorer-votre-navigation/">10 astuces pour configurer et améliorer Firefox</a> grâce à <em>about:config</em>. Par contre, concernant l&#8217;accélération de Firefox, je recommande ici la plus grande prudence. J&#8217;ai moi-même tenté quelques changements, sans remarquer un effet visible, et même parfois un comportement bizarre&#8230;</p>
<p>Dernier exemple ; il est possible de <a href="http://kb.mozillazine.org/Browser.download.manager.scanWhenDone">désactiver le scan de l&#8217;antivirus</a> des fichiers que vous venez de télécharger. Quel intérêt ? Il se trouve dans le fait que l&#8217;antivirus peut prendre plusieurs secondes à vérifier un fichier nouvellement téléchargé, et même quand il fait une taille minuscule&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/05/02/les-secrets-du-aboutconfig-de-firefox-astuce-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tester un site sous IE6, IE7 et IE8 [Web Design]</title>
		<link>http://blog.kodono.info/wordpress/2009/04/20/tester-un-site-sous-ie6-ie7-et-ie8-web-design/</link>
		<comments>http://blog.kodono.info/wordpress/2009/04/20/tester-un-site-sous-ie6-ie7-et-ie8-web-design/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 05:30:55 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Application]]></category>
		<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Niveau expert]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=67</guid>
		<description><![CDATA[[niveau: intermédiaire-expert] Quand on crée un site Internet, il faut toujours s&#8217;assurer que le rendu est correct. L&#8217;exercice devient complexe lorsque l&#8217;on souhaite que tout fonctionne pour les différentes versions d&#8217;Internet Explorer. Vous n&#8217;êtes pas sans censés savoir que, en particulier IE6, les Internet Explorer sont une catastrophe et qu&#8217;il faut utiliser des astuces pour [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire-expert]</p>
<p>Quand on crée un site Internet, il faut toujours s&#8217;assurer que le rendu est correct. L&#8217;exercice devient complexe lorsque l&#8217;on souhaite que tout fonctionne pour les différentes versions d&#8217;Internet Explorer. Vous n&#8217;êtes pas sans censés savoir que, en particulier IE6, les Internet Explorer sont une catastrophe et qu&#8217;il faut utiliser des astuces pour rendre ses sites web d&#8217;aussi bonne facture sur les autres navigateurs que sur les IE!</p>
<p>Comme il n&#8217;est pas possible d&#8217;installer plusieurs IE sur une même machine (ou alors en faisant <a href="http://tredosoft.com/Multiple_IE">preuves d&#8217;astuces plus ou moins réussies</a>), il existe une solution beaucoup plus simple : installer des machines virtuelles faites exprès par Microsoft et qui embarquent différentes versions d&#8217;IE !</p>
<p>Pour cela, il suffit d&#8217;installer <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=fr&#038;FamilyID=b07c9ef0-265a-4237-ae3b-25bc8937d40f">Virtual PC</a> (gratuit). Ensuite, il faut se rendre sur <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&#038;displaylang=en">cette page dédiée</a> où on vous propose :<br />
- Windows XP SP3 avec IE6<br />
- Windows XP SP3 avec IE7<br />
- Windows XP SP3 avec IE8<br />
- Windows Vista avec IE7</p>
<p>Vous remarquez que ces images de Windows ont une durée de vie. Une fois la date expirée, vous devrez retourner sur le site pour télécharger une nouvelle image.</p>
<p>Pour installer une machine virtuelle, c&#8217;est rapide et simple. Lancez le .exe de l&#8217;image Windows téléchargée, et choisissez où vous désirez extraire votre disque dur virtuel. Puis lancez Virtual PC. Une console apparait alors dans laquelle vous cliquez sur &laquo;&nbsp;Nouveau&nbsp;&raquo;.<br />
Un assistant s&#8217;ouvre. Sélectionnez la première option (&laquo;&nbsp;Créer un ordinateur virtuel&nbsp;&raquo;). Donnez un nom à l&#8217;ordinateur (par exemple &laquo;&nbsp;IE6 XPSP3&#8243;). Ensuite choisissez une configuration par défaut (ici &laquo;&nbsp;Windows XP&nbsp;&raquo;). A l&#8217;étape suivante vous pouvez modifier la quantité de mémoire (pour XP je mets 256Mo au lieu des 128Mo proposés).<br />
Enfin, à l&#8217;étape suivante, utilisez un disque existant, et en l&#8217;occurrence celui que vous avez extrait du fichier téléchargé précédemment (dans mon exemple &laquo;&nbsp;XP SP3 with IE6 2008-Dec.vhd&nbsp;&raquo;).<br />
Et voilà !</p>
<p>La console de Virtual PC vous offre alors Windows XP avec IE6. Cliquez sur Démarrer, et Windows va se lancer dans une nouvelle fenêtre. Vous n&#8217;aurez plus qu&#8217;à ouvrir IE6 et à vous balader sur votre site web pour considérer votre rendu.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/04/20/tester-un-site-sous-ie6-ie7-et-ie8-web-design/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Process Manager [Application]</title>
		<link>http://blog.kodono.info/wordpress/2009/04/18/process-manager-application/</link>
		<comments>http://blog.kodono.info/wordpress/2009/04/18/process-manager-application/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 10:53:30 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Application]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=62</guid>
		<description><![CDATA[[nieau: intermédiaire] Je vais vous présenter une petite application Windows qui va se loger près de votre horloge et vous apporter des fonctionnalités en plus pour chaque fenêtre/application ; c&#8217;est Process Manager. Comme vous le voyez, quatre options supplémentaires apparaissent lorsque vous faites un clique droit sur une fenêtre: - Transparency : permet de régler [...]]]></description>
			<content:encoded><![CDATA[<p>[nieau: intermédiaire]</p>
<p>Je vais vous présenter une petite application Windows qui va se loger près de votre horloge et vous apporter des fonctionnalités en plus pour chaque fenêtre/application ; c&#8217;est <a href="http://www.arif-ali-saiyed.blogspot.com/">Process Manager</a>.</p>
<p><img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/04/20090418_process_manager.jpg" alt="20090418_process_manager" title="20090418_process_manager" width="219" height="245" class="aligncenter size-full wp-image-63" /></p>
<p>Comme vous le voyez, quatre options supplémentaires apparaissent lorsque vous faites un clique droit sur une fenêtre:<br />
- <strong>Transparency</strong> : permet de régler la transparence d&#8217;une fenêtre (d&#8217;une totale opacité, à une fenêtre quasi-totalement transparente);<br />
- <strong>Minimize to tray</strong> : va réduire la fenêtre (et donc le logiciel) en une icône systray qui va venir se placer à côté des autres près de l&#8217;horloge;<br />
- <strong>Always on top</strong> : encore une option explicite, qui offre la possibilité de laisser un logiciel toujours sur le devant, même si on clique sur d&#8217;autres fenêtres;<br />
- <strong>Kill</strong> : va tuer l&#8217;application, comme il est déjà possible de le faire avec le Gestionnaire des Tâches de Windows (mais cela évite de l&#8217;ouvrir, puis de chercher l&#8217;application, etc)</p>
<p>Simple. Efficace. Je l&#8217;utilise depuis plusieurs semaines et j&#8217;apprécie ces options supplémentaires <img src='http://blog.kodono.info/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/04/18/process-manager-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

