<?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>jpdemory</title>
	<atom:link href="http://blog.jpdemory.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.jpdemory.com</link>
	<description>Ressources informatiques</description>
	<lastBuildDate>Mon, 02 Jan 2012 12:24:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Java : héritage et casting d&#8217;objet</title>
		<link>http://blog.jpdemory.com/304</link>
		<comments>http://blog.jpdemory.com/304#comments</comments>
		<pubDate>Fri, 20 Aug 2010 09:49:44 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=304</guid>
		<description><![CDATA[// Y et Z sont des classes spécialisées de la classe X X x = new X(); Y y = new Y(); Z z = new Z(); X xy = new Y(); // compilation ok (généralisation) X xz = new Z(); // compilation ok (généralisation) Y yz = new Z(); // type non compatible (fratrie) [...]]]></description>
			<content:encoded><![CDATA[<pre class="brush: java; gutter: true">// Y et Z sont des classes spécialisées de la classe X
X x = new X();
Y y = new Y();
Z z = new Z();
X xy = new Y(); // compilation ok (généralisation)
X xz = new Z(); // compilation ok (généralisation)
Y yz = new Z();   // type non compatible (fratrie)
Y y1 = new X();  // X n'est pas Y
Z z1 = new X();  // X n'est pas Z
X x1 = y; // compiles ok (y est une spécialisation X)
X x2 = z; // compiles ok (z est une spécialisation X)
Y y1 = (Y) x; // compilation ok mais produit une erreur d'exécution
Z z1 = (Z) x; // compilation ok mais produit une erreur d'exécution
Y y2 = (Y) x1; // compilation et exécution ok (x1 est de type Y)
Z z2 = (Z) x2; // compilation et exécution ok (x2 est de type Z)
Y y3 = (Y) z;  // type non convertible (fratrie)
Z z3 = (Z) y;  // type non convertibles (fratrie)
Object o = z;
Object o1 = (Y) o; // compilation ok mais produit une erreur d'exécution</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/304/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bourne Shell : Réaliser une boucle sans fin</title>
		<link>http://blog.jpdemory.com/291</link>
		<comments>http://blog.jpdemory.com/291#comments</comments>
		<pubDate>Thu, 12 Aug 2010 05:53:36 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=291</guid>
		<description><![CDATA[On parfois besoin d&#8217;afficher de manière récurrente une information dans le shell d&#8217;Unix. Plutôt de que relancer plusieurs fois la commande manuellement, il est préférable d&#8217;employer une boucle sans fin. while : do date sleep 1 done Pour mettre fin à la boucle, il faudra appuyer sur les touches [Ctrl]+[c].]]></description>
			<content:encoded><![CDATA[<p>On parfois besoin d&#8217;afficher de manière récurrente une information dans le shell d&#8217;Unix. Plutôt de que relancer plusieurs fois la commande manuellement, il est préférable d&#8217;employer une boucle sans fin.</p>
<pre class="brush: bash; gutter: true">while :
do
date
sleep 1
done</pre>
<p>Pour mettre fin à la boucle, il faudra appuyer sur les touches [Ctrl]+[c].</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/291/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux : obtenir des information sur le lecteur de CD-ROM</title>
		<link>http://blog.jpdemory.com/277</link>
		<comments>http://blog.jpdemory.com/277#comments</comments>
		<pubDate>Mon, 14 Jun 2010 13:59:28 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Debian / Ubuntu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=277</guid>
		<description><![CDATA[Comme toujours, sous Linux, pour obtenir des information sur le syst&#232;me, c&#8217;est dans le r&#233;pertoire /proc que &#231;a se passe : [bash light="true"] # cat /proc/sys/dev/cdrom/info [/bash] Cette commande affiche si on a affaire &#224; un lecteur ou a un graveur de CD ou DVD ainsi que le device correspondant (/dev/&#8230;)]]></description>
			<content:encoded><![CDATA[<p>Comme toujours, sous Linux, pour obtenir des information sur le syst&egrave;me, c&#8217;est dans le r&eacute;pertoire /proc que &ccedil;a se passe :</p>
<p>[bash light="true"] # cat /proc/sys/dev/cdrom/info [/bash]</p>
<p>Cette commande affiche si on a affaire &agrave; un lecteur ou a un graveur de CD ou DVD ainsi que le device correspondant (/dev/&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/277/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ImageMagick : Convertir un fond blanc en transparent</title>
		<link>http://blog.jpdemory.com/264</link>
		<comments>http://blog.jpdemory.com/264#comments</comments>
		<pubDate>Sun, 28 Mar 2010 07:12:58 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[ImageMagick]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=264</guid>
		<description><![CDATA[Il faut que le fond soit un blanc pur convert input.gif -transparent white output.gif]]></description>
			<content:encoded><![CDATA[<p>Il faut que le fond soit un blanc pur</p>
<pre class="brush: plain; light: true">
convert input.gif -transparent white output.gif
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/264/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse : Sélectionner en colonne</title>
		<link>http://blog.jpdemory.com/253</link>
		<comments>http://blog.jpdemory.com/253#comments</comments>
		<pubDate>Wed, 30 Dec 2009 16:52:14 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[eclipse selection bloc colonne]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=253</guid>
		<description><![CDATA[Sous Eclipse pour sélectionner en bloc ou en colonne, on peut utiliser le raccourcis clavier Maj+Alt+A. Ou alors, en cliquant sur l&#8217;îcone :]]></description>
			<content:encoded><![CDATA[<p>Sous Eclipse pour sélectionner en bloc ou en colonne, on peut utiliser le raccourcis clavier <strong>Maj+Alt+A</strong>. Ou alors, en cliquant sur l&#8217;îcone :</p>
<p><a href="http://www.jpdemory.com/blog/wp-content/uploads/2009/12/clip01.png" rel="lightbox[253]"><img class="aligncenter size-full wp-image-254" title="clip01" src="http://www.jpdemory.com/blog/wp-content/uploads/2009/12/clip01.png" alt="" width="154" height="50" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/253/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Server : Eteindre la machine en appuyant sur le bouton marche/arr&#234;t</title>
		<link>http://blog.jpdemory.com/248</link>
		<comments>http://blog.jpdemory.com/248#comments</comments>
		<pubDate>Sat, 21 Nov 2009 22:15:42 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Debian / Ubuntu]]></category>
		<category><![CDATA[arrêt]]></category>
		<category><![CDATA[bouton]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/248</guid>
		<description><![CDATA[Par défaut, sur la version serveur d&#8217;Ubuntu, le bouton marche/arrêt ne permet pas d&#8217;éteindre la machine. Heureusement, si par mégarde quelqu&#8217;un venait à effleurer le bouton sur une machine en production, les conséquences pourraient être fâcheuse. Par contre, cette fonctionnalité est bien pratique sur un serveur de test que l&#8217;on laisse traîner dans un coin [...]]]></description>
			<content:encoded><![CDATA[<p>Par défaut, sur la version serveur d&#8217;Ubuntu, le bouton marche/arrêt ne permet pas d&#8217;éteindre la machine. Heureusement, si par mégarde quelqu&#8217;un venait à effleurer le bouton sur une machine en production, les conséquences pourraient être fâcheuse.</p>
<p>Par contre, cette fonctionnalité est bien pratique sur un serveur de test que l&#8217;on laisse traîner dans un coin sans écran et sans clavier. Avoir la possibilité d&#8217;éteindre la machine proprement sans avoir à se connecter dessus peut-être bien pratique.</p>
<p>Pour installer cette fonctionnalité, il suffit d&#8217;installer le paquet &quot;acpid&quot;</p>
<p>
<pre class="brush: plain; light: true"># aptitude install acpid
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/248/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP : préparer une requête avec MySQL</title>
		<link>http://blog.jpdemory.com/231</link>
		<comments>http://blog.jpdemory.com/231#comments</comments>
		<pubDate>Fri, 09 Oct 2009 09:04:06 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=231</guid>
		<description><![CDATA[Sous PHP, l&#8217;utilisation de paramètres dans SQL peut rendre la tâche fastidieuse avec les multiples concaténations. La fonction sprintf peut simplifier les choses&#8230; Création de la requête SQL en utilisant la fonction sprintf. Cela permet d&#8217;éviter des concaténations fastidieuses. $sql = sprintf("SELECT * FROM clients JOIN commandes ON clients.numclient = commandes.numclient WHERE numclient=%s AND date=%s", [...]]]></description>
			<content:encoded><![CDATA[<p>Sous PHP, l&#8217;utilisation de paramètres dans SQL peut rendre la tâche fastidieuse avec les multiples concaténations.<br />
La fonction <code>sprintf</code> peut simplifier les choses&#8230;<br />
<span id="more-231"></span><br />
Création de la requête SQL en utilisant la fonction <code>sprintf</code>. Cela permet d&#8217;éviter des concaténations fastidieuses.</p>
<p><pre class="brush:php">
$sql = sprintf("SELECT *
FROM clients JOIN commandes ON clients.numclient = commandes.numclient
WHERE numclient=%s AND date=%s",
GetSQLValueString($client,"text"),
GetSQLValueString($dateCmd,"date")
);

$rs = mysql_query($sql) or die ("Erreur : <br/><code>" . $sql . "<code><br/>--<br/>"
. "<span class='alert'>" . mysql_error() . "</span>");
</pre>
</p>
<p>Une fonction très pratique dont je ne connais pas l'auteur. Cette fonction permet de protéger les paramètres passés à la requête SQL.</p>
<p><pre class="brush:php">
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/231/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux: Sauvegarder et restaurer la table des partitions</title>
		<link>http://blog.jpdemory.com/223</link>
		<comments>http://blog.jpdemory.com/223#comments</comments>
		<pubDate>Mon, 28 Sep 2009 09:43:45 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[sfdisk]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/223</guid>
		<description><![CDATA[Pour sauvegarder et restaurer la table des partitions, il est possible d’utiliser la commande sfdisk sous Linux : Pour sauvegarder la table des partitions du disque /dev/sda dans le fichier sda.part sfdisk -d /dev/sda &#62; sda.part Pour la restaurer sfdisk --force /dev/sda &#60; sda.part]]></description>
			<content:encoded><![CDATA[<p>Pour sauvegarder et restaurer la table des partitions, il est possible d’utiliser la commande sfdisk sous Linux :</p>
<p>Pour sauvegarder la table des partitions du disque /dev/sda dans le fichier sda.part</p>
<p>
<pre class="brush: plain; light: true">sfdisk -d /dev/sda &gt; sda.part</pre>
</p>
<p>Pour la restaurer</p>
<p>
<pre class="brush: plain; light: true">sfdisk --force /dev/sda &lt; sda.part</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/223/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ImageMagick : Convertir un fichier svg en png</title>
		<link>http://blog.jpdemory.com/221</link>
		<comments>http://blog.jpdemory.com/221#comments</comments>
		<pubDate>Mon, 24 Aug 2009 06:15:27 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[ImageMagick]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=221</guid>
		<description><![CDATA[convert.exe -background white Basic_disk_displaying_CHS.svg Basic_disk_displaying_CHS.png]]></description>
			<content:encoded><![CDATA[<p>
<pre class="brush: plain; light: true">convert.exe -background white Basic_disk_displaying_CHS.svg Basic_disk_displaying_CHS.png</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/221/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vim : convertir l’encodage d’un fichier</title>
		<link>http://blog.jpdemory.com/210</link>
		<comments>http://blog.jpdemory.com/210#comments</comments>
		<pubDate>Sun, 19 Apr 2009 20:57:10 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Vim]]></category>
		<category><![CDATA[convertir]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=210</guid>
		<description><![CDATA[Comment convertir un fichier latin1 (iso-8859-1) en utf-8 ou vice-versa ? Convertir pendant l&#8217;&#233;dition :set fileencoding=utf-8 ou :set fenc=latin1 Remarque : l&#8217;option fileencoding peut-&#234;tre abr&#233;g&#233; en fenc Convertir pendant l&#8217;ouverture du fichier :edit ++enc=koi8-r russe.txt Convertir lors de l&#8217;&#233;criture du fichier :write ++enc=utf-8 russe.txt Les types d&#8217;encodage latin1 caract&#232;res 8-bits (ISO-8859-1) iso-8859-N variante ISO-8859 (N [...]]]></description>
			<content:encoded><![CDATA[<p>Comment convertir un fichier latin1 (iso-8859-1) en utf-8 ou vice-versa ?</p>
<p><span id="more-210"></span></p>
<h2>Convertir pendant l&rsquo;&eacute;dition</h2>
<pre class="brush: plain; light: true">
:set fileencoding=utf-8</pre>
<p>ou</p>
<pre class="brush: plain; light: true">
:set fenc=latin1</pre>
<p><strong>Remarque</strong> : l&rsquo;option <code>fileencoding</code> peut-&ecirc;tre abr&eacute;g&eacute; en <code>fenc</code></p>
<h2>Convertir pendant l&#8217;ouverture du fichier</h2>
<pre class="brush: plain; light: true">
:edit ++enc=koi8-r russe.txt</pre>
<h2>Convertir lors de l&#8217;&eacute;criture du fichier</h2>
<pre class="brush: plain; light: true">
:write ++enc=utf-8 russe.txt</pre>
<h2>Les types d&#8217;encodage</h2>
<table width="504" cellspacing="0" cellpadding="2" border="1">
<tbody>
<tr>
<td width="117" valign="top">latin1</td>
<td width="385" valign="top">caract&egrave;res 8-bits (ISO-8859-1)</td>
</tr>
<tr>
<td width="117" valign="top">iso-8859-N</td>
<td width="385" valign="top">variante ISO-8859 (N = 2 &agrave; 15)</td>
</tr>
<tr>
<td width="117" valign="top">koi8-r</td>
<td width="385" valign="top">russe</td>
</tr>
<tr>
<td width="117" valign="top">koi8-u</td>
<td width="385" valign="top">ukrainien</td>
</tr>
<tr>
<td width="117" valign="top">8bit-{nom}</td>
<td width="385" valign="top">n&#8217;importe quel encodage 8-bits (nom sp&eacute;cifique de Vim)</td>
</tr>
<tr>
<td width="117" valign="top">cp{nombre}</td>
<td width="385" valign="top">MS-Windows : n&#8217;importe quelle page de codes mono-octet install&eacute;e</td>
</tr>
<tr>
<td width="117" valign="top">cp932</td>
<td width="385" valign="top">japonais (Windows uniquement)</td>
</tr>
<tr>
<td width="117" valign="top">euc-jp</td>
<td width="385" valign="top">japonais (Unix uniquement)</td>
</tr>
<tr>
<td width="117" valign="top">sjis</td>
<td width="385" valign="top">japonais (Unix uniquement)</td>
</tr>
<tr>
<td width="117" valign="top">cp949</td>
<td width="385" valign="top">cor&eacute;en (Unix et Windows)</td>
</tr>
<tr>
<td width="117" valign="top">euc-kr</td>
<td width="385" valign="top">cor&eacute;en (Unix uniquement)</td>
</tr>
<tr>
<td width="117" valign="top">cp936</td>
<td width="385" valign="top">chinois simplifi&eacute; (Windows uniquement)</td>
</tr>
<tr>
<td width="117" valign="top">euc-cn</td>
<td width="385" valign="top">chinois simplifi&eacute; (Unix uniquement)</td>
</tr>
<tr>
<td width="117" valign="top">cp950</td>
<td width="385" valign="top">chinois classique (sur Unix, alias pour big5)</td>
</tr>
<tr>
<td width="117" valign="top">big5</td>
<td width="385" valign="top">chinois classique (sur Windows, alias pour cp950)</td>
</tr>
<tr>
<td width="117" valign="top">euc-tw</td>
<td width="385" valign="top">chinois classique (Unix uniquement)</td>
</tr>
<tr>
<td width="117" valign="top">2byte-{nom}</td>
<td width="385" valign="top">Unix : n&#8217;importe quel encodage sur deux octets (nom sp&eacute;cifique de Vim)</td>
</tr>
<tr>
<td width="117" valign="top">cp{nombre}</td>
<td width="385" valign="top">MS-Windows : n&#8217;importe quelle page de codes sur deux octets install&eacute;e</td>
</tr>
<tr>
<td width="117" valign="top">utf-8</td>
<td width="385" valign="top">Unicode UTF-8 encod&eacute; sur 32 bits (ISO/IEC 10646-1)</td>
</tr>
<tr>
<td width="117" valign="top">ucs-2</td>
<td width="385" valign="top">Unicode UCS-2 encod&eacute; sur 16 bits (ISO/IEC 10646-1)</td>
</tr>
<tr>
<td width="117" valign="top">ucs-2le</td>
<td width="385" valign="top">comme ucs-2, en petit boutiste</td>
</tr>
<tr>
<td width="117" valign="top">utf-16</td>
<td width="385" valign="top">ucs-2 &eacute;tendu avec des mots doubles pour plus de caract&egrave;res</td>
</tr>
<tr>
<td width="117" valign="top">utf-16le</td>
<td width="385" valign="top">comme utf-16, en petit boutiste</td>
</tr>
<tr>
<td width="117" valign="top">ucs-4</td>
<td width="385" valign="top">Unicode UCS-4 encod&eacute; sur 32 bits (ISO/IEC 10646-1)</td>
</tr>
<tr>
<td width="117" valign="top">ucs-4le</td>
<td width="385" valign="top">comme ucs-4, en petit boutiste</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/210/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

