<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.grafactory.net/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>L'appartement - Le codage</title>
  <link>http://www.grafactory.net/blog/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Sun, 24 Aug 2008 20:09:44 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Un script de monitoring ultra simpliste</title>
    <link>http://www.grafactory.net/blog/post/2008/02/27/Un-script-de-monitoring-ultra-simpliste</link>
    <guid isPermaLink="false">urn:md5:ceb4e822743c67d25c104f5df0a629ea</guid>
    <pubDate>Wed, 27 Feb 2008 13:41:00 +0100</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
        <category>bash</category><category>monitoring</category><category>shell</category>    
    <description>    &lt;p&gt;Loin de &lt;a href=&quot;http://www.nagios.org/&quot; hreflang=&quot;en&quot;&gt;Nagios&lt;/a&gt; et de ses innombrables possibilités, voici un script bash minimaliste pour tester la disponibilité d'une machine ou plusieurs machines via un ping et recevoir, en cas de non réponse, les alertes par SMS&lt;sup&gt;[&lt;a href=&quot;http://www.grafactory.net/blog/post/2008/02/27/#pnote-156-1&quot; id=&quot;rev-pnote-156-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; et/ou mail. Le principe est le suivant&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;on teste toutes les X minutes la disponibilité des hôtes&lt;/li&gt;
&lt;li&gt;si une machine est détectée &lt;em&gt;down&lt;/em&gt;, on le note dans un fichier temporaire&lt;/li&gt;
&lt;li&gt;si 5 minutes après la machine est toujours &lt;em&gt;down&lt;/em&gt;, on lance les alertes&lt;/li&gt;
&lt;li&gt;quand la machine est de nouveau &lt;em&gt;up&lt;/em&gt;, on renvoi un mail (pas de SMS dans ce cas)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour configurer le script, il suffit de préciser les variables commentées au début du fichier.&lt;/p&gt;

&lt;code class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# pingTest par Yves et Thierry&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# http://www.grafactory.net/blog/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# &lt;span style=&quot;color: #000000;&quot;&gt;2008&lt;/span&gt; / Licence LGPL&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# les hotes a tester &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;HOSTS=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;domain.tld autredomaine.tld&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# sujets des mails&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;SUBJECT=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;machine down&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;SUBJECT_UP=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;machine up&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# envoyer un SMS via tm4b.com&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;EMAILID=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;moi@domain.tld&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;TELID=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;XXXXX&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;PASSWD=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;XXXXX&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# envoyer un simple mail&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;EMAILSIMPLE=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;moi@domain.tld&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# nombre test&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;COUNT=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;4&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;for&lt;/span&gt; myHost &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$HOSTS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;do&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; ! &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;ping&lt;/span&gt; -q -c &lt;span style=&quot;color: #007800;&quot;&gt;$COUNT&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$myHost&lt;/span&gt; &amp;gt;&amp;gt; /dev/null&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# elle est KO&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; ! -f /tmp/mail.&lt;span style=&quot;color: #007800;&quot;&gt;$myHost&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# on n est pas encore au courant&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; -f /tmp/&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;ping&lt;/span&gt;.&lt;span style=&quot;color: #007800;&quot;&gt;$myHost&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# elle etait KO cinq minutes avant, faut prevenir&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# envoyer un SMS&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;To - $TELID&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\n&lt;/span&gt;From - $TELID&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\n&lt;/span&gt;Message - La machine $myHost ne repond plus a $(date)&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\n&lt;/span&gt;Password - $PASSWD&amp;quot;&lt;/span&gt; |\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mail -s &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;[$myHost] $SUBJECT&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$EMAILID&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# envoyer un mail normal&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;La machine $myHost ne repond plus a $(date)&amp;quot;&lt;/span&gt; |\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mail -s &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;[$myHost] $SUBJECT&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$EMAILSIMPLE&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# &amp;nbsp;creer le fichier pour indiquer que le mail a ete envoye&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;touch&lt;/span&gt; /tmp/mail.&lt;span style=&quot;color: #007800;&quot;&gt;$myHost&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;touch&lt;/span&gt; /tmp/&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;ping&lt;/span&gt;.&lt;span style=&quot;color: #007800;&quot;&gt;$myHost&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# elle n est pas KO&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; -f /tmp/&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;ping&lt;/span&gt;.&lt;span style=&quot;color: #007800;&quot;&gt;$myHost&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;rm&lt;/span&gt; /tmp/&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;ping&lt;/span&gt;.&lt;span style=&quot;color: #007800;&quot;&gt;$myHost&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; -f /tmp/mail.&lt;span style=&quot;color: #007800;&quot;&gt;$myHost&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;rm&lt;/span&gt; /tmp/mail.&lt;span style=&quot;color: #007800;&quot;&gt;$myHost&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# renvoyer un mail&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;La machine $myHost repond a nouveau a $(date)&amp;quot;&lt;/span&gt; |\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mail -s &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;[$myHost] $SUBJECT_UP&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$EMAILSIMPLE&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;done&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;Dans la crontab, on ajoute la ligne suivante (ici, un test toute les 5 minutes).&lt;/p&gt;

&lt;pre&gt;
# faire un test de ping toutes les 5 min
*/5 * * * * /usr/local/sbin/pingtest &amp;gt;&amp;gt; /dev/null
&lt;/pre&gt;


&lt;p&gt;&lt;em&gt;(on suppose donc ici que le script est installé dans /usr/local/sbin/)&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Toutes les améliorations sont les bienvenues &lt;img src=&quot;/blog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.grafactory.net/blog/post/2008/02/27/#rev-pnote-156-1&quot; id=&quot;pnote-156-1&quot;&gt;1&lt;/a&gt;] Pour recevoir les alertes par SMS, j'utilise le service &lt;em&gt;Email to SMS&lt;/em&gt; de &lt;a href=&quot;http://www.tm4b.com/&quot; hreflang=&quot;en&quot;&gt;TM4B&lt;/a&gt; . Les SMS peuvent être de prépayés via PayPal à un tarif très intéressant. Cette société propose aussi un API très complet pour l'envoi de SMS depuis un programme, un site Web...&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://www.grafactory.net/blog/post/2008/02/27/Un-script-de-monitoring-ultra-simpliste#comment-form</comments>
      <wfw:comment>http://www.grafactory.net/blog/post/2008/02/27/Un-script-de-monitoring-ultra-simpliste#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grafactory.net/blog/feed/rss2/comments/156</wfw:commentRss>
      </item>
    
  <item>
    <title>Recherche Fulltext et InnoDB avec Mysql</title>
    <link>http://www.grafactory.net/blog/post/2007/09/07/Recherche-Fulltext-et-InnoDB-avec-Mysql</link>
    <guid isPermaLink="false">urn:md5:c70ad4563922462c4b58283621606501</guid>
    <pubDate>Mon, 10 Sep 2007 11:22:00 +0200</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
        <category>fulltext</category><category>innodb</category><category>mysql</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://www.grafactory.net/blog/public/images/icones/mysql_100x52-64.gif&quot; alt=&quot;Logo Mysql&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;Les avantages de l'utilisation du moteur de stockage &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/fr/innodb-overview.html&quot; hreflang=&quot;fr&quot;&gt;InnoDB&lt;/a&gt; par rapport à &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/fr/myisam-storage-engine.html&quot; hreflang=&quot;fr&quot;&gt;MysIsam&lt;/a&gt; sur une base de données &lt;a href=&quot;http://www.mysql.fr/&quot; hreflang=&quot;fr&quot;&gt;Mysql&lt;/a&gt; (à partir de la version 5.02) sont non négligeables sur certains projets. Il permet l'utilisation&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;de contraintes d'intégrité (Foreign Key ect...)&lt;/li&gt;
&lt;li&gt;de &lt;em&gt;triggers&lt;/em&gt; (déclencheurs en français dans le texte).&lt;/li&gt;
&lt;li&gt;de procédures stockées&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un inconvénient est, par contre, particulièrement pénalisant dès qu'on envisage un moteur de recherche en &quot;texte intégral&quot;. Il est en effet impossible de créer des &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html&quot; hreflang=&quot;fr&quot;&gt;index FULLTEXT&lt;/a&gt; avec le moteur InnoDB&amp;nbsp;! L'utilisation des MATCH et autres joyeusetés est donc impossible. Le classement pertinent des résultats devient plus compliqué à mettre en oeuvre.&lt;/p&gt;


&lt;p&gt;Je me suis retrouvé confronté à ce problème récemment et voici comment je l'ai contourné. Je résume, pour l'exemple, en une unique table, ma structure de données qui en compte quelques dizaines.&lt;/p&gt;


&lt;p&gt;J'ai donc une table &quot;texts&quot; qui utilise InnoDB avec quelques champs dont le &quot;title&quot; sur lequel je souhaite faire les recherches (la clé primaire s'appelle &quot;idtext&quot;).&lt;/p&gt;


&lt;p&gt;J'ai créé une table &quot;searchs_texts&quot; avec le moteur MyIsam, deux champs -   idtext/title - &lt;strong&gt;et&lt;/strong&gt; un index FULLTEXT sur le champ &quot;title&quot;.&lt;/p&gt;


&lt;p&gt;Cette table contient, vous l'aurez compris, l'exacte correspondance des champs idtext/title de la table texts.&lt;/p&gt;


&lt;p&gt;Reste à tenir à jour cette table sans modifier le code de tous le site. Les &lt;strong&gt;triggers&lt;/strong&gt; vont nous être bien utile pour ça&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;Un pour l'INSERT&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
CREATE TRIGGER trigger_insert_texts
AFTER INSERT ON texts
FOR EACH ROW
INSERT INTO searchs_texts SET idtext=NEW.idtext, title=NEW.title;
&lt;/pre&gt;

&lt;pre&gt;&lt;/pre&gt;

&lt;p&gt;Un pour l'UPDATE&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
CREATE TRIGGER trigger_update_texts
AFTER UPDATE ON texts
FOR EACH ROW
UPDATE searchs_texts SET title=NEW.title WHERE idtext=OLD.idtext;
&lt;/pre&gt;

&lt;pre&gt;&lt;/pre&gt;

&lt;p&gt;Et enfin, un pour le DELETE&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
CREATE TRIGGER trigger_delete_texts
AFTER DELETE ON texts
FOR EACH ROW
DELETE FROM searchs_texts WHERE idtext=OLD.idtext;
&lt;/pre&gt;


&lt;p&gt;Et voilà. Le tour est joué&amp;nbsp;! Maintenant, votre moteur de recherche pourra utiliser &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/fr/fulltext-boolean.html&quot; hreflang=&quot;fr&quot;&gt;tous ce qui est disponible&lt;/a&gt; et bientôt concurrencer Google &lt;img src=&quot;/blog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.grafactory.net/blog/post/2007/09/07/Recherche-Fulltext-et-InnoDB-avec-Mysql#comment-form</comments>
      <wfw:comment>http://www.grafactory.net/blog/post/2007/09/07/Recherche-Fulltext-et-InnoDB-avec-Mysql#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grafactory.net/blog/feed/rss2/comments/150</wfw:commentRss>
      </item>
    
  <item>
    <title>Le plein de navigateurs</title>
    <link>http://www.grafactory.net/blog/post/2007/04/13/152-le-plein-de-navigateurs</link>
    <guid isPermaLink="false">urn:md5:d60fd761a6a985f93570c7b059a702e3</guid>
    <pubDate>Fri, 13 Apr 2007 09:11:56 +0000</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
            
    <description>    &lt;p&gt;Voilà un petit truc qui évite d'avoir plein de machines virtuelles pour tester vos sites sur IE6+IE7+IE5+Opéra+Firefox ect...  Une compilation de navigateur qui se lance en &quot;standalone&quot; sous Winchose. (je n'ai pas Win mais j'ai au moins une VM de test)&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.wikistuce.info/doku.php/logiciels/une_panoplie_de_navigateur&quot;&gt;Standalone et Portable browser&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;N'oubliez quand même pas de tester sous Safari, Konqueror, Epiphany et Lynx &lt;img src=&quot;/blog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.grafactory.net/blog/post/2007/04/13/152-le-plein-de-navigateurs#comment-form</comments>
      <wfw:comment>http://www.grafactory.net/blog/post/2007/04/13/152-le-plein-de-navigateurs#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grafactory.net/blog/feed/rss2/comments/142</wfw:commentRss>
      </item>
    
  <item>
    <title>Une nouveauté pas web 2.0 de Google</title>
    <link>http://www.grafactory.net/blog/post/2006/10/05/136-nouveaute-pas-web-20-de-google</link>
    <guid isPermaLink="false">urn:md5:6167671f4db01c8920062f05830b5913</guid>
    <pubDate>Thu, 05 Oct 2006 18:44:05 +0000</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
            
    <description>    &lt;p&gt;Un truc sympa du maxi Google - à première vue. il faut voir à l'usage -&amp;nbsp;: &lt;a href=&quot;http://www.google.com/codesearch&quot; hreflang=&quot;en&quot;&gt;le moteur de recherche sur du code source&lt;/a&gt;. C'est Google Codesearch. Ca change des trucs web 20.0 &lt;img src=&quot;/blog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;D'après ce qu'on peux lire ici ou là, il n'y aurait pas de liens sponsorisés sur ce moteur... Pour combien de temps&amp;nbsp;? Quand on voit la foultitude de sites de &quot;développeurs&quot; sans aucun contenu réel et qui ne font que pomper des listes de diffusions (voir carrément des articles d'autres sites)... Tout ça, bien entendu, entouré d'un maximum de publicité, on peux se poser la question...&lt;/p&gt;


&lt;p&gt;C'est quand même à tester&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Le PHP est loin d'être mort</title>
    <link>http://www.grafactory.net/blog/post/2005/10/27/102-le-php-est-loin-detre-mort</link>
    <guid isPermaLink="false">urn:md5:abbc6f34b15174d1daa543f48a7d6170</guid>
    <pubDate>Thu, 27 Oct 2005 11:18:11 +0000</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
            
    <description>    &lt;p&gt;La mode est à Ruby. Il faut programmer en Ruby pour être un vrai geek de la programmation. &lt;a href=&quot;http://www.rubyonrails.org/&quot; hreflang=&quot;en&quot;&gt;Ruby On Rails&lt;/a&gt; par çi, Ruby machin par là... C'est vrai que ça a l'air bien mais c'est à se demander si &lt;a href=&quot;http://www.php.net&quot; hreflang=&quot;fr&quot;&gt;PHP&lt;/a&gt; n'est pas un langage de &quot;hasbeen&quot;. Il semble en être autrement si on en croit cet article paru sur ZDnet et intitulé &lt;a href=&quot;http://www.zdnet.fr/actualites/informatique/0,39040745,39281538,00.htm?xtor=1&quot; hreflang=&quot;fr&quot;&gt;Oracle et IBM professionnalisent PHP&lt;/a&gt;. Le titre est quand même un peu mal choisi&amp;nbsp;: comme si on avait attendu IBM et Oracle pour que PHP soit un langage pro&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Du Ajax plein les yeux... XmlHttpRequest inside</title>
    <link>http://www.grafactory.net/blog/post/2005/07/02/94-du-xhtmlhttprequest</link>
    <guid isPermaLink="false">urn:md5:a6f33fe85c0a7fc8e7a6e43aee14bc47</guid>
    <pubDate>Sat, 02 Jul 2005 14:00:33 +0000</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
            
    <description>    &lt;p&gt;La rumeur court sur la planète Webdesign, il paraît que le futur des applications Web passera peut-être par &quot;Ajax&quot;. Mais que se cache t'il donc derrière ce nom de produit ménager ?! En tout cas mon avis est fait après quelques lectures non dénuées d'intérêts et quelques mises en applications des exemples donnés&amp;nbsp;: c'est sans doute vrai qu'une petite révolution est en marche&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://mail.google.com&quot; hreflang=&quot;fr&quot;&gt;Google Mail&lt;/a&gt; ou encore &lt;a href=&quot;http://www.google.com/webhp?complete=1&amp;amp;hl=en&quot; hreflang=&quot;en&quot;&gt;Google Suggest&lt;/a&gt;, par exemple, sont déjà basés sur ce système et le nombre de sites qui utilisent cette technologie ne fait qu'augmenter de jour en jour.&lt;/p&gt;


&lt;p&gt;C'est vrai qu'à la vue des possibilités offertes par ce système on peux imaginer beaucoup de mise en pratique. Avant d'en arriver là, &lt;a href=&quot;http://www.adaptivepath.com/publications/essays/archives/000385.php&quot; hreflang=&quot;en&quot;&gt;voici un article&lt;/a&gt; que &lt;a href=&quot;http://slam.gluglu.org/?2005/04/28/18-google-et-ses-secrets&quot; hreflang=&quot;fr&quot;&gt;Bruno&lt;/a&gt; m'avait signalé et qui résume très bien le mode de fonctionnement des applications Web utilisant cette technologie. Si vous n'êtes pas un parfait bilingue, je vous conseille quand même de vous attarder sur le schéma explicatif...&lt;/p&gt;


&lt;p&gt;Après avoir lu cet article, vous voudrez bien évidement connaître toutes les possibilités offertes par Ajax, et vous y essayer. C'est là qu'un petit tour dans la partie &quot;demo&quot; du &lt;a href=&quot;http://openrico.org&quot; hreflang=&quot;en&quot;&gt;site consacré à OpenRico&lt;/a&gt; - Une classe justement à cette fabuleuse technologie - vous permettra définitivement d'être convaincu que vos applications vont s'enrichir de cette nouveauté&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;De mon côté, après l'avoir très modestement éprouvée sur le moteur de recherche par référence du &lt;a href=&quot;http://www.grafactory.net/blog/2005/01/31/76-une-nouvelle-realisation-pour-la-crosse-technology&quot; hreflang=&quot;fr&quot;&gt;site de La Crosse Technology&lt;/a&gt;, j'ai récidivé sur &lt;a href=&quot;http://theatre-contemporain.net&quot; hreflang=&quot;fr&quot;&gt;Theatre-contemporain.net&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Je me suis déjà attaqué à &lt;a href=&quot;http://theatre-contemporain.net/editions/editeurs.html&quot; hreflang=&quot;fr&quot;&gt;la page des éditeurs&lt;/a&gt;. Pour cet exemple, j'ai utilisé la classe découverte sur ce &lt;a href=&quot;http://qwix.media-box.net/index.php/2005/05/09/63-EnvieDeXmlhttprequest#co&quot; hreflang=&quot;fr&quot;&gt;blog de qwix&lt;/a&gt; trouvé par hasard et qui semble être le fait d'un blogueur bisontin. Je vous livre donc tel quel, brut de décoffrage, le bout de source qui va bien&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Quelques extrait de la page qui contient la liste nominative :&lt;/em&gt;&lt;/p&gt;


&lt;pre&gt;// appel à la classe&lt;/pre&gt;


&lt;pre&gt;// fonction javascript
&amp;lt;script type=&quot;text/javascript&quot; language=&quot;javascript&quot;&amp;gt;
    function chargeFichier(id) {
        // Création de l'objet
        var XHR = new XHRConnection();
        // Zone a remplir
        XHR.setRefreshArea('zonedetail'+id);
        // Chargement de la page
        XHR.sendAndLoad(&quot;details-editeur.php?idedit=&quot;+id, &quot;GET&quot;);
        return true;
    }
&amp;lt;/script&amp;gt;&lt;/pre&gt;


&lt;pre&gt;&amp;lt;?php
// boucle depuis la base de données&lt;/pre&gt;


&lt;pre&gt;    while ($row = $result-&amp;gt;fetchRow()) {
        $country =&amp;amp; $db-&amp;gt;getOne(&quot;SELECT &quot;.$lang.&quot; FROM &quot;.$table_paysth.&quot; WHERE id='&quot;.$row['country'].&quot;' &quot;);
            echo &quot;&amp;lt;li&amp;gt;&amp;lt;a href=\&quot;javascript:;\&quot; onclick=\&quot;chargeFichier(&quot;.$row['id'].&quot;);\&quot;&amp;gt;&quot;.$row['organisation'].&quot;&amp;lt;/a&amp;gt; - &quot;.$row['city'].&quot; (&quot;.$country.&quot;)&quot;;
            echo &quot;&amp;lt;div id=\&quot;zonedetail&quot;.$row&lt;a href=&quot;http://www.grafactory.net/blog/post/2005/07/02/&amp;#039;id&amp;#039;&quot;&gt;'id'&lt;/a&gt;.&quot;\&quot;&amp;gt;&amp;lt;/div&amp;gt;&quot;;
            echo &quot;&amp;lt;/li&amp;gt;&quot;;
    }
... ect
?&amp;gt;&lt;/pre&gt;


&lt;p&gt;&lt;em&gt;Extrait de la page qui contient les détails :&lt;/em&gt;&lt;/p&gt;


&lt;pre&gt;&amp;lt;?php
 echo &quot;&amp;lt;div class=\&quot;maisonseditions\&quot;&amp;gt;&quot;;
       echo &quot;&amp;lt;div style=\&quot;font-size: 10px; text-align: right;\&quot;&amp;gt;&amp;lt;a href=\&quot;javascript:;\&quot; onclick=\&quot;document.getElementById('zonedetail&quot;.$row&lt;a href=&quot;http://www.grafactory.net/blog/post/2005/07/02/&amp;#039;id&amp;#039;&quot;&gt;'id'&lt;/a&gt;.&quot;').innerHTML = '';\&quot;&amp;gt;x
fermer&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&quot;;
... ici les infos détaillées ....
       echo &quot;&amp;lt;/div&amp;gt;&quot;;
?&amp;gt;&lt;/pre&gt;


&lt;p&gt;Pour être sur que tout le monde à compris&amp;nbsp;: la page &lt;em&gt;editeurs.html&lt;/em&gt; ne charge que la liste nominative. Ensuite chaque clic sur le nom d'un éditeur fait appel au données le concernant. Léger et efficace, seulement quelques octets de données sont appelés à chaque fois depuis le serveur.&lt;/p&gt;


&lt;p&gt;Sur ma lancée, j'ai aussi utilisé Ajax sur &lt;a href=&quot;http://theatre-contemporain.net/content/calendrier/calendrier.html&quot; hreflang=&quot;fr&quot;&gt;la page du calendrier&lt;/a&gt; afin d'éviter de charger les importantes et longues listes déroulantes du moteur de recherche avancé à chaque chargement de la page &quot;calendrier&quot; (couplé à un système de cache c'est bien rapide).&lt;/p&gt;


&lt;p&gt;Alors pas convaincu par l'intitulé de l'article cité plus haut&amp;nbsp;: &quot;Ajax: A New Approach to Web Applications&quot;&amp;nbsp;?&lt;/p&gt;</description>
    
    
    
          <comments>http://www.grafactory.net/blog/post/2005/07/02/94-du-xhtmlhttprequest#comment-form</comments>
      <wfw:comment>http://www.grafactory.net/blog/post/2005/07/02/94-du-xhtmlhttprequest#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grafactory.net/blog/feed/rss2/comments/90</wfw:commentRss>
      </item>
    
  <item>
    <title>Rotation des logs après l'analyse statistique</title>
    <link>http://www.grafactory.net/blog/post/2005/03/26/85-rotation-des-logs-apres-lanalyse-statistique</link>
    <guid isPermaLink="false">urn:md5:8802194dae7d22c39001a19727c2a99f</guid>
    <pubDate>Sat, 26 Mar 2005 10:20:24 +0000</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
            
    <description>    &lt;p&gt;Je me suis pas mal pris la tête sur ce problème. Il s'agit d'archiver les logs brut du serveur web &lt;strong&gt;&lt;a href=&quot;http://www.apachefrance.com/&quot; hreflang=&quot;fr&quot;&gt;Apache&lt;/a&gt;&lt;/strong&gt; compressés en gzip, toutes les nuits après la génération des statistiques par &lt;strong&gt;&lt;a href=&quot;http://awstats.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;AWStats&lt;/a&gt;&lt;/strong&gt;. Ceci pour une historisation des journaux qui laisse la possibilité de, par exemple, recalculer les statistiques annuelles avec autre choses que AWStats.&lt;/p&gt;


&lt;p&gt;La solution est en fait assez simple&amp;nbsp;: il suffit de préciser à &lt;strong&gt;&lt;a href=&quot;http://packages.debian.org/stable/admin/logrotate&quot; hreflang=&quot;fr&quot;&gt;logrotate&lt;/a&gt;&lt;/strong&gt; qu'il doit exécuter un script avant d'archiver. Voici donc la configuration de logrotate sur le serveur en question&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;     /home/web/*/logs*/access_log {
         notifempty
         daily
         rotate 31
         compress
         sharedscripts
         prerotate
             /home/cgi-stats/tools/awstats_updateall.pl now -awstatsprog=/home/cgi-stats/awstats.pl -configdir=/home/cgi-stats/
         endscript
         postrotate
             /usr/bin/killall -HUP httpd
         endscript
     }
     
     /home/web/*/logs*/error_log {
        notifempty
        weekly
        rotate 4
        compress
        postrotate
             /usr/bin/killall -HUP httpd
        endscript
     }&lt;/pre&gt;



&lt;p&gt;Pour comprendre l'utilisation des jokers (*), voici comment sont organisés les fichiers du serveur web&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;code&gt;/home/web/domaine.tld/logs/acces_log&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;/home/web/domain.tld/logs/error_log&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Enfin, le script &lt;code&gt;awstats_updateall.pl&lt;/code&gt; permet de lancer l'analyse statistique pour tous les domaines en même temps.&lt;/p&gt;


&lt;p&gt;Pour le détail sur logrotate, je vous renvois au &lt;a href=&quot;http://www.delafond.org/traducmanfr/man/man8/logrotate.8.html&quot; hreflang=&quot;fr&quot;&gt;man&lt;/a&gt; &lt;img src=&quot;/blog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; . Et on me souffle dans l'oreillette que &lt;a href=&quot;http://cronolog.org/&quot; hreflang=&quot;en&quot;&gt;cronolog&lt;/a&gt; est aussi une solution intéressante... A voir&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://www.grafactory.net/blog/post/2005/03/26/85-rotation-des-logs-apres-lanalyse-statistique#comment-form</comments>
      <wfw:comment>http://www.grafactory.net/blog/post/2005/03/26/85-rotation-des-logs-apres-lanalyse-statistique#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grafactory.net/blog/feed/rss2/comments/81</wfw:commentRss>
      </item>
    
  <item>
    <title>Une nouvelle réalisation pour La Crosse Technology</title>
    <link>http://www.grafactory.net/blog/post/2005/01/31/76-une-nouvelle-realisation-pour-la-crosse-technology</link>
    <guid isPermaLink="false">urn:md5:e9411bb0e4ef16536165dbe235cecba0</guid>
    <pubDate>Mon, 31 Jan 2005 15:47:41 +0000</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
            
    <description>    &lt;p&gt;Il faut bien que je me congratule un peu &lt;img src=&quot;/blog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; Mon premier site vraiment, réellement et entièrement en XHTML strict et en CSS. Bon il y a quelques parties en Flash mais c'est pas moi qui est insisté. Il manque aussi un bonne intégration des &quot;accesskey&quot; , j'ai encore quelques soucis pour des javascript qui ne sont pas &quot;compliant&quot; plus quelques autres détails. Enfin c'est déjà bien sous Lynx, lecteur écran, palm, Pocket PC (netscape 4, s'abstenir).&lt;/p&gt;


&lt;p&gt;C'est un site codé avec les fabuleuses classes PEAR et notamment la classe DB (je peux donc le passer sous Oracle ou Postgree en changeant 2 lignes). J'ai placé un petit gadget sympa&amp;nbsp;: moteur de recherche avec autocomplétion sur la page &quot;produits&quot; (trouvé sur &lt;a href=&quot;http://blog.bitflux.ch/archive/spotlight_like_livesearch_added.html&quot; hreflang=&quot;en&quot;&gt;ici&lt;/a&gt;. marche avec un backend xml). Le site est en 3 langues SVP merci &lt;img src=&quot;/blog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grafactory.net/blog/public/images/logo_LCT_popup.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;J'ai failli oublier de donner l'adresse&amp;nbsp;: &lt;a href=&quot;http://www.lacrossetechnology.fr&quot; hreflang=&quot;fr&quot;&gt;http://www.lacrossetechnology.fr&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Faille de sécurité dans SPIP</title>
    <link>http://www.grafactory.net/blog/post/2004/03/17/55-faille-de-securite-dans-spip</link>
    <guid isPermaLink="false">urn:md5:1db08069e176b4eb151cd4237d2fc623</guid>
    <pubDate>Wed, 17 Mar 2004 09:54:01 +0000</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
            
    <description>    &lt;p&gt;J'ai eu quelques sueurs froides quand j'ai recu l'info : une faille de sécurité dans mon CMS (Content Management System) préféré !!! Heureusement l'upgrade vers une version plus récente est d'une simplicité déconcertante. Ouf, c'est bien foutu. La nouvelle version n'écrase que les fichiers de SPIP et non pas ceux créés par le webdesigner ou les fichiers contenant les informations de configuration propre au site (une idée simple... si on y pense).&lt;/p&gt;


&lt;p&gt;Dans mon cas, le souci a plus été que j'avais bidouillé le code de SPIP sur le site du &lt;a href=&quot;http://www.snuasfp-fsu.org&quot;&gt;snuasfp-fsu&lt;/a&gt; pour répondre au besoin du client concernant notamment la création d'un espace membre. Il a donc fallu que j'upgrade aussi mes modifications &lt;img src=&quot;/blog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;En même pas 1 heure, tout était fini !&lt;/p&gt;


&lt;p&gt;Longue vie à &lt;a href=&quot;http://www.spip.net&quot;&gt;SPIP&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Nouveau site codé avec les standards</title>
    <link>http://www.grafactory.net/blog/post/2003/11/28/18-nouveau-site-code-avec-les-standards</link>
    <guid isPermaLink="false">urn:md5:4d629100a18e476d9353c9c972e58062</guid>
    <pubDate>Fri, 28 Nov 2003 18:08:31 +0000</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
            
    <description>    &lt;p&gt;J'ai enfin codé un site entièrement ou presque en Xhtml 1.0 et CSS2 ! Ce ne fut pas une mince affaire et ré-apprendre à faire un site sans utiliser les tables a été vraiment difficle pour moi. J'ai essayé de respecter sur la plupart des pages publiques de ce site tout les fameux standards, y compris ceux de l'accessibilité. Il reste encore pas mal de boulot tout de même pour arriver au top du top. Je dois, par exemple, créer des feuilles de style alternative pour l'impression et les vieilles versions de Netscape (je hais Netscape 4 &lt;img src=&quot;/blog/themes/default/smilies/sad.png&quot; alt=&quot;:(&quot; class=&quot;smiley&quot; /&gt; ), réorganiser la disposition des informations quand il n'y a pas de feuille de style... Bref encore des heures à passer pour respecter ces foutus standard qui ont pourtant un intérêt certain et ne cesserons d'en avoir plus dans les années à venir. La portabilité du site sur toute plateforme et tout navigateur est un des argument qui me plait parmis tant d'autres (Plus d'infos sur les standards sur &lt;a href=&quot;http://www.openweb.eu.org&quot;&gt;openweb.eu.org&lt;/a&gt;).&lt;/p&gt;


&lt;p&gt;Le site en question s'appelle &lt;a href=&quot;http://www.theatre-traduction.net&quot;&gt;Théâtre et Traduction&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Suite des cours avec Bruno</title>
    <link>http://www.grafactory.net/blog/post/2003/11/26/15-suite-des-cours-avec-bruno</link>
    <guid isPermaLink="false">urn:md5:d1a6ffcce576c5f6d166311b4e611841</guid>
    <pubDate>Wed, 26 Nov 2003 08:33:35 +0000</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
            
    <description>    &lt;p&gt;Les cours avec Bruno se poursuivent dans la bonne humeur habituelle. Voici un petit résumé de la session d'hier soir qui n'a durée &quot;que&quot; jusqu'à minuit... 2 heures du matin pour Bruno qui était motivé &lt;img src=&quot;/blog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Bruno avec donc réussi à installer SPIP sur sa machine (&lt;a href=&quot;http://www.grafactory.net/blog/index.php/2003/11/23/13-TonSiteCestUnSpipOuUnDotclear&quot;&gt;voir ce blog&lt;/a&gt;). Après un tour d'horizon du fonctionnement de SPIP : la gestion des squelettes, le cache, les feuilles de styles... Nous avons procédé à un petit exercice qui ne requiert que quelques minutes : l'installation de DotClear ! Bruno à ensuite commencé la mise en forme de son site et la création des liens hypertextes de DotClear vers les multitudes de pages de son serveur...&lt;/p&gt;

&lt;p&gt;Une fois le DotClear installé, il manquait la galerie pour les photos de la famille &lt;img src=&quot;/blog/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Nous avons donc commencé l'installation de Gallery (&lt;a href=&quot;http://www.grafactory.net/blog/index.php/2003/11/22/12-UnExcellentScriptDeGestionDeGalerieWeb&quot;&gt;voir ce blog&lt;/a&gt;). Et là, le Nobru repris la main sur sa RedHat 7.3 pour compiler les librairies nécessaires au bon fonctionnement de ce script (ça vaudra une explication détaillée de l'installation de ce programme dans les semaines à venir).&lt;/p&gt;

&lt;p&gt;Voilà donc ce qu'il y a maintenant sur &lt;a href=&quot;http://www.slam.dyndns.org&quot;&gt;slam.dyndns.org&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Une vieille page d'accueil&lt;/li&gt;
&lt;li&gt;Un SPIP avec squelettes en CSS2 (enfin presque)&lt;/li&gt;
&lt;li&gt;Un PHPMyadmin (c'est mieux que en mode console)&lt;/li&gt;
&lt;li&gt;un Eskuel (au moins y a le choix du gestionnaire de BDD)&lt;/li&gt;
&lt;li&gt;Un DotClear (sans contenu pour le moment)&lt;/li&gt;
&lt;li&gt;Une galerie de photos (Gallery)&lt;/li&gt;
&lt;li&gt;Des pages de statistiques avec Webalizer (faudra mettre Awstats)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ça commence à faire du monde ! La suite dans le prochain épisode.&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>