<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="/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>Trucs libres</title>
  <link>/</link>
  <atom:link href="http://www.positon.org/feed/navlang:fr/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Thu, 09 Feb 2012 19:49:28 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Suppression DRM Mobipocket (fichier .prc)</title>
    <link>/post/Suppression-DRM-Mobipocket-%28fichier-.prc%29</link>
    <guid isPermaLink="false">urn:md5:2fa1155cf4f772a7b487f5e1a5bb4785</guid>
    <pubDate>Mon, 30 Jan 2012 01:11:00 +0100</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>bookeen</category><category>DRM</category><category>ebook</category>    
    <description>    &lt;p&gt;Le manuel d&amp;rsquo;utilisation de mon Bookeen Cybook Gen 3 est protégé par DRM&amp;nbsp;! Quelle calomnie&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Télécharger la dernière version de DRM Tools Archive sur
&lt;a href=&quot;http://stream-recorder.com/forum/download-drm-tools-archive-t7955p3.html&quot; title=&quot;http://stream-recorder.com/forum/download-drm-tools-archive-t7955p3.html&quot;&gt;http://stream-recorder.com/forum/download-drm-tools-archive-t7955p3.html&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Extraire l&amp;rsquo;archive puis&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
tools_v4.7/Mobi_Additional_Tools$ python MobiDeDRM_032.py /tmp/XXXXX.prc /tmp/decrypted.prc
&lt;/pre&gt;


&lt;p&gt;Et voila vous pouvez maintenant ouvrir le fichier à l&amp;rsquo;aide de fbreader&lt;/p&gt;


&lt;p&gt;Je ne suis pas sûr que ça fonctionne avec tous les fichiers PRC. Il faut peut être préciser le PID pour certains.&lt;/p&gt;</description>
    
    
    
          <comments>/post/Suppression-DRM-Mobipocket-%28fichier-.prc%29#comment-form</comments>
      <wfw:comment>/post/Suppression-DRM-Mobipocket-%28fichier-.prc%29#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/92</wfw:commentRss>
      </item>
    
  <item>
    <title>Script d'import de fichier CSV dans MySQL</title>
    <link>/post/Script-d-import-de-fichier-CSV-dans-MySQL2</link>
    <guid isPermaLink="false">urn:md5:324cfb0629f8fa743171d77bacf79a60</guid>
    <pubDate>Sun, 13 Nov 2011 21:32:00 +0100</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>bash</category><category>csv</category><category>MySQL</category>    
    <description>    &lt;p&gt;Voila le petit script sh que j&amp;rsquo;ai fait pour faire ça. Il existe la commande MySQL LOAD DATA INFILE, mais cette commande ne crée pas la structure de la table.&lt;/p&gt;

&lt;pre&gt;
#!/bin/sh

MYSQL_ARGS=&amp;quot;--defaults-file=/etc/mysql/debian.cnf&amp;quot;
DB=&amp;quot;mbctest&amp;quot;
DELIM=&amp;quot;;&amp;quot;

CSV=&amp;quot;$1&amp;quot;
TABLE=&amp;quot;$2&amp;quot;

[ &amp;quot;$CSV&amp;quot; = &amp;quot;&amp;quot; -o &amp;quot;$TABLE&amp;quot; = &amp;quot;&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;Syntax: $0 csvfile tablename&amp;quot; &amp;amp;&amp;amp; exit 1

FIELDS=$(head -1 &amp;quot;$CSV&amp;quot; | sed -e 's/'$DELIM'/` varchar(255),\n`/g' -e 's/\r//g')
FIELDS='`'&amp;quot;$FIELDS&amp;quot;'` varchar(255)'

#echo &amp;quot;$FIELDS&amp;quot; &amp;amp;&amp;amp; exit

mysql $MYSQL_ARGS $DB -e &amp;quot;
DROP TABLE IF EXISTS $TABLE;
CREATE TABLE $TABLE ($FIELDS);

LOAD DATA INFILE '$(pwd)/$CSV' INTO TABLE $TABLE
FIELDS TERMINATED BY '$DELIM'
IGNORE 1 LINES
;
&amp;quot;
&lt;/pre&gt;


&lt;p&gt;&lt;a href=&quot;http://dev.mysql.com/doc/refman/5.1/en/load-data.html&quot; title=&quot;http://dev.mysql.com/doc/refman/5.1/en/load-data.html&quot;&gt;http://dev.mysql.com/doc/refman/5.1/en/load-data.html&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;(Voir le commentaire &quot;Posted by John Swapceinski on September 5 2011 5:33am&quot;)&lt;/p&gt;</description>
    
    
    
          <comments>/post/Script-d-import-de-fichier-CSV-dans-MySQL2#comment-form</comments>
      <wfw:comment>/post/Script-d-import-de-fichier-CSV-dans-MySQL2#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/91</wfw:commentRss>
      </item>
    
  <item>
    <title>Function PHP escapeshellarg, UTF8 et locales</title>
    <link>/post/Function-PHP-escapeshellarg%2C-UTF8-et-locales</link>
    <guid isPermaLink="false">urn:md5:adcd094c74df0c8ba462b3e12ff6d9af</guid>
    <pubDate>Tue, 14 Jun 2011 23:09:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>locales</category><category>PHP</category><category>UTF8</category>    
    <description>    &lt;p&gt;La fonction PHP &lt;code&gt;escapeshellarg&lt;/code&gt; dépend de votre locale courante. Je pense que c&amp;rsquo;est mal, mais les développeurs de PHP on fait ce choix. Si comme moi votre locale par défaut est &amp;rsquo;C&amp;rsquo;, vous perdez vos caractères UTF8.&lt;/p&gt;


&lt;p&gt;Ils suggèrent d&amp;rsquo;utiliser quelque chose comme &lt;code&gt;setlocale(LC_CTYPE, &quot;en_US.UTF-8&quot;)&lt;/code&gt;. Ça ne fonctionne pas si la locale &lt;code&gt;en_US.utf8&lt;/code&gt; n&amp;rsquo;est pas installée sur votre système. Bien sûr vous avez peut-être fr_FR.utf8, ou de_DE.utf8, mais vous aller devoir toutes les essayer jusqu&amp;rsquo;à trouver une locale utf8 qui correspond. Et s&amp;rsquo;il n&amp;rsquo;y en a pas vous êtes foutus. C&amp;rsquo;est mauvais aussi si vous voulez du code qui marche partout.&lt;/p&gt;


&lt;p&gt;Utilisez simplement&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
$escapedArg = &amp;quot;'&amp;quot;.str_replace(&amp;quot;'&amp;quot;, &amp;quot;'\\''&amp;quot;, $arg).&amp;quot;'&amp;quot;;
&lt;/pre&gt;


&lt;p&gt;Ça fait la même chose que la fonction &lt;code&gt;escapeshellarg&lt;/code&gt;&amp;nbsp;: remplacer &lt;code&gt;chainel'hyperlongue&lt;/code&gt; par&lt;/p&gt;
&lt;pre&gt;
'chainel'\''hyperlongue'
&lt;/pre&gt;

&lt;p&gt;comme décrit dans le &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;manuel de escapeshellarg&lt;/a&gt; (et j&amp;rsquo;ai aussi jeté un œil au code source de PHP pour être sûr).&lt;/p&gt;


&lt;p&gt;Voir aussi&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.php.net/escapeshellarg&quot; title=&quot;http://www.php.net/escapeshellarg&quot;&gt;http://www.php.net/escapeshellarg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.php.net/bug.php?id=44945&quot; title=&quot;http://bugs.php.net/bug.php?id=44945&quot;&gt;http://bugs.php.net/bug.php?id=44945&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.php.net/bug.php?id=44564&quot; title=&quot;http://bugs.php.net/bug.php?id=44564&quot;&gt;http://bugs.php.net/bug.php?id=44564&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Function-PHP-escapeshellarg%2C-UTF8-et-locales#comment-form</comments>
      <wfw:comment>/post/Function-PHP-escapeshellarg%2C-UTF8-et-locales#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/89</wfw:commentRss>
      </item>
    
  <item>
    <title>Un script mysqldump très simple pour sauvegarder vos bases de données</title>
    <link>/post/Un-script-mysqldump-tr%C3%A8s-simple-pour-sauvegarder-vos-bases-de-donn%C3%A9es</link>
    <guid isPermaLink="false">urn:md5:34bf3db073b6e1e8b5307a3ebf105c8a</guid>
    <pubDate>Sun, 13 Mar 2011 21:42:00 +0100</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>Debian</category><category>MySQL</category><category>shell script</category>    
    <description>    &lt;p&gt;Voici les quelques lignes que j&amp;rsquo;utilise pour sauvegarder mes bases de données MySQL sur mon serveur Debian&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
#!/bin/sh
# This will dump all your databases

DATE=$(date +%Y%m%d%H%M)

for DB in $(echo &amp;quot;show databases&amp;quot; | mysql --defaults-file=/etc/mysql/debian.cnf -N)
do
        mysqldump --defaults-file=/etc/mysql/debian.cnf $DB &amp;gt; /backup/mysql/${DB}_${DATE}.sql

        gzip /backup/mysql/${DB}_${DATE}.sql
done

# purge old dumps
find /backup/mysql/ -name &amp;quot;*.sql*&amp;quot; -mtime +8 -exec rm -vf {} \;
&lt;/pre&gt;


&lt;p&gt;Vous pouvez le lancer via un cron&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
11 1 * * * /usr/local/bin/mysqldump.sh &amp;gt; /tmp/mysqldump.log
&lt;/pre&gt;


&lt;p&gt;De cette manière, toute erreur affichée par le script sera envoyée par mail à l&amp;rsquo;utilisateur root (adresse configurée dans &lt;code&gt;/etc/aliases&lt;/code&gt;).&lt;/p&gt;


&lt;p&gt;Sous une autre distribution que Debian, s&amp;rsquo;il n&amp;rsquo;existe pas un fichier de mot de passe équivalent dans /etc/mysql/, vous devrez en créer un.&lt;/p&gt;</description>
    
    
    
          <comments>/post/Un-script-mysqldump-tr%C3%A8s-simple-pour-sauvegarder-vos-bases-de-donn%C3%A9es#comment-form</comments>
      <wfw:comment>/post/Un-script-mysqldump-tr%C3%A8s-simple-pour-sauvegarder-vos-bases-de-donn%C3%A9es#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/88</wfw:commentRss>
      </item>
    
  <item>
    <title>positon.42 et dnsmasq comme proxy DNS pour résoudre les domaines en .42</title>
    <link>/post/positon.42-et-dnsmasq-comme-proxy-DNS-pour-r%C3%A9soudre-les-domaines-en-.42</link>
    <guid isPermaLink="false">urn:md5:faeaec37b18365148471b42dda2c1d21</guid>
    <pubDate>Thu, 13 Jan 2011 23:32:00 +0100</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>42registry</category><category>dnsmasq</category>    
    <description>    &lt;p&gt;J&amp;rsquo;ai récemment fait la demande et obtenu mon domaine en .42&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://positon.42&quot; title=&quot;http://positon.42&quot;&gt;http://positon.42&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Les .42 ne sont pas (encore) officiels (c&amp;rsquo;est à dire agréés par l&amp;rsquo;&lt;a href=&quot;http://www.icann.org/tr/french.html&quot;&gt;ICANN&lt;/a&gt; et servi par les serveurs DNS racine).&lt;/p&gt;


&lt;p&gt;Pour résoudre les domaines en .42, vous devez interroger un serveur DNS qui connait les .42.&lt;/p&gt;


&lt;p&gt;Je reprend dans mon billet &lt;a href=&quot;http://wiki.42registry.org/page/Resolve#Ubuntu_and_Dnsmasq&quot;&gt;ma modeste contribution&lt;/a&gt; au wiki de 42registry.org, qui explique une manière de configurer cela sous Ubuntu&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;---&lt;/p&gt;


&lt;p&gt;The following allows you to use Geeknode DNS only for .42 domains while keeping your regular DNS provider for other domains.&lt;/p&gt;


&lt;p&gt;Install dnsmasq&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
aptitude install dnsmasq
&lt;/pre&gt;

&lt;p&gt;Edit &lt;code&gt;/etc/dnsmasq.conf&lt;/code&gt; and add the line&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
server=/42/81.93.248.69
&lt;/pre&gt;

&lt;p&gt;Restart dnsmasq&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
sudo /etc/init.d/dnsmasq restart
&lt;/pre&gt;

&lt;p&gt;Edit &lt;code&gt;/etc/dhcp3/dhclient.conf&lt;/code&gt;, then uncomment or add the line&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
prepend domain-name-servers 127.0.0.1;
&lt;/pre&gt;

&lt;p&gt;Now disconnect and reconnect to you local network, to refresh the /etc/resolv.conf file, then test it&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;---&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;Liens&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.42registry.org/&quot; title=&quot;https://www.42registry.org/&quot;&gt;https://www.42registry.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://wiki.42registry.org/&quot; title=&quot;http://wiki.42registry.org/&quot;&gt;http://wiki.42registry.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://wiki.42registry.org/page/Resolve#Ubuntu_and_Dnsmasq&quot; title=&quot;http://wiki.42registry.org/page/Resolve#Ubuntu_and_Dnsmasq&quot;&gt;http://wiki.42registry.org/page/Resolve#Ubuntu_and_Dnsmasq&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/positon.42-et-dnsmasq-comme-proxy-DNS-pour-r%C3%A9soudre-les-domaines-en-.42#comment-form</comments>
      <wfw:comment>/post/positon.42-et-dnsmasq-comme-proxy-DNS-pour-r%C3%A9soudre-les-domaines-en-.42#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/87</wfw:commentRss>
      </item>
    
  <item>
    <title>Restriction de commande Rsync par SSH</title>
    <link>/post/Restriction-de-commande-Rsync-par-SSH</link>
    <guid isPermaLink="false">urn:md5:a95d300c9b950c26cb51b31a6401cc77</guid>
    <pubDate>Wed, 29 Dec 2010 18:36:00 +0100</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>rsync</category><category>sauvegarde</category><category>SSH</category>    
    <description>    &lt;p&gt;Vous disposez de deux systèmes et vous voulez mettre en place une sauvegarde sécurisée par rsync + SSH d&amp;rsquo;un système sur l&amp;rsquo;autre.&lt;/p&gt;


&lt;p&gt;De manière très simple, vous pouvez utiliser la commande&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
backup.example.com# rsync -avz --numeric-ids --delete root@myserver.example.com:/path/ /backup/myserver/
&lt;/pre&gt;


&lt;p&gt;Pour faire la sauvegarde, vous devez être root sur le serveur, car certains fichiers ne sont lisibles que par root.&lt;/p&gt;


&lt;p&gt;Problème&amp;nbsp;: vous allez autoriser backup.example.com à faire n&amp;rsquo;importe quoi sur myserver.example.com, alors qu&amp;rsquo;un simple accès en lecture seule sur un dossier suffit.&lt;/p&gt;


&lt;p&gt;Pour résoudre ce problème, il suffit d&amp;rsquo;utiliser la directive &lt;code&gt;command=&quot;&quot;&lt;/code&gt; dans le fichier &lt;code&gt;authorized_keys&lt;/code&gt; pour filtrer la commande lancée.&lt;/p&gt;


&lt;p&gt;Pour trouver cette commande, on lance rsync en ajoutant l&amp;rsquo;option &lt;code&gt;-e'ssh -v'&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
rsync -avz -e'ssh -v' --numeric-ids --delete root@myserver.example.com:/path/ /backup/myserver/ 2&amp;gt;&amp;amp;1 | grep &amp;quot;Sending command&amp;quot;
&lt;/pre&gt;


&lt;p&gt;On obtient un résultat du genre&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
debug1: Sending command: rsync --server --sender -vlogDtprze.iLsf --numeric-ids . /path/
&lt;/pre&gt;


&lt;p&gt;Maintenant, il suffit d&amp;rsquo;ajouter la commande avant la clé dans le fichier &lt;code&gt;/root/.ssh/authorized_keys&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
command=&amp;quot;rsync --server --sender -vlogDtprze.iLsf --numeric-ids . /path/&amp;quot; ssh-rsa AAAAB3NzaC1in2EAAAABIwAAABio......
&lt;/pre&gt;


&lt;p&gt;Et pour encore plus de sécurité, on pourra ajouter un filtre par IP, et autres options&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
from=&amp;quot;backup.example.com&amp;quot;,command=&amp;quot;rsync --server --sender -vlogDtprze.iLsf --numeric-ids . /path/&amp;quot;,no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAAB3NzaC1in2EAAAABIwAAABio......
&lt;/pre&gt;


&lt;p&gt;Maintenant, vous pouvez essayer d&amp;rsquo;ouvrir un shell ssh, ou de lancer d&amp;rsquo;autres commandes rsync non autorisées...&lt;/p&gt;


&lt;p&gt;Notes&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Attention, si vous changez les options de la commande rsync, à ne pas oublier de modifier aussi le fichier &lt;code&gt;authorized_keys&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Plus besoin de chroot compliqué, vous pouvez oublier mon précédent article&amp;nbsp;: &lt;a href=&quot;/post/SFTP-chroot-rsync&quot; title=&quot;/post/SFTP-chroot-rsync&quot;&gt;/post/SFTP-chroot-rsync&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;ins&gt;Voir aussi&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;man ssh #/AUTHORIZED_KEYS FILE FORMAT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;man rsync&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;view /usr/share/doc/rsync/scripts/rrsync.gz&lt;/code&gt; (restricted rsync, vous permet de gérer précisément les options autorisées)&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Restriction-de-commande-Rsync-par-SSH#comment-form</comments>
      <wfw:comment>/post/Restriction-de-commande-Rsync-par-SSH#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/86</wfw:commentRss>
      </item>
    
  <item>
    <title>Configuration proxy I2P via un fichier PAC</title>
    <link>/post/Configuration-proxy-I2P-via-un-fichier-PAC</link>
    <guid isPermaLink="false">urn:md5:057768560668fbc15776922a329c4d6f</guid>
    <pubDate>Sun, 19 Dec 2010 23:16:00 +0100</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>Firefox</category><category>Hadopi</category><category>I2P</category>    
    <description>    &lt;p&gt;En ces temps d&amp;rsquo;Hadopi, je viens de tester le réseau I2P, qui fonctionne plutôt bien.&lt;/p&gt;


&lt;p&gt;L&amp;rsquo;installation est très facile. Il suffit de &lt;a href=&quot;http://www.i2p2.de/download.html&quot;&gt;télécharger le fichier .exe&lt;/a&gt; et de le lancer avec la commande &lt;code&gt;java -jar&lt;/code&gt; comme indiqué (ça fonctionne sous Linux, oui oui).&lt;/p&gt;


&lt;p&gt;Maintenant, si vous souhaitez accéder aux sites en .i2p, comme par exemple &lt;a href=&quot;http://forum.i2p&quot; title=&quot;http://forum.i2p&quot;&gt;http://forum.i2p&lt;/a&gt;, vous devez configurer votre navigateur pour utiliser le proxy&amp;nbsp;: &lt;code&gt;localhost:4444&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Si vous ne souhaitez pas utiliser le proxy pour vous connecter aux sites normaux non i2p, vous pouvez utiliser l&amp;rsquo;extension Firefox &lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/2464/&quot;&gt;FoxyProxy&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Vous pouvez aussi utiliser directement un fichier &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fichier_.PAC&quot;&gt;PAC (Proxy Auto-Config)&lt;/a&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
function FindProxyForURL(url, host) {
    if (dnsDomainIs(host, &amp;quot;.i2p&amp;quot;)) {
        return &amp;quot;PROXY localhost:4444&amp;quot;;
    } else {
        return &amp;quot;DIRECT&amp;quot;;
    }
}
&lt;/pre&gt;


&lt;p&gt;Ensuite, vous configurez Firefox, ou les préférences proxy de Gnome pour utiliser le fichier &lt;code&gt;file:///chemin/vers/proxy.pac&lt;/code&gt; comme configuration.&lt;/p&gt;


&lt;p&gt;Attention cependant&amp;nbsp;: avec cette méthode, un eepsite (un site .i2p) mal intentionné peu arriver à &lt;a href=&quot;http://forum.i2p2.de/viewtopic.php?p=30030&quot;&gt;détecter votre vraie adresse IP&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;Liens&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.i2p2.de/&quot; title=&quot;http://www.i2p2.de/&quot;&gt;http://www.i2p2.de/&lt;/a&gt; Le site de I2P&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forum.i2p/viewtopic.php?p=30030&quot; title=&quot;http://forum.i2p/viewtopic.php?p=30030&quot;&gt;http://forum.i2p/viewtopic.php?p=30030&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forum.i2p2.de/viewtopic.php?p=30030&quot; title=&quot;http://forum.i2p2.de/viewtopic.php?p=30030&quot;&gt;http://forum.i2p2.de/viewtopic.php?p=30030&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Configuration-proxy-I2P-via-un-fichier-PAC#comment-form</comments>
      <wfw:comment>/post/Configuration-proxy-I2P-via-un-fichier-PAC#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/85</wfw:commentRss>
      </item>
    
  <item>
    <title>Clementine : un bon lecteur de musique</title>
    <link>/post/Clementine-%3A-un-bon-lecteur-de-musique</link>
    <guid isPermaLink="false">urn:md5:214ab4b5e9a47ae8c58225ca010a6b87</guid>
    <pubDate>Tue, 30 Nov 2010 21:11:00 +0100</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>Amarok</category><category>Clementine</category><category>Debian</category><category>musique</category><category>Ubuntu</category>    
    <description>    &lt;p&gt;J&amp;rsquo;ai découvert &lt;a href=&quot;http://code.google.com/p/clementine-player/&quot;&gt;Clementine&lt;/a&gt; il y a quelques temps déjà.&lt;/p&gt;


&lt;p&gt;Il n&amp;rsquo;existe pas de paquet ni sous Ubuntu, ni sous Debian, mais le site officiel fournit un paquet .deb pour votre version d&amp;rsquo;Ubuntu préférée.
Il existe même en version Mac OS X et Windows...&lt;/p&gt;


&lt;p&gt;Un petit clique sur le fichier .deb correspondant à votre distrib Ubuntu devrait suffire pour l&amp;rsquo;installer.&lt;/p&gt;


&lt;p&gt;J&amp;rsquo;ai testé des tonnes de lecteurs (&lt;a href=&quot;http://amarok.kde.org/&quot;&gt;Amarok&lt;/a&gt;, &lt;a href=&quot;http://projects.gnome.org/rhythmbox/&quot;&gt;Rythmbox&lt;/a&gt;, le vieux &lt;a href=&quot;http://www.xmms.org/&quot;&gt;XMMS&lt;/a&gt;, &lt;a href=&quot;http://www.exaile.org/&quot;&gt;Exaile&lt;/a&gt;, &lt;a href=&quot;http://www.listen-project.org/&quot;&gt;Listen&lt;/a&gt;, &lt;a href=&quot;http://projects.gnome.org/totem/&quot;&gt;Totem&lt;/a&gt;...).&lt;/p&gt;


&lt;p&gt;Clementine est un dérivé d&amp;rsquo;Amarok, très simplifié, et s&amp;rsquo;intègre très bien dans Gnome grâce aux librairies Qt4.&lt;/p&gt;


&lt;p&gt;Bref, je suis heureux d&amp;rsquo;avoir découvert ce logiciel, que je vous recommande.&lt;/p&gt;</description>
    
    
    
          <comments>/post/Clementine-%3A-un-bon-lecteur-de-musique#comment-form</comments>
      <wfw:comment>/post/Clementine-%3A-un-bon-lecteur-de-musique#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/84</wfw:commentRss>
      </item>
    
  <item>
    <title>Routeur Exim : filtre destinataire</title>
    <link>/post/Routeur-Exim-%3A-filtre-destinataire</link>
    <guid isPermaLink="false">urn:md5:e21f645fb3680749fdb45afbcf80a8cc</guid>
    <pubDate>Tue, 09 Nov 2010 23:51:00 +0100</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>courriel</category><category>Debian</category><category>Exim</category><category>Spam</category>    
    <description>    &lt;p&gt;Dans un &lt;a href=&quot;/post/Un-courriel-fourre-tout-avec-Exim-%28catch-all%29&quot;&gt;précédent billet&lt;/a&gt;, j&amp;rsquo;expliquais comment mettre en place un &quot;mangeur de courriel&quot; avec Exim, de manière à se créer des adresses multiples qui redirigent toutes vers la même destination&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
catchall_pub:
  driver = redirect
  domains = pub.mondomaine.com
  data = utilisateur@mondomaine.com
&lt;/pre&gt;


&lt;p&gt;Ensuite, j&amp;rsquo;expliquais que sur l&amp;rsquo;adresse destination, on pouvait mettre en place un filtre Sieve ou Exim via un fichier &lt;code&gt;.forward&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;On peut vouloir mettre en place le filtre directement dans Exim, par soucis de centralisation de configuration, ou tout simplement si la boîte destination ne supporte pas les filtres.&lt;/p&gt;


&lt;p&gt;Il suffit d&amp;rsquo;ajouter l&amp;rsquo;option &lt;code&gt;local_parts&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
catchall_pub:
  driver = redirect
  domains = pub.mondomaine.com
  local_parts = !/etc/exim4/pub.mondomaine.com.blacklist
  data = utilisateur@mondomaine.com
&lt;/pre&gt;


&lt;p&gt;Dans &lt;code&gt;/etc/exim4/pub.mondomaine.com.blacklist&lt;/code&gt;, on place les adresses rejetées, une par ligne&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
toto1
titi2
&lt;/pre&gt;


&lt;p&gt;Ainsi, les adresses toto1@pub.mondomaine.com et titi2@pub.mondomaine.com sont désormais rejetées.&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;Doc Exim4&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.exim.org/exim-html-4.30/doc/html/spec_22.html&quot;&gt;The redirect router&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.exim.org/exim-html-4.30/doc/html/spec_3.html#SECT3.11&quot;&gt;Router preconditions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.exim.org/exim-html-4.30/doc/html/spec_10.html#SECT10.3&quot;&gt;File names in lists&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Routeur-Exim-%3A-filtre-destinataire#comment-form</comments>
      <wfw:comment>/post/Routeur-Exim-%3A-filtre-destinataire#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/83</wfw:commentRss>
      </item>
    
  <item>
    <title>Précharger un contenu web avec la balise link prefetch, ou du javascript</title>
    <link>/post/Pr%C3%A9charger-un-contenu-web-avec-la-balise-link-prefetch%2C-ou-du-javascript</link>
    <guid isPermaLink="false">urn:md5:f71dcde0c3b81d1d4546b949c5794c8a</guid>
    <pubDate>Sat, 30 Oct 2010 16:50:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>Bizou</category><category>Chromium</category><category>Firefox</category><category>HTTP</category><category>Javascript</category><category>PHP</category>    
    <description>    &lt;p&gt;Pour la gallerie d&amp;rsquo;images php &lt;a href=&quot;http://www.positon.org/bizou/fr.html&quot;&gt;Bizou&lt;/a&gt;, j&amp;rsquo;ai cherché différentes manière de précharger l&amp;rsquo;image suivante pour le mode &quot;visualisation&quot; (&lt;a href=&quot;http://www.positon.org/images/view.php/2008%20Corse/001%20ajaccio.jpg&quot;&gt;exemple&lt;/a&gt;).&lt;/p&gt;


&lt;p&gt;Sous &lt;a href=&quot;http://www.mozilla.com/firefox/&quot;&gt;Firefox&lt;/a&gt;, c&amp;rsquo;est très simple. Il suffit d&amp;rsquo;utiliser la balise suivante pour que le navigateur précharge les contenus indiqués.
Les contenus sont préchargés en arrière-plan une fois que la page courante est chargée intégralement.&lt;/p&gt;

&lt;pre class=&quot;html&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;rel&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;prefetch&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/images/nextimage.jpg&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Sauf que pour le moment seul Firefox supporte cette fonctionnalité.
Note&amp;nbsp;: &lt;a href=&quot;http://code.google.com/p/chromium/issues/detail?id=52878&quot;&gt;un ticket est ouvert&lt;/a&gt; sur le sujet pour le projet &lt;a href=&quot;http://www.chromium.org/Home&quot;&gt;Chromium&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Pour les autres navigateurs que Firefox, il faut utiliser du Javascript déclenché à l&amp;rsquo;événement &lt;code&gt;window.onload&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;javascript&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;script type=&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;
window.&lt;span style=&quot;color: #000066;&quot;&gt;onload&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// pour les images&lt;/span&gt;
    &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; im = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Image&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    im.&lt;span style=&quot;color: #006600;&quot;&gt;src&lt;/span&gt; = &lt;span style=&quot;color: #3366CC;&quot;&gt;'/images/nextimage.jpg'&lt;/span&gt;;
    &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// et pour les autres contenus&lt;/span&gt;
    &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; req = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; XMLHttpRequest&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    req.&lt;span style=&quot;color: #000066;&quot;&gt;open&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'GET'&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;'nextpage.php'&lt;/span&gt;, &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    req.&lt;span style=&quot;color: #006600;&quot;&gt;send&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Attention aux en-têtes HTTP de cache envoyés par le serveur vers le navigateur.
Pour un préchargement efficace de page PHP, il faudra que votre script envoie un en-tête Expires.&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;header&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'Expires: '&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;gmdate&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'D, d M Y H:i:s &lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\G&lt;/span&gt;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\M&lt;/span&gt;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\T&lt;/span&gt;'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;time&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;3600&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Enfin, pour une détection simple du navigateur depuis le script PHP&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;strpos&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$_SERVER&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'HTTP_USER_AGENT'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'Firefox'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;!==&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;link rel&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;prefetch&amp;quot;&lt;/span&gt; href&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;nextpage.php&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;/&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;script type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;
window&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;onload &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;var&lt;/span&gt; req &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; XMLHttpRequest&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;
    req&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;open&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'GET'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'nextpage.php'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;
    req&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;send&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;&lt;ins&gt;Liens&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en/Link_prefetching_FAQ&quot; title=&quot;https://developer.mozilla.org/en/Link_prefetching_FAQ&quot;&gt;https://developer.mozilla.org/en/Link_prefetching_FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.4thkingdom.com/public/computers/789073-web-site-speed-prefetching-images-css/view-post.html&quot; title=&quot;http://www.4thkingdom.com/public/computers/789073-web-site-speed-prefetching-images-css/view-post.html&quot;&gt;http://www.4thkingdom.com/public/computers/789073-web-site-speed-prefetching-images-css/view-post.html&lt;/a&gt; (en jQuery)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://orip.org/2009/03/prefetching-javascript-or-anything-with.html&quot; title=&quot;http://orip.org/2009/03/prefetching-javascript-or-anything-with.html&quot;&gt;http://orip.org/2009/03/prefetching-javascript-or-anything-with.html&lt;/a&gt; (en jQuery)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.positon.org/git/?p=bizou.git;a=commitdiff;h=3287102a856be64262a9db0c98e7be7f9c26dbb8&quot;&gt;commit sur Bizou&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Pr%C3%A9charger-un-contenu-web-avec-la-balise-link-prefetch%2C-ou-du-javascript#comment-form</comments>
      <wfw:comment>/post/Pr%C3%A9charger-un-contenu-web-avec-la-balise-link-prefetch%2C-ou-du-javascript#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/82</wfw:commentRss>
      </item>
    
  <item>
    <title>Bizou - une galerie php KISS</title>
    <link>/post/Bizou-une-galerie-php-KISS</link>
    <guid isPermaLink="false">urn:md5:117af180b77cc30a4a8c8fe2fc88f86d</guid>
    <pubDate>Sun, 24 Oct 2010 23:34:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
            
    <description>    &lt;p&gt;J&amp;rsquo;ai passé des heures à chercher sur le Web LE logiciel PHP qu&amp;rsquo;il me fallait, sans succès.&lt;/p&gt;


&lt;p&gt;Les qualités requises&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Logiciel libre&lt;/li&gt;
&lt;li&gt;Pas de base de données, dépôt des images dans un dossier et c&amp;rsquo;est tout.&lt;/li&gt;
&lt;li&gt;Un code compréhensible que je puisse bricoler si besoin.&lt;/li&gt;
&lt;li&gt;Le nombre de vignette en largeur qui s&amp;rsquo;adapte à la taille du navigateur.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et voila, j&amp;rsquo;ai passé une autre fin de semaine recodant allègrement quelque chose qui existe surement déjà, mais au moins c&amp;rsquo;est simple et ça fait ce que je veux&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.positon.org/bizou/fr.html&quot; title=&quot;http://www.positon.org/bizou/fr.html&quot;&gt;http://www.positon.org/bizou/fr.html&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.positon.org/images/&quot;&gt;La démo ici&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>/post/Bizou-une-galerie-php-KISS#comment-form</comments>
      <wfw:comment>/post/Bizou-une-galerie-php-KISS#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/81</wfw:commentRss>
      </item>
    
  <item>
    <title>Une solution au problème umask : inotify pour forcer les droits</title>
    <link>/post/Une-solution-au-probl%C3%A8me-umask-%3A-inotify-pour-forcer-les-droits</link>
    <guid isPermaLink="false">urn:md5:ceebcc24c18a47cb1be4143a12cd5cdd</guid>
    <pubDate>Fri, 22 Oct 2010 00:29:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>bash</category><category>inotify</category><category>Linux</category><category>SFTP</category><category>umask</category>    
    <description>    &lt;p&gt;Trouver une bonne solution au problème du partage des fichiers entre utilisateurs Linux est un cauchemar.&lt;/p&gt;


&lt;p&gt;Si elle convient il y a la solution de l&amp;rsquo;UID unique. Tous les clients accèdent aux fichiers avec le même UID utilisateur. Seulement on ne sais pas qui fait quoi. Et les utilisateurs ne peuvent pas gérer finement leurs droits.&lt;/p&gt;


&lt;p&gt;Problème&amp;nbsp;: le &lt;a href=&quot;http://en.wikipedia.org/wiki/Umask&quot;&gt;umask&lt;/a&gt; par défaut est TOUJOURS 0022, ce qui fait que tout fichier créé aura les droits &lt;code&gt;rw– r–– r––&lt;/code&gt;. Seul le propriétaire peut écrire et personne d&amp;rsquo;autre.
Pour partager les fichier, un groupe doit aussi pouvoir écrire.&lt;/p&gt;


&lt;p&gt;On peut changer ce umask. Pour la ligne de commande, ça se passe dans les fichiers &lt;code&gt;.bashrc&lt;/code&gt; ou &lt;code&gt;.profile&lt;/code&gt;, ou dans &lt;code&gt;/etc/profile&lt;/code&gt; pour tous les utilisateurs. Pour un partage &lt;a href=&quot;http://en.wikipedia.org/wiki/SSH_file_transfer_protocol&quot;&gt;SFTP&lt;/a&gt;, on s&amp;rsquo;en sort avec &lt;a href=&quot;http://jeff.robbins.ws/articles/setting-the-umask-for-sftp-transactions&quot;&gt;un bricolage&lt;/a&gt;. Pour le serveur Apache, on s&amp;rsquo;en sort avec le fichier &lt;code&gt;/etc/apache2/envvars&lt;/code&gt; sous Debian.&lt;/p&gt;


&lt;p&gt;Si le partage de fichier se fait via un seul service, c&amp;rsquo;est simple de changer le umask, sinon, c&amp;rsquo;est compliqué. Et même en changeant tous les umask de tous les services, tout n&amp;rsquo;est pas parfait&amp;nbsp;: par exemple, &lt;a href=&quot;http://live.gnome.org/Nautilus&quot;&gt;Nautilus&lt;/a&gt; via SFTP n&amp;rsquo;en fait qu&amp;rsquo;à sa tête. Certains clients posent le fichiers et font un chmod derrière&amp;nbsp;: l&amp;rsquo;enfer. Il y a aussi la puissance des &lt;a href=&quot;http://www.suse.de/~agruen/acl/linux-acls/online/&quot;&gt;ACL POSIX&lt;/a&gt; qui permettent de forcer les droits. Mais là encore, certains clients vous poserons problème.&lt;/p&gt;


&lt;p&gt;Enfin, on ne souhaite pas forcément que tous les fichiers soient posés avec l&amp;rsquo;écriture pour le groupe. On peut souhaiter une meilleure granularité.&lt;/p&gt;


&lt;p&gt;D&amp;rsquo;expérience, j&amp;rsquo;ai abandonné l&amp;rsquo;idée du correctif à la source pour me tourner vers un bricolage agissant APRÈS la création du fichier.
La solution la plus simple est bien sûr la tâche cron, qui toutes les X minutes fait un &lt;code&gt;chmod -R g+w&lt;/code&gt; sur un dossier. Déjà la solution n&amp;rsquo;est pas immédiate car désynchronisée de la création de fichiers, et elle rajoute une (très) petite charge supplémentaire à votre système.&lt;/p&gt;


&lt;p&gt;Je propose une solution à base d&amp;rsquo;&lt;a href=&quot;http://en.wikipedia.org/wiki/Inotify&quot;&gt;inotify&lt;/a&gt;, qui force les droits dès qu&amp;rsquo;un fichier est créé&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
aptitude install inotify-tools
&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;Et la commande magique&amp;nbsp;:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
inotifywait -mrq -e CREATE --format %w%f /tmp/mytest/ | while read FILE; do chmod g=u &amp;quot;$FILE&amp;quot;; done
&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;MAJ 2010-10-30&lt;/strong&gt;
Pour gérer les espaces en fin de fichiers, et les antislashs&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
inotifywait -mrq -e CREATE --format %w%f /tmp/mytest/ | while IFS= read -r FILE; do chmod g=u &amp;quot;$FILE&amp;quot;; done
&lt;/pre&gt;

&lt;p&gt;Merci à vitoreiji (&lt;a href=&quot;http://en.positon.org/post/A-solution-to-the-umask-problem%3A-inotify-to-force-permissions#c182&quot;&gt;commentaires&lt;/a&gt;)&lt;/p&gt;


&lt;p&gt;La commande &lt;code&gt;inotifywait&lt;/code&gt; écoute les événements du dossier &lt;code&gt;/tmp/mytest&lt;/code&gt;. Dès qu&amp;rsquo;un fichier est créé, il est affiché sur la sortie standard. Chaque ligne-fichier est ensuite lue par la boucle &lt;code&gt;while&lt;/code&gt; et les droits sont changés. Le &lt;code&gt;g=u&lt;/code&gt; donne au groupe les mêmes droits que l&amp;rsquo;utilisateur (avec &lt;code&gt;g+w&lt;/code&gt;, si l&amp;rsquo;utilisateur pose un fichier &lt;code&gt;rw– ––– –––&lt;/code&gt;, les droits deviendraient &lt;code&gt;rw– –w– –––&lt;/code&gt;).&lt;/p&gt;


&lt;p&gt;Vous pouvez maintenant tester la création/copie de fichiers/dossiers. Même un &lt;code&gt;mkdir -p a/b/c/d/e&lt;/code&gt; doit fonctionner.&lt;/p&gt;


&lt;p&gt;Pour terminer, on ajoutera tout cela dans un script de démarrage&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
vi /usr/local/bin/inotifywait.sh &amp;amp;&amp;amp; chmod +x /usr/local/bin/inotifywait.sh
#!/bin/sh
# Take the directory name as argument

inotifywait -mrq -e CREATE --format %w%f &amp;quot;$1&amp;quot; | while read FILE
do
	chmod g=u &amp;quot;$FILE&amp;quot;
done
&lt;/pre&gt;

&lt;pre&gt;
vi /etc/init.d/inotifywait.sh &amp;amp;&amp;amp; chmod +x /etc/init.d/inotifywait.sh
#! /bin/sh

case &amp;quot;$1&amp;quot; in
  start|&amp;quot;&amp;quot;)

	rm -f /tmp/inotifywait.log
	/usr/local/bin/inotifywait.sh /path/to/dir/ &amp;gt;/tmp/inotifywait.log 2&amp;gt;&amp;amp;1 &amp;amp;
	
	;;
  restart|reload|force-reload)
	echo &amp;quot;Error: argument '$1' not supported&amp;quot; &amp;gt;&amp;amp;2
	exit 3
	;;
  stop)
	# killall inotifywait ???
	;;
  *)
	echo &amp;quot;Usage: inotifywait.sh [start|stop]&amp;quot; &amp;gt;&amp;amp;2
	exit 3
	;;
esac

:
&lt;/pre&gt;


&lt;p&gt;(sous Debian)&lt;/p&gt;
&lt;pre&gt;
update-rc.d inotifywait.sh defaults
&lt;/pre&gt;


&lt;p&gt;Note&amp;nbsp;: un inconvénient&amp;nbsp;: il y a une limite sur le nombre de fichier surveillés, voir l&amp;rsquo;option &lt;code&gt;-r&lt;/code&gt; dans &lt;code&gt;man inotifywait&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Et enfin la touche finale qui est utile pour que les fichiers créés conservent le groupe du dossier parent&amp;nbsp;: le &lt;a href=&quot;http://en.wikipedia.org/wiki/Setuid&quot;&gt;bit setgid&lt;/a&gt; au groupe pour tous les dossiers.&lt;/p&gt;
&lt;pre&gt;
find /path/to/dir -type d -exec chmod g+s {} \;
&lt;/pre&gt;


&lt;p&gt;&lt;ins&gt;Liens&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;man inotifywait&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/rvoicilas/inotify-tools/wiki&quot;&gt;inotify-tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Inotify&quot; title=&quot;http://en.wikipedia.org/wiki/Inotify&quot;&gt;http://en.wikipedia.org/wiki/Inotify&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Une-solution-au-probl%C3%A8me-umask-%3A-inotify-pour-forcer-les-droits#comment-form</comments>
      <wfw:comment>/post/Une-solution-au-probl%C3%A8me-umask-%3A-inotify-pour-forcer-les-droits#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/80</wfw:commentRss>
      </item>
    
  <item>
    <title>ProFTPD avec fichier de mots de passe AuthUserFile</title>
    <link>/post/Proftpd-avec-fichier-de-mots-de-passe-AuthUserFile</link>
    <guid isPermaLink="false">urn:md5:77cfb954f30a14eb98f5980a08a80aea</guid>
    <pubDate>Mon, 11 Oct 2010 00:45:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>Debian</category><category>ProFTPD</category>    
    <description>    &lt;p&gt;Par défaut sous Debian, &lt;a href=&quot;http://www.proftpd.org&quot;&gt;ProFTPD&lt;/a&gt; utilise uniquement la base d&amp;rsquo;utilisateurs système de &lt;code&gt;/etc/passwd&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Pour ajouter des utilisateurs &quot;virtuels&quot;, il faut procéder comme suit&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;Dans &lt;code&gt;/etc/proftpd/proftpd.conf&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
DefaultRoot ~
AuthUserFile /etc/proftpd/ftpd.passwd
RequireValidShell off
&lt;/pre&gt;


&lt;p&gt;Puis relancer proftpd&amp;nbsp;: &lt;code&gt;/etc/init.d/proftpd restart&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Fichier des utilisateurs&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
vi /etc/proftpd/ftpd.passwd
username:HASH:1011:1011:MyUserName:/home/ftp/directory:/bin/true
&lt;/pre&gt;


&lt;p&gt;Vous pouvez générer les lignes du fichier à l&amp;rsquo;aide de la commande &lt;code&gt;ftpasswd&lt;/code&gt;, mais je trouve plus simple de générer le mot de passe avec la commande&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
mkpasswd --hash=md5
&lt;/pre&gt;

&lt;p&gt;Puis collez le HASH dans le fichier des mots de passe.&lt;/p&gt;


&lt;p&gt;On corrige les droits du fichier de mot de passe&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
chown proftpd /etc/proftpd/ftpd.passwd
chmod go-r /etc/proftpd/ftpd.passwd
&lt;/pre&gt;


&lt;p&gt;Enfin, il suffit de tester.&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;Liens&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.proftpd.org/docs/howto/AuthFiles.html&quot; title=&quot;http://www.proftpd.org/docs/howto/AuthFiles.html&quot;&gt;http://www.proftpd.org/docs/howto/AuthFiles.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.proftpd.org/docs/directives/linked/config_ref_AuthUserFile.html&quot; title=&quot;http://www.proftpd.org/docs/directives/linked/config_ref_AuthUserFile.html&quot;&gt;http://www.proftpd.org/docs/directives/linked/config_ref_AuthUserFile.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Proftpd-avec-fichier-de-mots-de-passe-AuthUserFile#comment-form</comments>
      <wfw:comment>/post/Proftpd-avec-fichier-de-mots-de-passe-AuthUserFile#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/79</wfw:commentRss>
      </item>
    
  <item>
    <title>Problème Amarok sous Ubuntu Lucid</title>
    <link>/post/Probl%C3%A8me-Amarok-sous-Ubuntu-Lucid</link>
    <guid isPermaLink="false">urn:md5:60097e83651a2b97f4be289114e9de9e</guid>
    <pubDate>Tue, 21 Sep 2010 21:23:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>Amarok</category><category>Lucid</category><category>Ubuntu</category>    
    <description>    &lt;p&gt;Chez moi en tout cas, &lt;a href=&quot;http://amarok.kde.org/&quot;&gt;Amarok&lt;/a&gt; ne fonctionne pas sous Ubuntu Lucid.&lt;/p&gt;


&lt;p&gt;Impossible de lire la moindre piste&amp;nbsp;: il saute à la suivante.&lt;/p&gt;


&lt;p&gt;La solution simple&amp;nbsp;: installer le paquet &lt;a href=&quot;apt://libxine1-ffmpeg&quot; title=&quot;apt://libxine1-ffmpeg&quot;&gt;apt://libxine1-ffmpeg&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;
sudo aptitude install libxine1-ffmpeg
&lt;/pre&gt;


&lt;p&gt;Relancer éventuellement Amarok.&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;Source&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://doc.ubuntu-fr.org/amarok&quot; title=&quot;http://doc.ubuntu-fr.org/amarok&quot;&gt;http://doc.ubuntu-fr.org/amarok&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Probl%C3%A8me-Amarok-sous-Ubuntu-Lucid#comment-form</comments>
      <wfw:comment>/post/Probl%C3%A8me-Amarok-sous-Ubuntu-Lucid#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/78</wfw:commentRss>
      </item>
    
  <item>
    <title>Changer les tuiles dans NetHack (xnethack)</title>
    <link>/post/Changer-les-tuiles-dans-NetHack-%28xnethack%29</link>
    <guid isPermaLink="false">urn:md5:24e9eee853fdf4852911c32ddc1bc6b2</guid>
    <pubDate>Mon, 05 Jul 2010 22:19:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>Debian</category><category>NetHack</category><category>Ubuntu</category><category>XPM</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.nethack.org/&quot;&gt;NetHack&lt;/a&gt;, un des meilleurs jeux qui soient.&lt;/p&gt;


&lt;p&gt;Je trouve le &lt;a href=&quot;http://nethackwiki.com/wiki/File:Vanilla_tiles.png&quot;&gt;thème des tuiles par défaut dans xnethack&lt;/a&gt; assez laid. Sous Debian / Ubuntu (paquet &lt;code&gt;nethack-x11&lt;/code&gt;), le fichier des tuiles est obligatoirement au format &lt;a href=&quot;http://fr.wikipedia.org/wiki/X_PixMap&quot;&gt;XPM&lt;/a&gt;. Il est configuré dans le fichier &lt;code&gt;/etc/X11/app-defaults/NetHack&lt;/code&gt; avec le xpm&amp;nbsp;: &lt;code&gt;/usr/share/pixmaps/nethack/x11tiles&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Le fichier doit être au format &lt;a href=&quot;http://fr.wikipedia.org/wiki/X_PixMap&quot;&gt;XPM&lt;/a&gt;, avoir une certaine taille, et pas trop de couleurs différentes, sinon le temps de chargement explose chez moi (plusieurs minutes).&lt;/p&gt;


&lt;p&gt;Voici comment le modifier sous Debian / Ubuntu&amp;nbsp;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Exemple&amp;nbsp;: sur la page &lt;a href=&quot;http://www.multifoliate.com/nh/&quot; title=&quot;http://www.multifoliate.com/nh/&quot;&gt;http://www.multifoliate.com/nh/&lt;/a&gt;, récupérez le fichier &lt;code&gt;chozo32b.zip&lt;/code&gt; (lien &lt;em&gt;NetHack 3.4.2 (32x32) (modified by me)&lt;/em&gt;). L&amp;rsquo;extraire pour obtenir &lt;code&gt;chozo32b.bmp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;L&amp;rsquo;ouvrir avec &lt;a href=&quot;http://www.gimp.org/&quot;&gt;Gimp&lt;/a&gt; et le recouper à la taille 1280x864 (pour supprimer le noir inutile en bas). Vous pouvez indexer l&amp;rsquo;image en 256 couleurs puis l&amp;rsquo;enregistrer en XPM, ça fonctionne mais c&amp;rsquo;est moche.&lt;/li&gt;
&lt;li&gt;Pour avoir mieux, l&amp;rsquo;enregistrer au format &lt;a href=&quot;http://en.wikipedia.org/wiki/Portable_Network_Graphics&quot;&gt;PNG&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Installer le paquet &lt;code&gt;imagemagick&lt;/code&gt;, puis&amp;nbsp;: &lt;code&gt;convert -depth 5 chozo32b.png chozo5.png&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Ouvrir chozo5.png avec Gimp puis l&amp;rsquo;enregistrer au format XPM.&lt;/li&gt;
&lt;li&gt;Éditez &lt;code&gt;/etc/X11/app-defaults/NetHack&lt;/code&gt; puis remplacez &lt;code&gt;/usr/share/pixmaps/nethack/x11tiles&lt;/code&gt; par le chemin vers &lt;code&gt;chozo5.xpm&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Enfin, rechargez les ressources X&amp;nbsp;: &lt;code&gt;xrdb -merge /etc/X11/app-defaults/NetHack&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Lancez votre jeu favori&amp;nbsp;: &lt;code&gt;xnethack&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;MAJ 20100921&lt;/strong&gt;
Le fichier final gzippé&amp;nbsp;: &lt;a href=&quot;/public/chozo5.xpm.gz&quot;&gt;chozo5.xpm.gz&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;Notes&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;convert&lt;/code&gt; enregistre systématiquement les xpm en 256 couleurs, je ne sais pas pourquoi.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;head image.xpm&lt;/code&gt; vous donne les première lignes du fichier XPM qui contiennent le nombre de couleurs différentes.&lt;/li&gt;
&lt;li&gt;Les tuiles de Abigada sont celles par défaut dans la version IPhone de NetHack.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;ins&gt;Liens&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.multifoliate.com/nh/&quot;&gt;Tuiles de Abigada&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://nethackwiki.com/wiki/Tileset&quot;&gt;Les tuiles sur le wiki Nethack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.wotsit.org/list.asp?search=XPM&quot;&gt;PDF de spécification du format XPM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
          <enclosure url="/public/chozo5.xpm.gz"
      length="599519" type="application/x-gzip" />
    
    
          <comments>/post/Changer-les-tuiles-dans-NetHack-%28xnethack%29#comment-form</comments>
      <wfw:comment>/post/Changer-les-tuiles-dans-NetHack-%28xnethack%29#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/77</wfw:commentRss>
      </item>
    
  <item>
    <title>Tunnel SSH inverse pour connexion SSH vers une machine NATée</title>
    <link>/post/Tunnel-SSH-inverse-pour-connexion-SSH-vers-une-machine-NAT%C3%A9e</link>
    <guid isPermaLink="false">urn:md5:a3b8f98ef72b624590a4d14e5788396d</guid>
    <pubDate>Sun, 20 Jun 2010 23:48:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>NAT</category><category>SSH</category>    
    <description>    &lt;p&gt;Comment prendre la main en SSH sur un serveur planqué derrière une passerelle NAT&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;On utilise un tunnel SSH inverse&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
nated-host$ ssh -R 2222:localhost:22 anyuser@public-host
anyuser@public-host$
&lt;/pre&gt;


&lt;p&gt;Cette commande ouvre le port 2222 sur &lt;code&gt;public-host&lt;/code&gt; et le redirige vers le port 22 local de &lt;code&gt;nated-host&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Et pour finir, depuis &lt;code&gt;public-host&lt;/code&gt;, on se connecte en ssh sur le port 2222 local, pour tomber sur &lt;code&gt;nated-host&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
public-host$ ssh -p2222 localhost
nated-host$
&lt;/pre&gt;


&lt;p&gt;&lt;ins&gt;Références&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;man ssh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://articles.techrepublic.com.com/5100-10878_11-5779944.html?tag=nl.e011&quot; title=&quot;http://articles.techrepublic.com.com/5100-10878_11-5779944.html?tag=nl.e011&quot;&gt;http://articles.techrepublic.com.com/5100-10878_11-5779944.html?tag=nl.e011&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.howtoforge.com/reverse-ssh-tunneling&quot; title=&quot;http://www.howtoforge.com/reverse-ssh-tunneling&quot;&gt;http://www.howtoforge.com/reverse-ssh-tunneling&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Tunnel-SSH-inverse-pour-connexion-SSH-vers-une-machine-NAT%C3%A9e#comment-form</comments>
      <wfw:comment>/post/Tunnel-SSH-inverse-pour-connexion-SSH-vers-une-machine-NAT%C3%A9e#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/76</wfw:commentRss>
      </item>
    
  <item>
    <title>Windows XP cassé après mise à jour Ubuntu Lucid</title>
    <link>/post/Windows-XP-cass%C3%A9-apr%C3%A8s-mise-%C3%A0-jour-Ubuntu-Lucid</link>
    <guid isPermaLink="false">urn:md5:5f0627327bc32dd7f280d5b1d8ee71c9</guid>
    <pubDate>Sun, 20 Jun 2010 23:12:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>Grub</category><category>Lucid</category><category>TestDisk</category><category>Ubuntu</category><category>Windows</category>    
    <description>    &lt;p&gt;Un de mes amis avait un PC en double boot Windows XP / Ubuntu Karmic. Suite à la mise à jour vers Lucid, Windox ne démarre plus (lignes bizarres à l&amp;rsquo;écran après Grub...).&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.cgsecurity.org/wiki/TestDisk&quot;&gt;TestDisk&lt;/a&gt; nous a sauvé la vie&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
sudo aptitude install testdisk
sudo testdisk
&lt;/pre&gt;

&lt;ol&gt;
&lt;li&gt;Choisir &lt;code&gt;[ Create ]  Create a new log file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Choisir le disque physique du windows, puis &lt;code&gt;[Proceed ]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Choisir &lt;code&gt;[ Continue ]  Continue even if there are hidden data&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Choisir &lt;code&gt;[Intel  ]  Intel/PC partition&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[ Advanced ]  Filesystem Utils&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Sur la partition Windows XP, le &lt;code&gt;boot sector&lt;/code&gt; est soit mauvais (&lt;code&gt;bad&lt;/code&gt;), soit non identique au secteur de backup (&lt;code&gt;Sectors are not identical.&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Choisir &lt;code&gt;[ Backup BS ]&lt;/code&gt; pour copier le secteur de sauvegarde dans le secteur principal.&lt;/li&gt;
&lt;li&gt;Valider, quitter, redémarrez et testez.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;ins&gt;Sources&lt;/ins&gt;&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step#NTFS_Boot_sector_recovery&quot; title=&quot;http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step#NTFS_Boot_sector_recovery&quot;&gt;http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step#NTFS_Boot_sector_recovery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ubuntuforums.org/showthread.php?p=9263959&quot; title=&quot;http://ubuntuforums.org/showthread.php?p=9263959&quot;&gt;http://ubuntuforums.org/showthread.php?p=9263959&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Windows-XP-cass%C3%A9-apr%C3%A8s-mise-%C3%A0-jour-Ubuntu-Lucid#comment-form</comments>
      <wfw:comment>/post/Windows-XP-cass%C3%A9-apr%C3%A8s-mise-%C3%A0-jour-Ubuntu-Lucid#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/75</wfw:commentRss>
      </item>
    
  <item>
    <title>Des applications sous licence libre pour Android</title>
    <link>/post/Des-applications-sous-licence-libre-pour-Android</link>
    <guid isPermaLink="false">urn:md5:4cf4b6a9d5d42c3c7b7cb5f81f31616d</guid>
    <pubDate>Fri, 18 Jun 2010 00:07:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>Android</category><category>Google</category><category>libre</category>    
    <description>    &lt;p&gt;J&amp;rsquo;ai récemment fait l&amp;rsquo;acquisition d&amp;rsquo;un &lt;a href=&quot;http://fr.wikipedia.org/wiki/HTC_G1&quot;&gt;HTC Dream&lt;/a&gt;, sur lequel j&amp;rsquo;ai rapidement installé la ROM alternative &lt;a href=&quot;http://www.cyanogenmod.com/&quot;&gt;CyanogenMod&lt;/a&gt; qui apporte plusieurs petits trucs en plus, surtout pour les bidouilleurs linuxiens comme moi.&lt;/p&gt;


&lt;p&gt;Mais si l&amp;rsquo;essentiel de la plateforme Google Android elle-même est libre, j&amp;rsquo;ai été déçu du peu d&amp;rsquo;applications libre disponibles sur le Google Market. Pire&amp;nbsp;: sur le market, une application est gratuite ou payante, mais on ne met rien de plus en avant.&lt;/p&gt;


&lt;p&gt;Ajoutez à cela que la recherche d&amp;rsquo;applications Android sur le market n&amp;rsquo;est possible QUE depuis l&amp;rsquo;application Google Market, et pas via votre navigateur préféré (il est quand même plus facile de chercher les applis depuis un PC).&lt;/p&gt;


&lt;p&gt;Moi qui suis très sensible à la licence des applications, j&amp;rsquo;ai actuellement le plus grand mal à trouver des applications sous licence libre / Open Source. La recherche &quot;open source android applications&quot; sur Google ne donne pas satisfaction.&lt;/p&gt;


&lt;p&gt;J&amp;rsquo;ai quand même trouvé un moteur de recherche sympa pour applis Android&amp;nbsp;: &lt;a href=&quot;http://www.cyrket.com/&quot; title=&quot;http://www.cyrket.com/&quot;&gt;http://www.cyrket.com/&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;On peut ensuite trouver des applis libres de manière efficace&amp;nbsp;: &lt;a href=&quot;http://www.cyrket.com/search?market=android&amp;amp;sort=popular&amp;amp;q=open+source&quot; title=&quot;http://www.cyrket.com/search?market=android&amp;amp;sort=popular&amp;amp;q=open+source&quot;&gt;http://www.cyrket.com/search?market=android&amp;amp;sort=popular&amp;amp;q=open+source&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Les applications intéressantes&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/htpcremote/source/browse/#svn/trunk/BigKiller&quot;&gt;Big Killer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour se débarrasser des applications qui mangent la batterie en arrière-plan.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/k9mail/&quot;&gt;K9 Mail&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un très bon client mail.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/apv/&quot;&gt;PDF Viewer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://android.hlidskialf.com/apps/filer&quot;&gt;Filer File Manager&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Libre mais la version stable est payante.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.openintents.org/en/filemanager&quot;&gt;OI File Manager&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un gestionnaire de fichier pas trop mal. Les lignes sont un peu grosses.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.openintents.org/en/notepad&quot;&gt;OI Notepad&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un editeur de texte.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/zxing/&quot;&gt;Barcode Scanner (ZXing)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://twitter.com/quicksettings&quot;&gt;Quick Battery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un widget qui affiche le pourcentage de batterie.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/apndroid/&quot;&gt;APNdroid&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Désactive les fonctionnalités 3G/EDGE/GPRS pour éviter les surprises d&amp;rsquo;explosions de forfait.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/frozenbubbleandroid/&quot;&gt;Frozen Bubble&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L&amp;rsquo;incontournable jeu.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/nethack-android/&quot;&gt;NetHack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le célèbre jeu d&amp;rsquo;aventure en mode texte. La version 1.1.3 plante, il faut installer manuellement la 1.1.2.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/swiftp/&quot;&gt;SwiFTP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;TRÈS pratique&amp;nbsp;! Un mini serveur FTP pour votre téléphone, qui vous permet de gérer vos fichiers en Wifi sans cable USB.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/connectbot/&quot;&gt;ConnectBot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour se connecter en SSH à vos serveurs.&lt;/p&gt;


&lt;p&gt;Et vous&amp;nbsp;? quelles applications Android libres utilisez-vous&amp;nbsp;?&lt;/p&gt;</description>
    
    
    
          <comments>/post/Des-applications-sous-licence-libre-pour-Android#comment-form</comments>
      <wfw:comment>/post/Des-applications-sous-licence-libre-pour-Android#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/74</wfw:commentRss>
      </item>
    
  <item>
    <title>Des portables pour les lycéens en 2011 : lettre à Georges Frêche</title>
    <link>/post/Des-portables-pour-les-lyc%C3%A9ens-en-2011-%3A-lettre-%C3%A0-Georges-Fr%C3%AAche</link>
    <guid isPermaLink="false">urn:md5:86ec9c89a7ee7ebf7eb11e363cb4006b</guid>
    <pubDate>Tue, 08 Jun 2010 23:40:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>logiciel libre</category><category>politique</category>    
    <description>    &lt;p&gt;Chers internautes, j&amp;rsquo;ai posté la lettre suivante à &lt;a href=&quot;http://fr.wikipedia.org/wiki/Georges_Fr%C3%AAche&quot;&gt;Georges Frêche&lt;/a&gt;, président du conseil régional de notre belle région du &lt;a href=&quot;http://fr.wikipedia.org/wiki/Languedoc-Roussillon&quot;&gt;Languedoc-Roussillon&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Ceci afin de faire pencher la balance de notre côté quand viendra le choix des logiciels pour nos Lycéens. Merci à mon paternel pour son aide précieuse à la rédaction.&lt;/p&gt;


&lt;p&gt;Pour le contexte&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.laregion.fr/16-vivre-en-languedoc-roussillon.htm&quot; title=&quot;http://www.laregion.fr/16-vivre-en-languedoc-roussillon.htm&quot;&gt;http://www.laregion.fr/16-vivre-en-languedoc-roussillon.htm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.laregion.fr/uploads/Externe/3e/EJO_FICHIER_67_1272959542.pdf&quot; title=&quot;http://www.laregion.fr/uploads/Externe/3e/EJO_FICHIER_67_1272959542.pdf&quot;&gt;http://www.laregion.fr/uploads/Externe/3e/EJO_FICHIER_67_1272959542.pdf&lt;/a&gt; (voir &lt;strong&gt;Page 9&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;La lettre&amp;nbsp;:&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;Objet&lt;/ins&gt; : Ordinateurs portables pour les lycéens&lt;/p&gt;


&lt;p&gt;Monsieur Frêche,&lt;/p&gt;


&lt;p&gt;Suite à la lecture de « Vivre en Languedoc Roussillon » du mois de mai, j&amp;rsquo;ai été enchanté d&amp;rsquo;apprendre que pour la rentrée 2011, chaque lycéen et apprenti se verront dotés d&amp;rsquo;un ordinateur portable. Cela prouve que la région a une vision d&amp;rsquo;avenir, pour nos jeunes, pour la maîtrise de l&amp;rsquo;outil informatique. En effet, ma fille rentrera au lycée en septembre 2011.&lt;/p&gt;


&lt;p&gt;Je tenais à vous faire part des possibilités concernant le choix du système d&amp;rsquo;exploitation ainsi que de la suite bureautique qui équipera les ordinateurs portables. Vous n&amp;rsquo;êtes pas sans savoir que ce choix n&amp;rsquo;est pas seulement technique, mais surtout « politique ».&lt;/p&gt;


&lt;p&gt;En effet, il existe &quot;Windows&quot; avec la suite Microsoft Office, et Linux avec Open Office, un système d&amp;rsquo;exploitation totalement libre et gratuit. Il y a donc 2 alternatives dont le choix sera déterminant pour la formation future des lycéens.&lt;/p&gt;


&lt;p&gt;Si le choix de Microsoft est fait, les étudiants seront formés et donc habitués à l&amp;rsquo;utilisation de ses produits, et donc dans le futur, ces étudiants achèterons des produits Microsoft. Les licences des produits Microsoft sont par ailleurs toujours gratuites pour les étudiants, jusqu&amp;rsquo;à ce que ces derniers entrent dans la vie active. Dans le choix de la région et pour l&amp;rsquo;avenir, cela sera autant de richesses qui partiront outre-atlantique. Le lobby de Microsoft sur l&amp;rsquo;administration française est la preuve que les enjeux qui en découlent sont énormes.&lt;/p&gt;


&lt;p&gt;En prenant le choix des logiciels libres, cela démontrera une forte volonté d&amp;rsquo;innovation et d&amp;rsquo;indépendance en accord avec votre politique. Les logiciels libres sont gratuits, mais surtout ils offrent une totale indépendance vis à vis de l&amp;rsquo;éditeur, car ils sont librement modifiables. Par exemple, tout document créé avec un logiciel libre sera toujours lisible par d&amp;rsquo;autres programmes libres, même plusieurs années plus tard. Ce qui n&amp;rsquo;est pas le cas pour les logiciels propriétaires (il faudra toujours acheter ces logiciels pour pouvoir lire et modifier ces anciens documents).
Les logiciels libres sont donc synonymes de durée, de partage de la connaissance et de l&amp;rsquo;innovation. Ils sont le fruit d&amp;rsquo;une communauté mondiale d&amp;rsquo;entreprises, de chercheurs et de bénévoles. Ils encouragent une économie informatique locale plutôt qu&amp;rsquo;une économie au profit des multinationales.&lt;/p&gt;


&lt;p&gt;Si vous avez besoin d&amp;rsquo;informations, je suis à votre disposition pour de plus amples renseignements. J&amp;rsquo;utilise les logiciels libres pour mon informatique personnelle, ainsi que dans le cadre de mon travail (entreprise de plus de 300 personnes travaillant quotidiennement avec Linux).&lt;/p&gt;


&lt;p&gt;En espérant avoir retenu votre attention, je vous adresse mes salutations les plus sincères.&lt;/p&gt;


&lt;p&gt;Marc Maurice&lt;/p&gt;


&lt;p&gt;Pour information :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les postes de travail de la FAC des Sciences de Montpellier sont tous sous Linux.&lt;/li&gt;
&lt;li&gt;Tous nos députés utilisent Linux et la suite bureautique Open Office (environ 1200 postes)&lt;/li&gt;
&lt;li&gt;La Gendarmerie est en train d&amp;rsquo;équiper tous les gendarmes de postes informatiques utilisant les logiciels libres (environ 70 000 postes).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ci-dessous, la croissance du logiciel libre en France :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;En 2009, + 33% avec 1,47 milliard d&amp;rsquo;euros&lt;/li&gt;
&lt;li&gt;Pour 2010, une prévision de +30%&lt;/li&gt;
&lt;li&gt;Selon une étude du Georgia Institute of Technology et de Redhat, la France est numéro 1 mondial du Logiciel Libre.&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>/post/Des-portables-pour-les-lyc%C3%A9ens-en-2011-%3A-lettre-%C3%A0-Georges-Fr%C3%AAche#comment-form</comments>
      <wfw:comment>/post/Des-portables-pour-les-lyc%C3%A9ens-en-2011-%3A-lettre-%C3%A0-Georges-Fr%C3%AAche#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/73</wfw:commentRss>
      </item>
    
  <item>
    <title>Problèmes de performance 3D avec KMS</title>
    <link>/post/Probl%C3%A8mes-de-performance-3D-avec-KMS</link>
    <guid isPermaLink="false">urn:md5:de09441a9882d1abf6d06c3ef4aae043</guid>
    <pubDate>Thu, 03 Jun 2010 13:48:00 +0200</pubDate>
    <dc:creator>dooblem</dc:creator>
        <category>Grub</category><category>jeux</category><category>KMS</category><category>Linux</category><category>Lucid</category><category>Ubuntu</category>    
    <description>    &lt;p&gt;Avec la dernière mouture d&amp;rsquo;Ubuntu Lucid 10.04 vient un nouveau module pour gérer le graphique&amp;nbsp;: &lt;a href=&quot;http://fr.wikipedia.org/wiki/Kernel-based_mode-setting&quot;&gt;KMS ou Kernel-based Mode-Setting&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Si comme moi vous rencontrez des problème de performance dans certains jeux en 3D comme Quake 3 ou TCE / Enemy Territory, essayez de désactiver KMS.
Le problème peut aussi se manifester sur la souris par de forte lenteurs, du retard, ou un manque de précision.&lt;/p&gt;


&lt;h2&gt;Grub 2&lt;/h2&gt;

&lt;p&gt;Ajoutez &lt;code&gt;nomodeset&lt;/code&gt; dans &lt;code&gt;/etc/default/grub&lt;/code&gt; puis lancer la commande &lt;code&gt;update-grub&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;
vi /etc/default/grub
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset&amp;quot;
update-grub
&lt;/pre&gt;


&lt;h2&gt;Grub 1&lt;/h2&gt;

&lt;p&gt;Ajoutez &lt;code&gt;nomodeset&lt;/code&gt; à la fin de la ligne &lt;code&gt;# kopt&lt;/code&gt; puis lancer &lt;code&gt;update-grub&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;
vi /boot/grub/menu.lst
# kopt=root=/dev/sda1 ro nomodeset
update-grub
&lt;/pre&gt;


&lt;p&gt;On m&amp;rsquo;a raconté aussi que désactiver KMS corrigeait certains problèmes de lenteur Javascript sous Firefox (Yahoo Mail...).&lt;/p&gt;</description>
    
    
    
          <comments>/post/Probl%C3%A8mes-de-performance-3D-avec-KMS#comment-form</comments>
      <wfw:comment>/post/Probl%C3%A8mes-de-performance-3D-avec-KMS#comment-form</wfw:comment>
      <wfw:commentRss>/feed/navlang:fr/atom/comments/72</wfw:commentRss>
      </item>
    
</channel>
</rss>
