<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.gatecrash.be/index.php?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/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Gatecrash.be</title>
  <link>http://www.gatecrash.be/index.php?</link>
  <atom:link href="http://www.gatecrash.be/index.php?feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Un site fait de pitch et de poutch</description>
  <language>fr</language>
  <pubDate>Tue, 28 Dec 2010 11:10:11 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Histoire de majuscules</title>
    <link>http://www.gatecrash.be/index.php?post/2009/12/22/Histoire-de-majuscules</link>
    <guid isPermaLink="false">urn:md5:3cb7d3cb70d60564eea564a975e602f9</guid>
    <pubDate>Tue, 22 Dec 2009 09:39:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>VBS</category>
        <category>Majuscule</category><category>Ucase</category><category>VBS</category>    
    <description>&lt;p&gt;Il y a déjà quelques années j'ai écrit une fonction pour capitaliser un string  (que les esprits mal tournés ne lisent pas plus loin). La difficulté de la chose était qu'il fallait mettre une majuscule à chaque mot séparé par un caractère bien précis : Espace, single quote, trait d'union....&lt;/p&gt;
&lt;p&gt;Et voilà que je viens de me rendre compte que ma fonction était buggée. Je l'ai donc réécrite.&lt;/p&gt;    &lt;p&gt;&lt;code&gt;Function Capitalize(str)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;On Error Resume next&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim ArrayStr, i, j, str_splitted&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;str = str&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;str = UCase (Left(str,1)) &amp;amp; LCase (right(str,Len(str)-1))&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim splitters (3)&amp;nbsp;&amp;nbsp; &amp;nbsp;'things to be splitted on&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;splitters (0) = &quot; &quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;splitters (1) = &quot;-&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; splitters (2) = &quot;'&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;splitters (3) = &quot;.&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;For i=0 to UBound(splitters) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ArrayStr = Split(str, splitters (i), -1, 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;For j=0 to UBound(ArrayStr)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str_splitted=str_splitted&amp;amp;UCase (Left(ArrayStr(j),1)) &amp;amp; right(ArrayStr(j),Len(ArrayStr(j))-1)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;If j&amp;lt;&amp;gt;UBound(ArrayStr) Then&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str_splitted=str_splitted&amp;amp;splitters (i)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;End If&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Next&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str=str_splitted&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str_splitted=null&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Next&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Capitalize=str&lt;br /&gt;End Function&lt;/code&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Ne nous fions pas aux apparences</title>
    <link>http://www.gatecrash.be/index.php?post/2009/11/05/Ne-nous-fions-pas-aux-apparences</link>
    <guid isPermaLink="false">urn:md5:638955da75423d6f193eeac9c83f1548</guid>
    <pubDate>Thu, 05 Nov 2009 10:31:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>Linux</category>
            
    <description>&lt;p&gt;Je dois avouer ne plus mettre à jour ce blog depuis un petit temps. Honte à moi. Toutefois je ne le perds pas de vue.&lt;/p&gt;
&lt;p&gt;Récemment j'ai du faire des tests afin de connecter une DB MySQL à partir de VB express 2008. Le but était de retourner un recordset dans un contrôle DataGridView. Horreur, la query prenait juque 50 secondes pour une bonne centaine de records.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Gniiiiii !&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;Le serveur MySQL sous ubuntu semblait tourner bien, j'avais bien eu un problème réseau avec, mais après avoir forcé le full duplex dans /etc/network/interfaces tout était OK. Du moins je le pensais.&lt;/p&gt;
&lt;p&gt;Concernant mon problème de performance sur cette query, des plus connes qui soit, je me suis posé pas mal de questions sur le &lt;a href=&quot;http://dev.mysql.com/downloads/connector/net/6.1.html&quot;&gt;connecteur ADO .net&lt;/a&gt; fourni par MySQL. Sans succès. Après avoir écumé des forums j'étais toujours bredouille.&lt;/p&gt;
&lt;p&gt;Seul un autre problème d'upload de fichier dans une page web hébergée sur le même serveur m'a incité à me repencher sur mon full duplex. Au delà des apparences, l'installation de &lt;em&gt;ethtool&lt;/em&gt; m'a clairement montré que ma config était incorrecte.&lt;/p&gt;
&lt;pre&gt;&lt;p&gt;./etc/network$ sudo ethtool eth0&lt;br /&gt;Settings for eth0:&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;       Supported ports: &lt;a href=&quot;http://www.gatecrash.be/index.php?post/2009/11/05/TP&quot; title=&quot;TP&quot;&gt;TP&lt;/a&gt;&lt;br /&gt;       Supported link modes:   10baseT/Half 10baseT/Full&lt;br /&gt;                               100baseT/Half 100baseT/Full&lt;br /&gt;                               1000baseT/Half 1000baseT/Full&lt;br /&gt;       Supports auto-negotiation: Yes&lt;br /&gt;       Advertised link modes:  Not reported&lt;br /&gt;       Advertised auto-negotiation: No&lt;br /&gt;       Speed: 10Mb/s&lt;br /&gt;       Duplex: &lt;strong&gt;Half&lt;/strong&gt;&lt;br /&gt;       Port: Twisted Pair&lt;br /&gt;       PHYAD: 1&lt;br /&gt;       Transceiver: internal&lt;br /&gt;       Auto-negotiation: off&lt;br /&gt;       Supports Wake-on: g&lt;br /&gt;       Wake-on: g&lt;br /&gt;       Current message level: 0x000000ff (255)&lt;br /&gt;       Link detected: yes&lt;/pre&gt;
&lt;p&gt;Damn cette carte est en half duplex&lt;/p&gt;
&lt;pre&gt;&lt;p&gt;./sudo ethtool -s eth0 duplex full&lt;br /&gt;./sudo ethtool eth0&lt;br /&gt;Settings for eth0:&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;       Supported ports: &lt;a href=&quot;http://www.gatecrash.be/index.php?post/2009/11/05/TP&quot; title=&quot;TP&quot;&gt;TP&lt;/a&gt;&lt;br /&gt;       Supported link modes:   10baseT/Half 10baseT/Full&lt;br /&gt;                               100baseT/Half 100baseT/Full&lt;br /&gt;                               1000baseT/Half 1000baseT/Full&lt;br /&gt;       Supports auto-negotiation: Yes&lt;br /&gt;       Advertised link modes:  Not reported&lt;br /&gt;       Advertised auto-negotiation: No&lt;br /&gt;       Speed: 10Mb/s&lt;br /&gt;       Duplex: &lt;strong&gt;Full&lt;/strong&gt;&lt;br /&gt;       Port: Twisted Pair&lt;br /&gt;       PHYAD: 1&lt;br /&gt;       Transceiver: internal&lt;br /&gt;       Auto-negotiation: off&lt;br /&gt;       Supports Wake-on: g&lt;br /&gt;       Wake-on: g&lt;br /&gt;       Current message level: 0x000000ff (255)&lt;br /&gt;       Link detected: yes&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;Voilà qui est mieux, un petit restart du réseau pour la forme :&lt;/p&gt;
&lt;p&gt;@@
sudo /etc/init.d/networking restart@@&lt;/p&gt;
&lt;p&gt;Et miracle, mes uploads d'images se font à une vitesse correcte et ma query se fait quasi immédiatement.&lt;/p&gt;
&lt;p&gt;Wouhouuu !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Le BLOB</title>
    <link>http://www.gatecrash.be/index.php?post/2009/03/11/Le-BLOB</link>
    <guid isPermaLink="false">urn:md5:8afd740e3b36885697eafd4330176e3b</guid>
    <pubDate>Wed, 11 Mar 2009 11:22:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>MySQL</category>
        <category>MySQL</category><category>PHP</category>    
    <description>&lt;p&gt;A part le film du même nom (qui fête ses 20 ans cette année), le BLOB dont je parle est certainement aussi effrayant :&lt;strong&gt; Binary Large OBject&lt;/strong&gt;. Les champs de type BLOB permettent de contenir un fichier au format binaire... Une image par exemple.&lt;/p&gt;
&lt;p&gt;Mais comment çà marche ?&lt;/p&gt;    &lt;p&gt;Nous allons pour le test employer PHP, qui présente l'avantage de travailler aisément avec MySQL et&amp;nbsp; de pouvoir afficher facilement des images. Je soupçonne que tout langage digne de ce nom devrait permettre d'arriver au même résultat.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;use test;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CREATE TABLE&amp;nbsp; `images` (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; `id` int(11) NOT NULL auto_increment,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; `image` blob NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; PRIMARY KEY&amp;nbsp; (`id`)&lt;br /&gt;) ENGINE=MyISAM ;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Jusque là rien de bien exceptionnel. Nous de vons maintenant encore faire deux choses&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Insérer une image&lt;/li&gt;
&lt;li&gt;Afficher cette image&lt;/li&gt;
&lt;/ol&gt;
Créons un fichier &lt;em&gt;insert_image.php&lt;/em&gt;, ce fichier aura pour but d'insérer l'image dans le DB :&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $dbhost = 'localhost';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $dbuser = 'root';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $dbpass = '';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $dbname = 'test';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_select_db($dbname);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $image = chunk_split(base64_encode(file_get_contents(&quot;image.jpg&quot;)));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query = &quot;INSERT INTO images (image) VALUES('$image')&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query($query) or die(mysql_error());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;Image id is &quot;.mysql_insert_id();&lt;br /&gt;?&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;La première partie nous permet de nous connecter à le DB, le test à ici été fait avec &lt;a href=&quot;http://www.apachefriends.org/en/xampp.html&quot;&gt;XAMPP&lt;/a&gt;. La deuxième partie est plus intéressante. Le fichier que nous allons encoder s'appelle image.jpg et se trouve dans le répertoire courant du fichier php. Il serait mieux de faire un joli petit form mais bon.... on est pas là pour çà.&lt;br /&gt;&lt;br /&gt;Après traitement, la variable $image prend pour valeur (avec mon image de test) :&lt;br /&gt;&lt;br style=&quot;font-style: italic;&quot;&gt;&lt;em&gt;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 Z2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS 09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYH CAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1Lw FWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5 eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj 5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A8fjnWNSGiDn3rS0oRX96sBi2AgncvXilGnxy ckufrWpo1usV7GqE4wetYysaJs2dOshYhwrs27uavgnHNJtx2pwHBrIY4NgUueM9qQLyB2pSBjFA gLZFZuuH/iVTfh/MVpAHFZuu/LpMx+n86aGhdDJ+yN/umsO+/wCP2X6/0qOHVr2KHyrcKgPVsZOK rM8sjF3fLHqSa5o02pNs7ufsWenGTn6Vd0gE6kpI/hNVVOcHHWr2kL/p5/3TXa3oecjdPanYocrH GXdgoHJJNYs/irToZdiM0uOpUcVCTexVzcXkCl6ZJrIsvEmm3bhBL5b+j8VrD5hkYIPSk00G4uTm s/Xv+QVIPcD9a1AuRWVrzp/ZzoDk7hnHalexSWpX0dF8tuB9z0okVBIflT8qbpc8cKN5mVyuB8p5 pZGVpCQDg158viPR6GSAUVeAQKu6ICdU5BC+Ux/UVS5EKZ5ODn860dAA+3SOT92M/wAxXq90zy+z Rj+IdWe9uJLSJ2EaHaFH8R7k1jWGlTXd75Cqa1LjTHk1MX1uwNvNMQvt9fyrqtMtrezuRM+8EDnj NDnyqyNadFyfvbHPTeD2gQOHO/G7FXvD+qyQSvp97keWMo3X8K628eE2pfzF5+7x1Fcets0+rPJG vOMD+tY+0k0+Y3q0YK3Kat1qzOCkQKj9TVfUFLaYG2kBmXr9amurAW9oWJzKzKM9hzS6mSdIgJ6l o6zUW3eRN0laJAlrmMHzGBC57VVbzFYjzpP0rVjUi2Y+iGsyQHzDxXMmdVio/Ea9sL/7NVWaa6U7 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 mxc56jcKrxIPcqP6mqonEBgCySu7ZX//2Q==&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Et encore c'est une petite image. Et çà, on peut le mettre dans un champ BLOB.&lt;br /&gt;&lt;br /&gt;Maintenant, il faut afficher l'image, dans un fichier index.php mettons le code suivant&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img src=&quot;http://www.gatecrash.be/index.php?post/2009/03/11/show.php&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Tout le boulot sera fait par le fichier show. php :&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $dbhost = 'localhost';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $dbuser = 'root';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $dbpass = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $dbname = 'test';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_select_db($dbname);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; header('Content-type: image/jpeg');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query = &quot;SELECT image from images where id=1&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $rs = mysql_fetch_array(mysql_query($query));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo base64_decode($rs[&quot;image&quot;]);&lt;br /&gt;?&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ne revenons pas sur la première partie. Dans la seconde base64_decode est le pendant inverse de base64_encode, mais c'est la ligne&amp;nbsp; header('Content-type: image/jpeg'); qui est importante. C'est elle qui va dire au browser de traiter le string retourné en tant qu'image et non que texte brut.&lt;br /&gt;&lt;br /&gt;Il y a moyen d'améliorer tout ceci, mais je souhaitais présenter le minimum.&lt;br /&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>A quoi çà sert que Ducros il se décarcasse</title>
    <link>http://www.gatecrash.be/index.php?post/2009/03/01/A-quoi-%C3%A7%C3%A0-sert-que-Ducros-il-se-d%C3%A9carcasse</link>
    <guid isPermaLink="false">urn:md5:11aaaa6fcfce1320c1e1dd2dc0e3aca3</guid>
    <pubDate>Sun, 01 Mar 2009 22:09:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>Divers et (a)variés</category>
        <category>Open source</category>    
    <description>    &lt;p&gt;Cherchant une aternative gratuite à Publisher (de chez M$), je suis tombé sur le site &lt;a href=&quot;http://www.osalt.com/&quot;&gt;www.osalt.com&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Ce site référence les options gratuites équivalentes à des softwares commerciaux parfois bien connus et bien chers. En ce qui me concerne j'y ai trouvé Scribus et je pense bien retourner y faire un tour plus en profondeur.&lt;/p&gt;


&lt;p&gt;A conseiller autour de vous.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Tentons d'y voir un peu plus clair</title>
    <link>http://www.gatecrash.be/index.php?post/2009/02/10/Tentons-d-y-voir-un-peu-plus-clair</link>
    <guid isPermaLink="false">urn:md5:f905923335625e6823e56f318da65490</guid>
    <pubDate>Tue, 10 Feb 2009 09:49:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>VBS</category>
        <category>Event log</category><category>VBS</category>    
    <description>Devant filtrer régulièrement les events de type erreur dans mes event logs sous windows. Il me fallait facilement gérer les events de j-1 à la date courante. Le dump des events est facile avec WMI, mais la propriété timewritten de l'event est dans un format un peu ''olé olé''.&lt;br /&gt;&lt;br /&gt;SOS vbs !&lt;br /&gt;    &lt;code&gt;Set dtmStartDate = CreateObject(&quot;WbemScripting.SWbemDateTime&quot;)&lt;br /&gt;dtmStartDate.SetVarDate Date() - 1, CONVERT_TO_LOCAL_TIME&lt;br /&gt;&lt;br /&gt;strComputer = &quot;computername&quot;&lt;br /&gt;Set objWMIService = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\&quot; &amp;amp; strComputer &amp;amp; &quot;\root\cimv2&quot;)&lt;br /&gt;Set colLoggedEvents = objWMIService.ExecQuery (&quot;SELECT * FROM Win32_NTLogEvent WHERE (Logfile = 'System' or Logfile = 'Application') AND Type = 'Error' AND TimeWritten &amp;gt;= '&quot;&amp;amp;dtmStartDate&amp;amp;&quot;' &quot;)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;For Each objEvent in colLoggedEvents&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.Echo &quot;Message: &quot; &amp;amp; objEvent.Message&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.Echo &quot;Time Written: &quot; &amp;amp; objEvent.TimeWritten&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.Echo &quot;Event Code: &quot; &amp;amp; objEvent.EventCode&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.Echo &quot;Message: &quot; &amp;amp; objEvent.Message&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.Echo &quot;Time Written: &quot; &amp;amp; objEvent.TimeWritten&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.Echo &quot;Event Type: &quot; &amp;amp; objEvent.Type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.Echo &quot;*****************************&quot;&lt;br /&gt;Next&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ce script dump tous les events de type erreur dans les logs &lt;em&gt;application &lt;/em&gt;et &lt;em&gt;system &lt;/em&gt;pour la machine &lt;em&gt;computername&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Pour les curieux plus d'infos par &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa393687%28VS.85%29.aspx&quot;&gt;ici&lt;/a&gt;.&lt;br /&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Mais pourquoi tant de haine !!!!</title>
    <link>http://www.gatecrash.be/index.php?post/2009/02/03/Mais-pourquoi-tant-de-haine-%21%21%21%21</link>
    <guid isPermaLink="false">urn:md5:2c48744d1587c38138954d923ad08961</guid>
    <pubDate>Tue, 03 Feb 2009 16:17:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>Linux</category>
        <category>Linux</category><category>Skype</category>    
    <description>&lt;p&gt;Cela fait un petit temps que j'avais installé Skype pour Linux et si celà fonctionnait en tant que tel, pas moyen de faire fonctionner ce #@§§§ de micro à un volume décent. De plus ne parlons pas de cette webcam : une Microsoft VX-1000 de son petit nom. Assez bizarrement Microsoft ne fourni pas de driver Linux pour cet engin. Scandale !&lt;/p&gt;


&lt;p&gt;Partons à l'assaut du web pour trouver une solution à ce merdier.&lt;/p&gt;    &lt;p&gt;Commençons par les choses simples : le son. Je suis sous Gnome et l'on peut lancer le &lt;em&gt;volume control center&lt;/em&gt; pour y voir plus clair. Dans un prompt tapons :&lt;/p&gt;


&lt;p&gt;&lt;code&gt;gnome-volume-control&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.gatecrash.be/public/Screenshot-Volume_Control__Intel_ICH6__Alsa_mixer_.png&quot;&gt;&lt;img src=&quot;http://www.gatecrash.be/public/Screenshot-Volume_Control__Intel_ICH6__Alsa_mixer_.png&quot; alt=&quot;Screenshot-Volume_Control__Intel_ICH6__Alsa_mixer_.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Screenshot-Volume_Control__Intel_ICH6__Alsa_mixer_.png, Feb 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Là il faut, dans les préférences sélectionner l'option &lt;em&gt;+20db&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.gatecrash.be/public/Screenshot-Volume_Control_Preferences.png&quot; alt=&quot;Screenshot-Volume_Control_Preferences.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Screenshot-Volume_Control_Preferences.png, Feb 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Et là apparait comme par magie un onglet switches qui permet d'activer définitivement le mic boost. Champagne, ça fonctionne.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.gatecrash.be/public/.Screenshot-Volume_Control__Intel_ICH6__Alsa_mixer_-1_m.jpg&quot; alt=&quot;Screenshot-Volume_Control__Intel_ICH6__Alsa_mixer_-1.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Screenshot-Volume_Control__Intel_ICH6__Alsa_mixer_-1.png, Feb 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Le son a été la partie facile, mais pour la webcam ce fut moins évident. Après moultes lectures, je me suis rendu compte que tous étaient d'accord : Skype et la VX-1000 marchaient très bien sous Ubuntu 8.04 et que sous 8.10, quedalle ! &lt;em&gt;Quid&lt;/em&gt; ?&lt;/p&gt;


&lt;p&gt;Après avoir installé &lt;a href=&quot;https://help.ubuntu.com/community/EasyCam&quot;&gt;Easycam2&lt;/a&gt;, miracle, la caméra est reconnue directement et Easycam2 me dit que les drivers se sont installés correctement. Petit test dans Cheese.... Je vois une superbe mire est pas d'image. Grrrr !&lt;/p&gt;


&lt;p&gt;Retour sur internet et, rebondissant de lien en lien, il semble bien que le non fonctionnement de cette webcam est bel et bien lié à Ubuntu 8.10. Damned. Apparement il faut installer un package de drivers bien précis que j'ai trouvé &lt;a href=&quot;http://linuxtv.org/hg/~jfrancois/gspca/&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Suivons les intructions :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prendre le .bz2, dans le menu en haut&lt;/li&gt;
&lt;li&gt;L'extraire.&lt;/li&gt;
&lt;li&gt;En ligne de commande aller dans le dossier.&lt;/li&gt;
&lt;li&gt;Puis : &lt;code&gt;sudo make&lt;/code&gt; (allez boire un cafè maintenant)&lt;/li&gt;
&lt;li&gt;Et : &lt;code&gt;sudo make install&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Redémarrer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bon on devrait être bon là. direction Cheese et .... YES, çà marche..... Vérifions sous Skype, options, video.... Mmmm la webcam est reconnue et ... ben non nada, quedalle, j'ai un belle image verte qui scintille. Enfer et damnation.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.gatecrash.be/public/skype_video_broken.png&quot; alt=&quot;skype_video_broken.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;skype_video_broken.png, Feb 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Retour sur la grande toile. Et, oh surprise, il se trouve que la commande suivante permet de faire fonctionner skype correctement avec cette webcam.&lt;/p&gt;


&lt;p&gt;&lt;code&gt;LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Voilà qui ne s'invente pas. Bon c'est clair que c'est pas top comfort, mais il y toujours moyen de &lt;a href=&quot;http://ubuntuforums.org/showpost.php?p=6063348&amp;amp;postcount=13&quot;&gt;créer un shell script&lt;/a&gt; appelé via un shortcut.&lt;/p&gt;


&lt;p&gt;Sur ce je vais un peu me reposer, cette affaire m'a pris quasi un journée complète.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Le samba, c'est sympa</title>
    <link>http://www.gatecrash.be/index.php?post/2009/01/21/Le-samba%2C-c-est-sympa</link>
    <guid isPermaLink="false">urn:md5:40ab264d632172f79deac4a0b341d27d</guid>
    <pubDate>Wed, 21 Jan 2009 13:10:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>Linux</category>
        <category>Linux</category><category>Samba</category>    
    <description>&lt;p&gt;Pour nous, simple users de windows, des choses triviales peuvent parfois devenir pénibles.&lt;/p&gt;
&lt;p&gt;Aujourd'hui, le share.&lt;/p&gt;    &lt;p&gt;Les shares sont gérés sous Linux par SMB ( Server Message Block, aka samba ). J'aurais bien voulu partager un directory. Afin d'arriver à mes fins j'ai du rajouter l'entrée suivante dans le fichier smb.conf :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[sharename]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comment = brass&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inherit acls = Yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path = /srv/www/htdocs/sharefolder&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read only = No&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; browseable = Yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write list = username&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Là nous avons notre share, mais il nous faut encore créer le user qui aura accès.... ici &lt;em&gt;username&lt;/em&gt;. Il existe plusieurs façon de gérer celà, LDAP, kerberos et compagnie.... laissons par simplicité SAMBA gérer le truc.&lt;/p&gt;
&lt;p&gt;Afin de voir la liste des users samba nous pouvons employer la commande :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;computername:/etc/samba # sudo pdbedit -L&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Normallement vous ne devriez pas voir grand chose&lt;/p&gt;
&lt;p&gt;Créons notre user et vérifions, vous devriez avoir quelque chose qui ressemble à ceci :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;computername:/etc/samba # sudo smbpasswd -a username&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; New SMB password:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Retype new SMB password:&lt;br /&gt;computername:/etc/samba # sudo pdbedit -L&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; username:1000:username&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On y est presque. Il ne suffit plus qu'a redémarrer samba pour que tout soit pris en compte.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;computername:/etc/init.d # ./smb restart&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;Shutting down Samba SMB daemon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;Starting Samba SMB daemon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;br /&gt;computername:/etc/init.d # ./nmb restart&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;Shutting down Samba NMB daemon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;Starting Samba NMB daemon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Là on y est... le share est accessible via \\computername\sharename. Vous serez prompté pour le username et le password.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Linux c'est bien, mais il faut se lever tôt</title>
    <link>http://www.gatecrash.be/index.php?post/2009/01/16/Linux-c-est-bien%2C-mais-il-faut-se-lever-t%C3%B4t</link>
    <guid isPermaLink="false">urn:md5:8e9545f8cf6d38f3a7bce6b3eb64fbd1</guid>
    <pubDate>Fri, 16 Jan 2009 16:28:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>Linux</category>
        <category>Firewall</category><category>MySQL</category><category>openSuse</category>    
    <description>&lt;p&gt;Pour des &lt;a href=&quot;http://www.gatecrash.be/index.php?post/2009/01/06/Event-procedure-dans-MySQL&quot;&gt;raisons précédement expliquées&lt;/a&gt; j'ai du installer openSuse 11.... MySQL était &lt;em&gt;up and running&lt;/em&gt; et tout se présentait bien en local, mais pas moyen de me connecter à ce serveur via le réseau.&lt;/p&gt;


&lt;p&gt;WTF !!!&lt;/p&gt;    &lt;p&gt;Une précédente expérience du genre m'avait fait découvrir le paramètre &lt;em&gt;bind-address&lt;/em&gt; dans le fichier my.cnf. L'accès est limité au localhost sous Ubuntu, mais ici ce n'était pas le cas... Il était plus ou moins sur que c'était un problème de firewall.&lt;/p&gt;


&lt;p&gt;OpenSuse 11 arrive livré avec SuSefirewall2. Je l'ai trouvé avec tous les ports fermés sauf le 80 (http). Afin de corriger cela, il faut éditer /etc/sysconfig/SuSEfirewall2 et y complèter l'entrée suivante tel que désiré&lt;/p&gt;


&lt;p&gt;&lt;code&gt;FW_SERVICES_EXT_TCP=&quot;80, 3306&quot;&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Il suffit après de redémarrer le firewall et le tour est joué&lt;/p&gt;


&lt;p&gt;&lt;code&gt;cd /sbin&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo ./SuSEfirewall2 stop&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo ./SuSEfirewall2 start&lt;/code&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Comme c'est joli !</title>
    <link>http://www.gatecrash.be/index.php?post/2009/01/13/Open-chart-file</link>
    <guid isPermaLink="false">urn:md5:214961bc9fb3848f53f6fce67df89a9b</guid>
    <pubDate>Tue, 13 Jan 2009 09:14:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>Jquery</category>
        <category>Open chart file</category>    
    <description>Mon beau frère m'a parlé l'autre jour d'&lt;a href=&quot;http://teethgrinder.co.uk/open-flash-chart-2/&quot;&gt;Open Flash chart&lt;/a&gt;. Ce dernier (pas mon beau frère, le programme) permet de faire de jolis graphiques en flash. Je n'en ai absolument pas besoin à l'heure actuelle, mais une certaine curiosité m'a fait me pencher dessus.&lt;br /&gt;    &lt;script type=&quot;text/javascript&quot;&gt;
swfobject.embedSWF(
&quot;http://www.gatecrash.be/themes/wjsdarksimple/open-flash-chart.swf&quot;, &quot;my_chart&quot;, &quot;550&quot;, &quot;200&quot;,
&quot;9.0.0&quot;, &quot;expressInstall.swf&quot;,
{&quot;data-file&quot;:&quot;http://www.gatecrash.be/themes/wjsdarksimple/data.php&quot;}
);
&lt;/script&gt;
&lt;p&gt;A vrai dire il n'y a pas grand chose à raconter. Ceux qui ont quelques notions d'HTML / PHP / JS n'auront pas trop de difficultés à suivre le tutorial afin de faire assez ite un joli graphique tel que plus bas. En fait le plus difficile ici a été d'intégrer l'ensemble dans dotclear.&lt;/p&gt;
&lt;p&gt;L'exercice était intéressant et je suis sur que dans le futur je ressortirai çà de mes cartons.&lt;/p&gt;
&lt;center&gt;&lt;div id=&quot;my_chart&quot;&gt;My chart&lt;/div&gt;&lt;/center&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Event procedure dans MySQL</title>
    <link>http://www.gatecrash.be/index.php?post/2009/01/06/Event-procedure-dans-MySQL</link>
    <guid isPermaLink="false">urn:md5:f2a11b7e9b97a5568088df5d033d080d</guid>
    <pubDate>Tue, 06 Jan 2009 15:34:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>MySQL</category>
        <category>Event procedure</category><category>MySQL</category>    
    <description>&lt;p&gt;Un projet futur sur lequel je commence à me pencher demandera l'execution de &lt;em&gt;stored procedures&lt;/em&gt; à intervalle régulier et court sur une base de donnée. Celà fait longtemps que MySQL à ma préférence car il est devenu professionnel et surtout gratuit.&lt;/p&gt;
&lt;p&gt;Je vais donc me lancer dans des tests à blanc pour voir si MySQL répond à mes besoins&lt;/p&gt;    &lt;p&gt;Après une rapide recherche, je me rend compte que l'event scheduler est disponible dès le build 5.1.xx de MySQL.... Génial j'ai un 5.0.67 installé. Un upgrade s'impose.&lt;/p&gt;
&lt;p&gt;Click clack, c'est fait. (Je passe les détails, mais l'avantage d'être dans un environnement de test est de ne pas avoir à se soucier des conséquences de ses actions)&lt;/p&gt;
&lt;p&gt;Maintenant que je suis à jour, il faut activer l'event scheduler qui ne l'est pas par défaut. En tant que root dans un prompt mysql, il faut taper :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SET GLOBAL event_scheduler = ON;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Celà marche très bien via phpmyadmin, pour info. Afin de s'en assurer un petit check s'impose.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mysql&amp;gt;&amp;nbsp; show processlist;&lt;br /&gt;+----+-----------------+-----------+------+---------+------+------------------------+------------------+&lt;br /&gt;| Id | User&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Host&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | db&amp;nbsp;&amp;nbsp; | Command | Time | State&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;+----+-----------------+-----------+------+---------+------+------------------------+------------------+&lt;br /&gt;|&amp;nbsp; 9 | root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | localhost | NULL | Query&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 | NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | show processlist | &lt;br /&gt;| 14 | event_scheduler | localhost | NULL | Daemon&amp;nbsp; | 1761 | Waiting on empty queue | NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | &lt;br /&gt;+----+-----------------+-----------+------+---------+------+------------------------+------------------+&lt;br /&gt;2 rows in set (0.00 sec)&lt;/code&gt;&lt;/p&gt;
&lt;p class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;Tout semble OK, passons à du concret. tentons quelque chose de simple : insérez un record à t0 dans une table.&lt;/p&gt;
&lt;p class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;code&gt;mysql&amp;gt; create event
schedule_1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; on schedule
at '2009-01-06 18:00:00'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; insert into
test.scheduled (field1) values (now());&lt;br /&gt;Query OK, 0 rows
affected (0.03 sec)&lt;/code&gt;&lt;/p&gt;
&lt;br /&gt;Nous pouvons vérifier la création de l'event dans la table &quot;events&quot; du schéma.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;mysql&amp;gt; select * from information_schema.events;&lt;br /&gt;&lt;/code&gt; &lt;br /&gt;Je vous invite à le faire, mais je vous passe l'output ici. Pour info, l'event unique disparaît une fois exécuté....&lt;br /&gt;&lt;br /&gt;Petit check :&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&amp;gt; select * from test.scheduled;&lt;br /&gt;+---------------------+&lt;br /&gt;| Field1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;+---------------------+&lt;br /&gt;| 2009-01-06 18:00:00 | &lt;br /&gt;+---------------------+&lt;br /&gt;1 rows in set (0.00 sec)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Champage !&lt;br /&gt;&lt;br /&gt;Passons à quelque chose de plus marrant, un event récurent.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&amp;gt; create event hourly_event&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; on schedule&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; every 1 hour&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; insert into test.scheduled (field1) values (now());Query OK, 0 rows affected (0.01 sec)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&amp;gt; select * from information_schema.events\G&lt;br /&gt;*************************** 1. row ***************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EVENT_CATALOG: NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EVENT_SCHEMA: test&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EVENT_NAME: hourly_event&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFINER: root@localhost&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIME_ZONE: SYSTEM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EVENT_BODY: SQL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EVENT_DEFINITION: insert into test.scheduled (field1) values (now())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EVENT_TYPE: RECURRING&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXECUTE_AT: NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERVAL_VALUE: 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERVAL_FIELD: HOUR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SQL_MODE: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STARTS: 2009-01-07 11:36:13&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDS: NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATUS: ENABLED&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON_COMPLETION: NOT PRESERVE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATED: 2009-01-07 11:36:13&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LAST_ALTERED: 2009-01-07 11:36:13&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LAST_EXECUTED: 2009-01-07 11:36:13&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EVENT_COMMENT: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORIGINATOR: 1&lt;br /&gt;CHARACTER_SET_CLIENT: latin1&lt;br /&gt;COLLATION_CONNECTION: latin1_swedish_ci&lt;br /&gt;&amp;nbsp; DATABASE_COLLATION: latin1_swedish_ci&lt;br /&gt;1 row in set (0.00 sec)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tout est OK, attendons quelques heures....&lt;br /&gt;&lt;br /&gt;Zzzzzzz !&lt;br /&gt;&lt;br /&gt;&lt;code&gt;mysql&amp;gt; select * from test.scheduled;&lt;br /&gt;+---------------------+&lt;br /&gt;| Field1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;+---------------------+&lt;br /&gt;| 2009-01-07 11:36:13 | &lt;br /&gt;| 2009-01-07 12:36:13 | &lt;br /&gt;| 2009-01-07 13:36:13 | &lt;br /&gt;+---------------------+&lt;br /&gt;3 rows in set (0.00 sec)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Voilà.....&lt;br /&gt;&lt;br /&gt;Pour plus d'information le &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.1/en/events.html&quot;&gt;site&lt;/a&gt; de MySQL est (bien entendu) très complet...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Replace dans word</title>
    <link>http://www.gatecrash.be/index.php?post/2009/01/05/Replace-dans-word</link>
    <guid isPermaLink="false">urn:md5:362eadca7439551190366d5d876296a6</guid>
    <pubDate>Mon, 05 Jan 2009 17:33:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>VBS</category>
        <category>Replace</category><category>VBS</category><category>Word</category>    
    <description>&lt;p&gt;Le titre semble trivial mais ayant une (grosse) série de replace à faire dans un template word, j'ai resorti mon vbs afin de m'aider...&lt;/p&gt;    &lt;p&gt;Coupons court au suspense :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Set objWord = CreateObject(&quot;Word.Application&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objWord.Visible = False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objWord.DisplayAlerts = False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objWord.Documents.Open path_to_doc,, True&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objWord.Selection.Find.ClearFormatting&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; With objWord.Selection.Find&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; .Text = &quot;What string&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; .Forward = True&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End With&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objWord.Selection.Find.Execute&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If objWord.Selection.Find.Found Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; objWord.Selection.Range = &quot;Whit string&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objWord.Quit wdDoNotSaveChanges&lt;br /&gt;Set objWord = Nothing&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Où path_to_doc est le fichier, &quot;What string&quot; le text à changer par
&quot;Whit string&quot;, pour le reste je vous laisse choisir vos options :
visible où pas, à sauver ou non, etc....&lt;/p&gt;
&lt;p&gt;Tout ceci est livré brut de décoffrage. En ce qui me concerne j'ai intégré ce code dans un &lt;em&gt;Do While&lt;/em&gt; alimenté par une requête SQL, mais (plus ou moins) tout est possible; dont surtout en faire une fonction avec paramètres&lt;/p&gt;
&lt;p&gt;A vous de voir !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>World of LinuxCraft</title>
    <link>http://www.gatecrash.be/index.php?post/2008/12/26/World-of-LinuxCraft</link>
    <guid isPermaLink="false">urn:md5:b18650c1087ebb9581e130b0cd039d3a</guid>
    <pubDate>Fri, 26 Dec 2008 12:15:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>Linux</category>
        <category>Linux</category><category>Ubuntu</category><category>World Of Warcraft</category>    
    <description>&lt;p&gt;Je dois avouer m'adonner depuis quelques années à des pérégrinnations martiales en Azeroth.&lt;/p&gt;


&lt;p&gt;Loin de ces aventures virtuelles, j'ai toujours eu dans un coin de ma tête l'intention de faire tourner World of Warcraf sous Linux. Pour rappel seuls Windows et MacOS sont supportés par le jeu &quot;poule aux oeufs d'or&quot; de Blizzard.&lt;/p&gt;


&lt;p&gt;Ayant eu l'occasion de récupérer un vieux laptop qui a quelques heures de vol derrière lui, tous les éléments étaient réunis pour entammer les tests.&lt;/p&gt;


&lt;p&gt;Hauts les coeurs !&lt;/p&gt;    &lt;p&gt;La première étape fut d'insatller Linux. A vrai dire de nos jours c'est assez aisé, Les distributions Linux étant devenues extrèmement conviviales. Mon choix s'est porté sur Ubuntu 8.10, Après l'installation tout était OK : son, vidéo et réseau. Easy.&lt;/p&gt;


&lt;p&gt;Pour installer WoW par contre celà se complique. La première chose à faire est d'installer un émulateur d'environnement. J'ai installé Wine, mais d'autres existent tel Cedega.,&lt;/p&gt;


&lt;p&gt;Pour info Wine ne se trouve pas des les repositories par défaut d'Ubuntu, Dans Synaptic, il vous faudra ajouter le repository suivant :&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.gatecrash.be/public/Screenshot-Edit_Source.png&quot;&gt;&lt;img src=&quot;http://www.gatecrash.be/public/.Screenshot-Edit_Source_m.jpg&quot; alt=&quot;Screenshot-Edit_Source.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Screenshot-Edit_Source.png, Dec 2008&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Mais pour faire simple, c'est expliqué &lt;a href=&quot;http://www.winehq.org/download/deb&quot;&gt;ici&lt;/a&gt; pour les packages .deb. Une clef est requise.&lt;/p&gt;


&lt;p&gt;Une fois ajouté et la liste des packages mis à jour, il suffit d'installer Wine.&lt;/p&gt;


&lt;p&gt;En ce qui concerhe WoW, ce sera un peu plus long. Commençons, par facilité, par copier en local les sources. Pour WoW et Burning crusade c'est plus simple que Wrath of the Lich King, uniquement distribué sur DVD.&lt;/p&gt;


&lt;p&gt;J'ai du créer un directory par jeu dans lequel j'ai copié l'ensemble des fichiers contenu sur les CD / DVD. De façon originale je les ai nommé install_WOW, install_BC et install_WOLK. Comme annoncé, la copie de WoW et BC est triviale, par contre pour WOLK le DVD ne contient que deux fichiers de quelques Ko, là où le contenu global est de 7,7Go.... Damn, qui a piqué environ 7,699 Go ?!?&lt;/p&gt;


&lt;p&gt;Partant du principe que si j'ai un problème, quelqu'un d'autre à du l'avoir résolu avant moi, un petit tour sur internet m'a assez vite mis sur une piste. Et après un peu de lecture et moultes tests, il faut :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Insérer le DVD de Wrath of the lich king&lt;/li&gt;
&lt;li&gt;Une fois &lt;em&gt;mounted&lt;/em&gt; faire un &lt;em&gt;unmount&lt;/em&gt; du DVD (click droit sur le volume via nautilus sous Ubuntu)&lt;/li&gt;
&lt;li&gt;Via un terminal mount à nouveau le volume via :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;sudo mount -t udf -o ro,unhide,uid=&lt;em&gt;userid&lt;/em&gt; /dev/scd0 /media/cdrom0/&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copier le contenu du DVD dans le folder. L'ensemble des fichiers doivent être visible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La commande précédente mérite quelques explications. &lt;em&gt;sudo&lt;/em&gt; permet de tourner la commande avec des droits étendus.  Les options de mount :&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;br /&gt;
* &lt;em&gt;-t udf&lt;/em&gt;, indique que le volume est de file sytem type UDF&lt;br /&gt;
* &lt;em&gt;-o ro&lt;/em&gt;, force le mount en read only&lt;br /&gt;
* &lt;em&gt;uid=userid&lt;/em&gt;, définit le owner des fichiers, n'oubliez pas de mettre votre username&lt;br /&gt;
* &lt;em&gt;/dev/scd0&lt;/em&gt;, désigne le lecteur contenant le DVD. scd0 chez moi, mais ce pourrait être scd1, etc..&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Passons à l'installation maintenant que tout est en local. Il suffit en fait de lancer les 3 installers dans l'ordre en se plaçant dans le directory respectifs ( install_WOW, install_BC et install_WOLK pour rappel )&lt;/p&gt;


&lt;p&gt;&lt;code&gt;wine ./Installer.exe&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Vous êtes partis pour une plombe, mais Wine faisant son boulot, vous devriez trouvez un shorccut World of Warcraft sur votre desktop.&lt;/p&gt;


&lt;p&gt;L'étape suivante consiste à laisser le jeu se mettre à jour...&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.gatecrash.be/public/Screenshot1.png&quot;&gt;&lt;img src=&quot;http://www.gatecrash.be/public/.Screenshot1_m.jpg&quot; alt=&quot;Screenshot1.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Screenshot1.png, Dec 2008&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Par apprès le jeu tourne sans problème particulier à l'exception de quelques problèmes de son. J'ai du configurer Wine tel que ce dessous.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.gatecrash.be/public/Screenshot-Wine_configuration.png&quot;&gt;&lt;img src=&quot;http://www.gatecrash.be/public/.Screenshot-Wine_configuration_m.jpg&quot; alt=&quot;Screenshot-Wine_configuration.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Screenshot-Wine_configuration.png, Dec 2008&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Go farm !&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.gatecrash.be/public/Screenshot2.png&quot;&gt;&lt;img src=&quot;http://www.gatecrash.be/public/.Screenshot2_m.jpg&quot; alt=&quot;Screenshot2.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Screenshot2.png, Dec 2008&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>\o/ Gatecrash Evolved \o/</title>
    <link>http://www.gatecrash.be/index.php?post/2008/12/19/%5Co/-Gatecrash-Evolved-%5Co/</link>
    <guid isPermaLink="false">urn:md5:26532564dd38cf80d63569b68c49d9c8</guid>
    <pubDate>Fri, 19 Dec 2008 14:02:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>guilde gatecrash</category><category>wow</category>    
    <description>&lt;p&gt;Voilà, c'est public ! Après une première vie sous la &lt;a href=&quot;http://wow.gatecrash.be/&quot; hreflang=&quot;fr&quot;&gt;bannière de WoW&lt;/a&gt;, après une demi vie &quot;Warhammer&quot;, voici que je recycle le domaine gatecrash.be.&lt;/p&gt;    &lt;p&gt;Avant tout, et comme promis, tant que la guilde gatecrash - une guilde bien membrée - officiera sur les terres de Kalimdor je compte bien maintenir le site WoW à jour et donner un support minimal.  Quant à cet aspect ci du site, dorénavant public, je compte en faire une vitrine modeste de certains dévellopements que je fais : php, vbs, jquery et plus si affinité. J'espère qu'il trouvera son public et si non, çà ne changera rien.&lt;/p&gt;


&lt;p&gt;Pour les plus curieux Ce site tourne sous dotclear 2.1.3 avec un thème incluant jquery. C'est ce dernier qui permet les jolis petits effets dans les menus, itou, itou, itou .....&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Il y en a mille, mille, mille !</title>
    <link>http://www.gatecrash.be/index.php?post/2008/12/17/Il-y-en-a-mille%2C-mille%2C-mille-%21</link>
    <guid isPermaLink="false">urn:md5:40e55ad05cc550c0e8d96950777ceee1</guid>
    <pubDate>Wed, 17 Dec 2008 12:24:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>Jquery</category>
        <category>Jquery</category>    
    <description>&lt;p&gt;Dernièrement j'étais confronté à un problème avec une listbox dans une page web. Cette dernière contenait environ 750 options et il était difficile d'humainement savoir exactement ou à coup sûr l'option recherchée.&lt;/p&gt;
&lt;p&gt;Jquery pouvait-il m'aider ?&lt;/p&gt;    &lt;p&gt;Bien sur que oui, je n'écrirais pas ce billet sinon !&lt;/p&gt;
&lt;p&gt;J'ai retrouvé un morceau de code qui préselectionnait les options en fonction d'une imput box. Ce dernier toutefois ne filtrait qu'à partir du caractère zéro et je voulais qu'il me sélectionne la première option répondant à n'importe quelle occurence. Une toute petite modification à suffit pour arranger çà.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;;(function($)&lt;br /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp; var BigoFilter = function (src, where, settings)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; settings = jQuery.extend(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; property: 'text'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; },settings);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(src).bind('keyup',function()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; var field = $(this)[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var select = $(where)[0];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var found = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (var i = 0; i &amp;lt; select.options.length; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; if (select.options[i][settings.property].toUpperCase().indexOf(field.value.toUpperCase()) != -1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; found=true; break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (found)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; select.selectedIndex = i;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; select.selectedIndex = -1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }); // function&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // main func.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $.fn.bigoFilter = function (where, opts)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; var bleh =&amp;nbsp; new BigoFilter(this, where, opts);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // trigger&lt;br /&gt;})(jQuery) // closure&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La fonction est appelée via&lt;/p&gt;
&lt;code&gt;$(&quot;#myFilter&quot;).bigoFilter(&quot;#largeSelect&quot;);&lt;/code&gt;
&lt;p&gt;Où l'ID de l'input servant à filtrer est &lt;em&gt;myFilter&lt;/em&gt; et l'ID du tag Select est &lt;em&gt;largeSelect&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Concrètement celà donne ceci :&lt;/p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(document).ready(function() {$(&quot;#myFilter&quot;).bigoFilter(&quot;#largeSelect&quot;); }); &lt;/script&gt;&lt;br /&gt;&lt;input name=&quot;myFilter&quot; id=&quot;myFilter&quot; size=&quot;24&quot; value=&quot;type here&quot; type=&quot;input&quot; /&gt; &lt;code&gt;&amp;lt;= Ceci est #myFilter&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;select name=&quot;largeSelect&quot; id=&quot;largeSelect&quot;&gt; &lt;option value=&quot;AF&quot;&gt;Afghanistan&lt;/option&gt; &lt;option value=&quot;AL&quot;&gt;Albania&lt;/option&gt; &lt;option value=&quot;DZ&quot;&gt;Algeria&lt;/option&gt; &lt;option value=&quot;AS&quot;&gt;American Samoa&lt;/option&gt; &lt;option value=&quot;AD&quot;&gt;Andorra&lt;/option&gt; &lt;option value=&quot;AO&quot;&gt;Angola&lt;/option&gt; &lt;option value=&quot;AI&quot;&gt;Anguilla&lt;/option&gt; &lt;option value=&quot;AQ&quot;&gt;Antarctica&lt;/option&gt; &lt;option value=&quot;AG&quot;&gt;Antigua And Barbuda&lt;/option&gt; &lt;option value=&quot;AR&quot;&gt;Argentina&lt;/option&gt; &lt;option value=&quot;AM&quot;&gt;Armenia&lt;/option&gt; &lt;option value=&quot;AW&quot;&gt;Aruba&lt;/option&gt; &lt;option value=&quot;AU&quot;&gt;Australia&lt;/option&gt; &lt;option value=&quot;AT&quot;&gt;Austria&lt;/option&gt; &lt;option value=&quot;AZ&quot;&gt;Azerbaijan&lt;/option&gt; &lt;option value=&quot;BS&quot;&gt;Bahamas&lt;/option&gt; &lt;option value=&quot;BH&quot;&gt;Bahrain&lt;/option&gt; &lt;option value=&quot;BD&quot;&gt;Bangladesh&lt;/option&gt; &lt;option value=&quot;BB&quot;&gt;Barbados&lt;/option&gt; &lt;option value=&quot;BY&quot;&gt;Belarus&lt;/option&gt; &lt;option value=&quot;BE&quot;&gt;Belgium&lt;/option&gt; &lt;option value=&quot;BZ&quot;&gt;Belize&lt;/option&gt; &lt;option value=&quot;BJ&quot;&gt;Benin&lt;/option&gt; &lt;option value=&quot;BM&quot;&gt;Bermuda&lt;/option&gt; &lt;option value=&quot;BT&quot;&gt;Bhutan&lt;/option&gt; &lt;option value=&quot;BO&quot;&gt;Bolivia&lt;/option&gt; &lt;option value=&quot;BA&quot;&gt;Bosnia And Herzegovina&lt;/option&gt; &lt;option value=&quot;BW&quot;&gt;Botswana&lt;/option&gt; &lt;option value=&quot;BV&quot;&gt;Bouvet Island&lt;/option&gt; &lt;option value=&quot;BR&quot;&gt;Brazil&lt;/option&gt; &lt;option value=&quot;IO&quot;&gt;British Indian Ocean Territory&lt;/option&gt; &lt;option value=&quot;BN&quot;&gt;Brunei Darussalam&lt;/option&gt; &lt;option value=&quot;BG&quot;&gt;Bulgaria&lt;/option&gt; &lt;option value=&quot;BF&quot;&gt;Burkina Faso&lt;/option&gt; &lt;option value=&quot;BI&quot;&gt;Burundi&lt;/option&gt; &lt;option value=&quot;KH&quot;&gt;Cambodia&lt;/option&gt; &lt;option value=&quot;CM&quot;&gt;Cameroon&lt;/option&gt; &lt;option value=&quot;CA&quot;&gt;Canada&lt;/option&gt; &lt;option value=&quot;CV&quot;&gt;Cape Verde&lt;/option&gt; &lt;option value=&quot;KY&quot;&gt;Cayman Islands&lt;/option&gt; &lt;option value=&quot;CF&quot;&gt;Central African Republic&lt;/option&gt; &lt;option value=&quot;TD&quot;&gt;Chad&lt;/option&gt; &lt;option value=&quot;CL&quot;&gt;Chile&lt;/option&gt; &lt;option value=&quot;CN&quot;&gt;China&lt;/option&gt; &lt;option value=&quot;CX&quot;&gt;Christmas Island&lt;/option&gt; &lt;option value=&quot;CC&quot;&gt;Cocos (keeling) Islands&lt;/option&gt; &lt;option value=&quot;CO&quot;&gt;Colombia&lt;/option&gt; &lt;option value=&quot;KM&quot;&gt;Comoros&lt;/option&gt; &lt;option value=&quot;CG&quot;&gt;Congo&lt;/option&gt; &lt;option value=&quot;CD&quot;&gt;Congo, The Democratic Republic Of The&lt;/option&gt; &lt;option value=&quot;CK&quot;&gt;Cook Islands&lt;/option&gt; &lt;option value=&quot;CR&quot;&gt;Costa Rica&lt;/option&gt; &lt;option value=&quot;CI&quot;&gt;Côte D'ivoire&lt;/option&gt; &lt;option value=&quot;HR&quot;&gt;Croatia&lt;/option&gt; &lt;option value=&quot;CU&quot;&gt;Cuba&lt;/option&gt; &lt;option value=&quot;CY&quot;&gt;Cyprus&lt;/option&gt; &lt;option value=&quot;CZ&quot;&gt;Czech Republic&lt;/option&gt; &lt;option value=&quot;DK&quot;&gt;Denmark&lt;/option&gt; &lt;option value=&quot;DJ&quot;&gt;Djibouti&lt;/option&gt; &lt;option value=&quot;DM&quot;&gt;Dominica&lt;/option&gt; &lt;option value=&quot;DO&quot;&gt;Dominican Republic&lt;/option&gt; &lt;option value=&quot;TP&quot;&gt;East Timor&lt;/option&gt; &lt;option value=&quot;EC&quot;&gt;Ecuador&lt;/option&gt; &lt;option value=&quot;EG&quot;&gt;Egypt&lt;/option&gt; &lt;option value=&quot;SV&quot;&gt;El Salvador&lt;/option&gt; &lt;option value=&quot;GQ&quot;&gt;Equatorial Guinea&lt;/option&gt; &lt;option value=&quot;ER&quot;&gt;Eritrea&lt;/option&gt; &lt;option value=&quot;EE&quot;&gt;Estonia&lt;/option&gt; &lt;option value=&quot;ET&quot;&gt;Ethiopia&lt;/option&gt; &lt;option value=&quot;FK&quot;&gt;Falkland Islands (malvinas)&lt;/option&gt; &lt;option value=&quot;FO&quot;&gt;Faroe Islands&lt;/option&gt; &lt;option value=&quot;FJ&quot;&gt;Fiji&lt;/option&gt; &lt;option value=&quot;FI&quot;&gt;Finland&lt;/option&gt; &lt;option value=&quot;FR&quot;&gt;France&lt;/option&gt; &lt;option value=&quot;GF&quot;&gt;French Guiana&lt;/option&gt; &lt;option value=&quot;PF&quot;&gt;French Polynesia&lt;/option&gt; &lt;option value=&quot;TF&quot;&gt;French Southern Territories&lt;/option&gt; &lt;option value=&quot;GA&quot;&gt;Gabon&lt;/option&gt; &lt;option value=&quot;GM&quot;&gt;Gambia&lt;/option&gt; &lt;option value=&quot;GE&quot;&gt;Georgia&lt;/option&gt; &lt;option value=&quot;DE&quot;&gt;Germany&lt;/option&gt; &lt;option value=&quot;GH&quot;&gt;Ghana&lt;/option&gt; &lt;option value=&quot;GI&quot;&gt;Gibraltar&lt;/option&gt; &lt;option value=&quot;GR&quot;&gt;Greece&lt;/option&gt; &lt;option value=&quot;GL&quot;&gt;Greenland&lt;/option&gt; &lt;option value=&quot;GD&quot;&gt;Grenada&lt;/option&gt; &lt;option value=&quot;GP&quot;&gt;Guadeloupe&lt;/option&gt; &lt;option value=&quot;GU&quot;&gt;Guam&lt;/option&gt; &lt;option value=&quot;GT&quot;&gt;Guatemala&lt;/option&gt; &lt;option value=&quot;GN&quot;&gt;Guinea&lt;/option&gt; &lt;option value=&quot;GW&quot;&gt;Guinea-Bissau&lt;/option&gt; &lt;option value=&quot;GY&quot;&gt;Guyana&lt;/option&gt; &lt;option value=&quot;HT&quot;&gt;Haiti&lt;/option&gt; &lt;option value=&quot;HM&quot;&gt;Heard Island And Mcdonald Islands&lt;/option&gt; &lt;option value=&quot;VA&quot;&gt;Holy See (vatican City State)&lt;/option&gt; &lt;option value=&quot;HN&quot;&gt;Honduras&lt;/option&gt; &lt;option value=&quot;HK&quot;&gt;Hong Kong&lt;/option&gt; &lt;option value=&quot;HU&quot;&gt;Hungary&lt;/option&gt; &lt;option value=&quot;IS&quot;&gt;Iceland&lt;/option&gt; &lt;option value=&quot;IN&quot;&gt;India&lt;/option&gt; &lt;option value=&quot;ID&quot;&gt;Indonesia&lt;/option&gt; &lt;option value=&quot;IR&quot;&gt;Iran, Islamic Republic Of&lt;/option&gt; &lt;option value=&quot;IQ&quot;&gt;Iraq&lt;/option&gt; &lt;option value=&quot;IE&quot;&gt;Ireland&lt;/option&gt; &lt;option value=&quot;IL&quot;&gt;Israel&lt;/option&gt; &lt;option value=&quot;IT&quot;&gt;Italy&lt;/option&gt; &lt;option value=&quot;JM&quot;&gt;Jamaica&lt;/option&gt; &lt;option value=&quot;JP&quot;&gt;Japan&lt;/option&gt; &lt;option value=&quot;JO&quot;&gt;Jordan&lt;/option&gt; &lt;option value=&quot;KZ&quot;&gt;Kazakstan&lt;/option&gt; &lt;option value=&quot;KE&quot;&gt;Kenya&lt;/option&gt; &lt;option value=&quot;KI&quot;&gt;Kiribati&lt;/option&gt; &lt;option value=&quot;KP&quot;&gt;Korea, Democratic People's Republic Of&lt;/option&gt; &lt;option value=&quot;KR&quot;&gt;Korea, Republic Of&lt;/option&gt; &lt;option value=&quot;KW&quot;&gt;Kuwait&lt;/option&gt; &lt;option value=&quot;KG&quot;&gt;Kyrgyzstan&lt;/option&gt; &lt;option value=&quot;LA&quot;&gt;Lao People's Democratic Republic&lt;/option&gt; &lt;option value=&quot;LV&quot;&gt;Latvia&lt;/option&gt; &lt;option value=&quot;LB&quot;&gt;Lebanon&lt;/option&gt; &lt;option value=&quot;LS&quot;&gt;Lesotho&lt;/option&gt; &lt;option value=&quot;LR&quot;&gt;Liberia&lt;/option&gt; &lt;option value=&quot;LY&quot;&gt;Libyan Arab Jamahiriya&lt;/option&gt; &lt;option value=&quot;LI&quot;&gt;Liechtenstein&lt;/option&gt; &lt;option value=&quot;LT&quot;&gt;Lithuania&lt;/option&gt; &lt;option value=&quot;LU&quot;&gt;Luxembourg&lt;/option&gt; &lt;option value=&quot;MO&quot;&gt;Macau&lt;/option&gt; &lt;option value=&quot;MK&quot;&gt;Macedonia&lt;/option&gt; &lt;option value=&quot;MG&quot;&gt;Madagascar&lt;/option&gt; &lt;option value=&quot;MW&quot;&gt;Malawi&lt;/option&gt; &lt;option value=&quot;MY&quot;&gt;Malaysia&lt;/option&gt; &lt;option value=&quot;MV&quot;&gt;Maldives&lt;/option&gt; &lt;option value=&quot;ML&quot;&gt;Mali&lt;/option&gt; &lt;option value=&quot;MT&quot;&gt;Malta&lt;/option&gt; &lt;option value=&quot;MH&quot;&gt;Marshall Islands&lt;/option&gt; &lt;option value=&quot;MQ&quot;&gt;Martinique&lt;/option&gt; &lt;option value=&quot;MR&quot;&gt;Mauritania&lt;/option&gt; &lt;option value=&quot;MU&quot;&gt;Mauritius&lt;/option&gt; &lt;option value=&quot;YT&quot;&gt;Mayotte&lt;/option&gt; &lt;option value=&quot;MX&quot;&gt;Mexico&lt;/option&gt; &lt;option value=&quot;FM&quot;&gt;Micronesia, Federated States Of&lt;/option&gt; &lt;option value=&quot;MD&quot;&gt;Moldova, Republic Of&lt;/option&gt; &lt;option value=&quot;MC&quot;&gt;Monaco&lt;/option&gt; &lt;option value=&quot;MN&quot;&gt;Mongolia&lt;/option&gt; &lt;option value=&quot;MS&quot;&gt;Montserrat&lt;/option&gt; &lt;option value=&quot;MA&quot;&gt;Morocco&lt;/option&gt; &lt;option value=&quot;MZ&quot;&gt;Mozambique&lt;/option&gt; &lt;option value=&quot;MM&quot;&gt;Myanmar&lt;/option&gt; &lt;option value=&quot;NA&quot;&gt;Namibia&lt;/option&gt; &lt;option value=&quot;NR&quot;&gt;Nauru&lt;/option&gt; &lt;option value=&quot;NP&quot;&gt;Nepal&lt;/option&gt; &lt;option value=&quot;NL&quot;&gt;Netherlands&lt;/option&gt; &lt;option value=&quot;AN&quot;&gt;Netherlands Antilles&lt;/option&gt; &lt;option value=&quot;NC&quot;&gt;New Caledonia&lt;/option&gt; &lt;option value=&quot;NZ&quot;&gt;New Zealand&lt;/option&gt; &lt;option value=&quot;NI&quot;&gt;Nicaragua&lt;/option&gt; &lt;option value=&quot;NE&quot;&gt;Niger&lt;/option&gt; &lt;option value=&quot;NG&quot;&gt;Nigeria&lt;/option&gt; &lt;option value=&quot;NU&quot;&gt;Niue&lt;/option&gt; &lt;option value=&quot;NF&quot;&gt;Norfolk Island&lt;/option&gt; &lt;option value=&quot;MP&quot;&gt;Northern Mariana Islands&lt;/option&gt; &lt;option value=&quot;NO&quot;&gt;Norway&lt;/option&gt; &lt;option value=&quot;OM&quot;&gt;Oman&lt;/option&gt; &lt;option value=&quot;PK&quot;&gt;Pakistan&lt;/option&gt; &lt;option value=&quot;PW&quot;&gt;Palau&lt;/option&gt; &lt;option value=&quot;PS&quot;&gt;Palestinian Territory, Occupied&lt;/option&gt; &lt;option value=&quot;PA&quot;&gt;Panama&lt;/option&gt; &lt;option value=&quot;PG&quot;&gt;Papua New Guinea&lt;/option&gt; &lt;option value=&quot;PY&quot;&gt;Paraguay&lt;/option&gt; &lt;option value=&quot;PE&quot;&gt;Peru&lt;/option&gt; &lt;option value=&quot;PH&quot;&gt;Philippines&lt;/option&gt; &lt;option value=&quot;PN&quot;&gt;Pitcairn&lt;/option&gt; &lt;option value=&quot;PL&quot;&gt;Poland&lt;/option&gt; &lt;option value=&quot;PT&quot;&gt;Portugal&lt;/option&gt; &lt;option value=&quot;PR&quot;&gt;Puerto Rico&lt;/option&gt; &lt;option value=&quot;QA&quot;&gt;Qatar&lt;/option&gt; &lt;option value=&quot;RE&quot;&gt;Réunion&lt;/option&gt; &lt;option value=&quot;RO&quot;&gt;Romania&lt;/option&gt; &lt;option value=&quot;RU&quot;&gt;Russian Federation&lt;/option&gt; &lt;option value=&quot;RW&quot;&gt;Rwanda&lt;/option&gt; &lt;option value=&quot;SH&quot;&gt;Saint Helena&lt;/option&gt; &lt;option value=&quot;KN&quot;&gt;Saint Kitts And Nevis&lt;/option&gt; &lt;option value=&quot;LC&quot;&gt;Saint Lucia&lt;/option&gt; &lt;option value=&quot;PM&quot;&gt;Saint Pierre And Miquelon&lt;/option&gt; &lt;option value=&quot;VC&quot;&gt;Saint Vincent And The Grenadines&lt;/option&gt; &lt;option value=&quot;WS&quot;&gt;Samoa&lt;/option&gt; &lt;option value=&quot;SM&quot;&gt;San Marino&lt;/option&gt; &lt;option value=&quot;ST&quot;&gt;Sao Tome And Principe&lt;/option&gt; &lt;option value=&quot;SA&quot;&gt;Saudi Arabia&lt;/option&gt; &lt;option value=&quot;SN&quot;&gt;Senegal&lt;/option&gt; &lt;option value=&quot;YU&quot;&gt;Serbia &amp;amp; Montenegro&lt;/option&gt; &lt;option value=&quot;SC&quot;&gt;Seychelles&lt;/option&gt; &lt;option value=&quot;SL&quot;&gt;Sierra Leone&lt;/option&gt; &lt;option value=&quot;SG&quot;&gt;Singapore&lt;/option&gt; &lt;option value=&quot;SK&quot;&gt;Slovakia&lt;/option&gt; &lt;option value=&quot;SI&quot;&gt;Slovenia&lt;/option&gt; &lt;option value=&quot;SB&quot;&gt;Solomon Islands&lt;/option&gt; &lt;option value=&quot;SO&quot;&gt;Somalia&lt;/option&gt; &lt;option value=&quot;ZA&quot;&gt;South Africa&lt;/option&gt; &lt;option value=&quot;GS&quot;&gt;South Georgia And The South Sandwich Islands&lt;/option&gt; &lt;option value=&quot;ES&quot;&gt;Spain&lt;/option&gt; &lt;option value=&quot;LK&quot;&gt;Sri Lanka&lt;/option&gt; &lt;option value=&quot;SD&quot;&gt;Sudan&lt;/option&gt; &lt;option value=&quot;SR&quot;&gt;Suriname&lt;/option&gt; &lt;option value=&quot;SJ&quot;&gt;Svalbard And Jan Mayen&lt;/option&gt; &lt;option value=&quot;SZ&quot;&gt;Swaziland&lt;/option&gt; &lt;option value=&quot;SE&quot;&gt;Sweden&lt;/option&gt; &lt;option value=&quot;CH&quot;&gt;Switzerland&lt;/option&gt; &lt;option value=&quot;SY&quot;&gt;Syrian Arab Republic&lt;/option&gt; &lt;option value=&quot;TW&quot;&gt;Taiwan, Province Of China&lt;/option&gt; &lt;option value=&quot;TJ&quot;&gt;Tajikistan&lt;/option&gt; &lt;option value=&quot;TZ&quot;&gt;Tanzania, United Republic Of&lt;/option&gt; &lt;option value=&quot;TH&quot;&gt;Thailand&lt;/option&gt; &lt;option value=&quot;TG&quot;&gt;Togo&lt;/option&gt; &lt;option value=&quot;TK&quot;&gt;Tokelau&lt;/option&gt; &lt;option value=&quot;TO&quot;&gt;Tonga&lt;/option&gt; &lt;option value=&quot;TT&quot;&gt;Trinidad And Tobago&lt;/option&gt; &lt;option value=&quot;TN&quot;&gt;Tunisia&lt;/option&gt; &lt;option value=&quot;TR&quot;&gt;Turkey&lt;/option&gt; &lt;option value=&quot;TM&quot;&gt;Turkmenistan&lt;/option&gt; &lt;option value=&quot;TC&quot;&gt;Turks And Caicos Islands&lt;/option&gt; &lt;option value=&quot;TV&quot;&gt;Tuvalu&lt;/option&gt; &lt;option value=&quot;UG&quot;&gt;Uganda&lt;/option&gt; &lt;option value=&quot;UA&quot;&gt;Ukraine&lt;/option&gt; &lt;option value=&quot;AE&quot;&gt;United Arab Emirates&lt;/option&gt; &lt;option value=&quot;GB&quot;&gt;United Kingdom&lt;/option&gt; &lt;option value=&quot;US&quot;&gt;United States&lt;/option&gt; &lt;option value=&quot;UM&quot;&gt;United States Minor Outlying Islands&lt;/option&gt; &lt;option value=&quot;UY&quot;&gt;Uruguay&lt;/option&gt; &lt;option value=&quot;UZ&quot;&gt;Uzbekistan&lt;/option&gt; &lt;option value=&quot;VU&quot;&gt;Vanuatu&lt;/option&gt; &lt;option value=&quot;VA&quot;&gt;Vatican City State&lt;/option&gt; &lt;option value=&quot;VE&quot;&gt;Venezuela&lt;/option&gt; &lt;option value=&quot;VN&quot;&gt;Viet Nam&lt;/option&gt; &lt;option value=&quot;VG&quot;&gt;Virgin Islands, British&lt;/option&gt; &lt;option value=&quot;VI&quot;&gt;Virgin Islands, U.S.&lt;/option&gt; &lt;option value=&quot;WF&quot;&gt;Wallis And Futuna&lt;/option&gt; &lt;option value=&quot;EH&quot;&gt;Western Sahara&lt;/option&gt; &lt;option value=&quot;YE&quot;&gt;Yemen&lt;/option&gt; &lt;option value=&quot;CD&quot;&gt;Zaire (congo, The Democratic Republic Of The)&lt;/option&gt; &lt;option value=&quot;ZM&quot;&gt;Zambia&lt;/option&gt; &lt;option value=&quot;ZW&quot;&gt;Zimbabwe&lt;/option&gt; &lt;/select&gt; &lt;code&gt;&amp;lt;= Ceci est #largeSelect&lt;/code&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Oui mais non !</title>
    <link>http://www.gatecrash.be/index.php?post/2008/12/16/Oui-mais-non-%21</link>
    <guid isPermaLink="false">urn:md5:f352e581d56d60795db8123efbd6141f</guid>
    <pubDate>Tue, 16 Dec 2008 08:58:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>Gatecrash.be</category>
        <category>intégrité reférentielle</category>    
    <description>    &lt;p&gt;Renseignement pris et pour faire suite &lt;a href=&quot;http://www.gatecrash.be/dc/index.php?post/2008/12/15/Premier-billet&quot;&gt;au billet de hier&lt;/a&gt; , il semblerait que Dotclear 2.x requiert des tables MySQL avec un engine InnoDB, ce pour des contraintes d'intégrité reférentielle propres et de gestion des transactions. J'ai beau comprendre pourquoi c'est mieux, mais je reste pantois. Dotclear 2.x est il un blog ayant des contraintes similaires à celles liées à des transactions bancaires ?&lt;/p&gt;


&lt;p&gt;Peu importe, Je vais rester avec mes tables MyISAM et tenter l'aventure....&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Premier billet</title>
    <link>http://www.gatecrash.be/index.php?post/2008/12/15/Premier-billet</link>
    <guid isPermaLink="false">urn:md5:c4f4198f365347707c0bd815482e5059</guid>
    <pubDate>Mon, 15 Dec 2008 14:19:00 +0000</pubDate>
    <dc:creator>Civette</dc:creator>
        <category>Gatecrash.be</category>
        <category>Dotclear 2.x</category><category>INNODB</category><category>MyISAM</category>    
    <description>&lt;p&gt;Voilà un titre bien original....&lt;/p&gt;


&lt;p&gt;Cela faisait un petit temps que je caressais le projet de mettre sur pied un blog. Dotclear 2.x avait remporté mon sufrage depuis longtemps, bien que joomla m'intéresse encore et toujours. Mais bon... Avons-nous besoin d'un canon pour tuer une mouche ?&lt;/p&gt;    &lt;p&gt;D'entrée de jeu mon projet fût mis à mal. One.com, mon hébergeur dont ma foi je suis &quot;t'assez&quot; content, ne supporte pas &lt;a href=&quot;http://www.gatecrash.be/dc/index.php?tag/Dotclear%202.x&quot;&gt;Dotclear 2.x&lt;/a&gt;. Que celà ne tienne, avec un peu de compétence et de recherche sur la grande toile, on devrait pouvoir s'en tirer. La base du problème est que dotclear demande une DB MySQL avec un engine innoDB et non &lt;a href=&quot;http://www.gatecrash.be/dc/index.php?tag/MyISAM&quot;&gt;MyISAM&lt;/a&gt; (ou postgresql pour être complet). Je ne sais pas pourquoi mais celà me semble un peu lourdingue.... même si il faut reconnaitre qu'&lt;a href=&quot;http://www.gatecrash.be/dc/index.php?tag/INNODB&quot;&gt;INNODB&lt;/a&gt; est plus robuste.&lt;/p&gt;


&lt;p&gt;Comment se sortir de ce mauvais pas ? Ma foi ce ne fut pas très difficile à partir du moment où l'on sait après quoi chercher.&lt;/p&gt;


&lt;p&gt;Dans le fichier : ./inc/clearbricks/dbschema/class.mysql.dbschema.php vers la ligne 180 :&lt;/p&gt;


&lt;p&gt;Remplacer &lt;em&gt;ENGINE=InnoDB&lt;/em&gt;  par &lt;em&gt;ENGINE=MYISAM&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Dans : ./dotclear/admin/install/check.php :&lt;/p&gt;


&lt;p&gt;Mettre en remarque les  lignes :
''if (!$innodb) {$err&lt;a href=&quot;http://www.gatecrash.be/index.php?post/2008/12/15/&quot;&gt;&lt;/a&gt; = __('MySQL InnoDB engine is not available.');
}''&lt;/p&gt;


&lt;p&gt;Après l'on peu reprendre l'install comme documenté. Avec de heures de test (hum hum), je n'ai pas constaté que ceci prète à conséquence.&lt;/p&gt;


&lt;p&gt;Voici un premier billet bien technique et aride. Je m'engage à en poster d'autres du même genre sous peu. De plus, et tant qu'a faire, je vais quelque peu me pencher sur Dotclear.....&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>
