<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.rodolphe.quiedeville.org/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>One more geek - Mot-clé - ll</title>
  <link>http://blog.rodolphe.quiedeville.org/index.php?</link>
  <atom:link href="http://blog.rodolphe.quiedeville.org/index.php?feed/tag/ll/rss2" rel="self" type="application/rss+xml"/>
  <description>Les tribulations d'un geek sur le web</description>
  <language>fr</language>
  <pubDate>Sat, 25 May 2013 07:49:54 +0200</pubDate>
  <copyright>CC-BY-SA</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>PyDeb from PyPI to .deb</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2013/02/PyDeb-from-PyPI-to-deb</link>
    <guid isPermaLink="false">urn:md5:35a74e1f0d33a18df1a170bdb076c388</guid>
    <pubDate>Wed, 06 Feb 2013 13:01:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Admin/Sys</category>
        <category>debian</category><category>django</category><category>ll</category><category>package</category><category>pydeb</category><category>pyrede</category>    
    <description>    &lt;p&gt;Dans mon précédent billet &lt;a href=&quot;http://blog.rodolphe.quiedeville.org/index.php?post/2013/01/Paquets-Debian-pour-Django&quot;&gt;&lt;/a&gt; j'évoquais les paquets debian que j'avais réalisé pour Django au sein du projet Pyrede. Cette activité de packaging ayant pris de l'ampleur les paquets seront désormais disponibles au sein du Projet Pydeb.&lt;/p&gt;


&lt;p&gt;Le projet PyDEB se compose d'un &lt;a href=&quot;http://packages.pydeb.eu&quot;&gt;dépôt de paquets&lt;/a&gt; et d'un &lt;a href=&quot;http://www.pydeb.eu&quot;&gt;blog&lt;/a&gt; sur lequel je publie les nouveaux paquets ainsi que leurs mises à jour.&lt;/p&gt;


&lt;p&gt;Les derniers paquets réalisés sont redis, hamlpy, vectorformats, ...&lt;/p&gt;


&lt;p&gt;Le projet &lt;a href=&quot;http://pyrede.quiedeville.org&quot;&gt;Pyrede&lt;/a&gt; d'analyse de fichier requirements.txt continue son activité avec PyDEB comme ressource bien évidemment.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Les serpents ne dorment pas l'hiver</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2013/01/Les-serpents-ne-dorment-pas-l-hiver</link>
    <guid isPermaLink="false">urn:md5:7a103908bb6e2bc84ea37fa21ce27c8b</guid>
    <pubDate>Thu, 17 Jan 2013 11:09:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Communauté</category>
        <category>ll</category><category>pypi</category><category>pyrede</category><category>python</category>    
    <description>    &lt;p&gt;Au cours du développement de mon dernier projet &lt;a href=&quot;https://github.com/rodo/pyrede&quot;&gt;Pyrede&lt;/a&gt; j'ai mis en place des statistiques sur le flux de mises à jour des paquets python dans &lt;a href=&quot;http://pypi.python.org/pypi&quot;&gt;PyPI&lt;/a&gt;. Au bout de quelques jours de collecte de données je suis impressionné par l'activité des développeurs. La base contient à ce jour plus de 27000 paquets et ce sont prêt de &lt;strong&gt;300 paquets&lt;/strong&gt; qui sont mis à jour chaque 24H.&lt;/p&gt;


&lt;p&gt;Les stats avec munin sont publiques et consultables &lt;a href=&quot;http://wwwin.there.quiedeville.org/munin/quiedeville.org/pyrede.quiedeville.org/pyrede_version.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Happy hacking&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>De whoosh à Solr avec Django Haystack</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/12/de-whoosh-Solr-avec-django-haystack</link>
    <guid isPermaLink="false">urn:md5:cd2624a0432a9d416eb3725de2deb940</guid>
    <pubDate>Thu, 20 Dec 2012 12:43:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Admin/Sys</category>
        <category>debian</category><category>django</category><category>haystack</category><category>jetty</category><category>ll</category><category>solr</category><category>wheezy</category>    
    <description>    &lt;p&gt;Sur un déploiement Django avec une indexation réalisée avec &lt;a href=&quot;http://haystacksearch.org/&quot;&gt;Haystack&lt;/a&gt; je me suis retrouvé face à un problème bloquant.
L'application doit permettre à différents users unix de la machine d'insérer des données au moyen d'une commande de management de Django&amp;nbsp;; les objets insérés dans la base de données sont indéxés en temps réels avec un RealTimeSearchIndex. Le peu de volume de données avait orienté le choix du backend d'indexation vers whoosh, whoosh travaillant avec des fichiers locaux l'appel de la commande manage par différents users unix a engendré des problèmes de permissions sur les fichiers d'index. Une première solution de contournement a été d'utiliser la commande &lt;strong&gt;sudo&lt;/strong&gt; mais cela n'est pas satisfaisant sur le long terme sans une formation des utilisateurs à sudo, pour contourner ce problème je me suis orienté vers l'utilisation d'un backend &lt;a href=&quot;http://lucene.apache.org/solr/&quot;&gt;Solr&lt;/a&gt;. Je vais décrire ici la mise en oeuvre de cette solution sur une Debian Wheezy car cela ne s'est pas fait sans problèmes.
&lt;br /&gt;&lt;/p&gt;


&lt;h2&gt;Installation de Solr&lt;/h2&gt;


&lt;p&gt;Le choix fait a été d'utiliser Solr avec le server d'application &lt;strong&gt;Jetty&lt;/strong&gt;, l'installation sous Debian est toujours aussi simple qu'apt-get dans notre cas de figure ici il est nécessaire d'installer les paquets&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;jetty&lt;/li&gt;
&lt;li&gt;solr-jetty&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le serveur d'indexation étant sur une machine séparée de l'instance Django il faut également installer le package &lt;strong&gt;python-pysolr&lt;/strong&gt; sur le serveur qui fait tourner l'application Django elle même.&lt;/p&gt;


&lt;p&gt;Il existe un &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683854&quot;&gt;bug&lt;/a&gt; dans le paquet solr-jetty, l'installation créé un lien symbolique cassé.&lt;/p&gt;


&lt;p&gt;&lt;code&gt;/var/lib/jetty/webapps/solr&lt;/code&gt; doit pointer vers &lt;code&gt;/usr/share/solr/web&lt;/code&gt; et non vers /usr/share/solr/webapp comme le fait l'installation du package&lt;/p&gt;


&lt;h2&gt;Schema généré non conforme&lt;/h2&gt;


&lt;p&gt;Une fois le serveur installé il faut configurer Solr en conformité avec les données de l'application Django, pour cela on génère un fichier nommé schema.xml avec la commande&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
manage.py build_solr_schema &amp;gt; schema.xml
&lt;/pre&gt;


&lt;p&gt;Une fois ce fichier généré copiez le sur le serveur Solr dans &lt;strong&gt;/etc/solr/conf/schema.xml&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;J'utilise une version 2.0.0 de Haystack et il est nécessaire de modifier quelque peu le fichier généré pour le rendre compatible avec Solr 3.6.0 présent à l'heure d'écriture de ce billet dans Wheezy.&lt;/p&gt;


&lt;p&gt;Tout d'abord il faut remplacer la chaine &lt;code&gt;stopwords_en.txt&lt;/code&gt; par &lt;code&gt;lang/stopwords_en.txt&lt;/code&gt; pour spécifier le bon chemin vers le fichier. (&lt;a href=&quot;http://lucene.472066.n3.nabble.com/solr-error-after-relacing-schema-xml-td3940133.html&quot;&gt;ref&lt;/a&gt;)&lt;/p&gt;


&lt;p&gt;Un autre problème rencontré qui peut ne pas être votre cas,mais autant le signaler au cas où, lors du premier appel de la commande &lt;code&gt;./manage.py build_solr_schema&lt;/code&gt; le fichier schema.xml généré contenait des définitions de champs erronés&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;field name=&amp;quot;&amp;quot; type=&amp;quot;&amp;quot; indexed=&amp;quot;True&amp;quot; stored=&amp;quot;True&amp;quot; multiValued=&amp;quot;&amp;quot; /&amp;gt;

&amp;lt;field name=&amp;quot;&amp;quot; type=&amp;quot;&amp;quot; indexed=&amp;quot;True&amp;quot; stored=&amp;quot;True&amp;quot; multiValued=&amp;quot;&amp;quot; /&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Un nouvel appel à build_solr_schema a cette fois généré un fichier valide, une fois copié sur le serveur solr l'indexation fonctionne, et on peut désormais mettre à jour l'index avec &lt;code&gt;manage.py rebuild_index&lt;/code&gt; de même que celui-ci se met à jour lors de l'import des objets dans la base.&lt;/p&gt;


&lt;p&gt;Suivant votre configuration réseau vous pourrez vouloir changer le port ou l'interface d'écoute, cela s'effectue dans le fichier &lt;strong&gt;/etc/default/jetty&lt;/strong&gt;&amp;nbsp;; il ne reste plus enfin qu'à redémarrer jetty.&lt;/p&gt;


&lt;p&gt;Ce ne fût pas sans peine, mais au final l'indexation fonctionne et désormais tous les utilisateurs peuvent indexer leurs documents sans problèmes de permissions.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Passer le temps en geekant</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/12/Passer-le-temps-en-geekant</link>
    <guid isPermaLink="false">urn:md5:aec32a166cd7b29c3d4980cb1ce3c4b2</guid>
    <pubDate>Wed, 12 Dec 2012 11:32:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Hack</category>
        <category>calorine</category><category>django</category><category>icecast</category><category>ll</category><category>radio</category>    
    <description>    &lt;p&gt;Un inconvénient d'être freelance et que l'on a parfois du temps chômé entre les missions, l'avantage quand on est geek c'est que cela donne du temps pour geeker :-) J'ai donc profité de ces derniers jours pour assouvir mon envie de jouer avec icecast&amp;nbsp;; depuis toujours passionné de radio il me tardait de trouver l'idée qui me permettrait de créer un projet autour de cet outil. Deux autres éléments ont été à l'origine de mon idée, tout d'abord la découverte de l'excellente radio
&lt;a href=&quot;http://www.ledjamradio.com/&quot;&gt;http://www.ledjamradio.com/&lt;/a&gt; puis plus récemment de &lt;a href=&quot;http://jensnistler.de/jukebox/&quot;&gt;jukebox&lt;/a&gt;. Je serais presque jaloux de ledjam d'avoir eu l'idée de cette radio et du système de vote, mais je le suis totalement de leur jingles&amp;nbsp;; là vous devez faire une pause et lancer la radio  dans un onglet. En ce qui concerne Jukebox j'ai apprécié l'interface mais beaucoup moins l'architecture qui en fait au final un outil un plutôt instable (notamment à cause de libshout).
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Cette introduction faite il est temps de lâcher le morceaux, j'ai utilisé ces 4 derniers jours à coder &lt;a href=&quot;https://github.com/rodo/calorine&quot;&gt;Calorine&lt;/a&gt; (jeu concours&amp;nbsp;: trouver ce qui a inspiré ce nom), la base de l'idée avoir une radio communautaire, dédiée à un groupe restreint comme le serait par exemple un canal IRC Écouter une radio à plusieurs même dans des lieux physiques différent créé une ambiance de groupe qui se rapproche de la sensation d'équipe dans un bureau commun, c'est très agréable de pouvoir chambrer un peu les collègues sur leurs goûts musicaux du vendredi (ils se reconnaîtront).
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Venons-en aux fonctionnalités de Calorine, stream d'une playlist composées à plusieurs de façon communautaire sans hiérarchie, ça c'est la base. La radio dispose d'un pool de fichier ogg/vorbis dans lequel l'auditeur pioche, il ajoute ses titres à la playlist commune. Tout un chacun peut également consulter la playlist en cours et ajouter un vote à un titre, les titres avec le plus grand nombre de votes sont joués en premier, viennent ensuite les titres les plus anciens dans la playlist, et enfin si celle-ci est vide un titre aléatoire est joué. On a pour faire cela une interface écrite en Django ainsi qu'un bot IRC qui annonce le titre joué sur le canal et permet d'ajouter un titre à la playlist en effectuant une recherche full-text sur les &lt;a href=&quot;http://fr.wikipedia.org/wiki/ID3&quot;&gt;ID3&lt;/a&gt; du fichier musical.
&lt;br /&gt;
Sur le principe technique, les path des fichiers sont stockés dans la base de données utilisées par l'app django. Icecast2 stream le flux audio, ices2 alimente le flux avec le mode script, ices2 appelle un script pour obtenir le chemin du fichieir audio à lire. J'ai préféré cette méthode de couplage ices/icecast plus robuste que d'utiliser libshout comme le fait Jukebox, cela donne aussi une totale indépendance entre l'ihm et le flux radio. L'indexage full-text est lui réalisé avec Haystack et le backend whoosh (des tests de solR sont en cours). Dans le repo il y 2 scripts qui permettent pour l'un d'alimenter la base de données (fill.py) et pour l'autre de convertir un répertoire de fichier mp3 en ogg (covert.py).
&lt;br /&gt;
Comme tout projet de 4 jours il y a des petits bugs partout et beaucoup de chose à finir, mais c'est déjà fonctionnel et nous permet de nous faire mutuellement découvrir des titres.
&lt;br /&gt;
Si vous souhaitez monter votre radio communautaire tout est dispo sous GPL sur github.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Penser à xauth</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/11/Penser-%C3%A0-xauth</link>
    <guid isPermaLink="false">urn:md5:afb63162a7fffa93b0684e68e5d47d4c</guid>
    <pubDate>Fri, 30 Nov 2012 12:38:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Admin/Sys</category>
        <category>debian</category><category>ll</category><category>ssh</category><category>xauth</category>    
    <description>    &lt;p&gt;Devant installer un outil dont je tairais la nom sur un serveur, outil qui ne se configure qu'avec un client X (ça commence mal) j'ai bloqué sur le X forwarding pendant une demi-journée.
Après avoir fait un connexion &lt;strong&gt;ssh -X&lt;/strong&gt; vers le dit serveur impossible de récupérer l'affichage sur ma machine. Un &lt;strong&gt;ssh -v&lt;/strong&gt; m'a mis la puce à l'oreille avec comme dernière ligne&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
debug1: Remote: No xauth program; cannot forward with spoofing.
&lt;/pre&gt;


&lt;p&gt;Sans xauth effectivement difficile de reporter l'affichage au travers de la session ssh, la solution simpliste au possible consiste à installer le paquet &lt;strong&gt;xauth&lt;/strong&gt; sur Debian.&lt;/p&gt;

&lt;pre&gt;
apt-get install xauth
&lt;/pre&gt;


&lt;p&gt;Espérons que la prochaine fois j'y penserai plus tôt.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Recherche outil de gestion des participants</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/11/outil-gestion-participants-inscription</link>
    <guid isPermaLink="false">urn:md5:6b0bd982b05f4de911198f58247135a8</guid>
    <pubDate>Tue, 27 Nov 2012 10:47:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Outils</category>
        <category>hypadrie</category><category>ll</category><category>reservation</category><category>ticket</category>    
    <description>    &lt;p&gt;A l'occasion de mes derniers travaux sur Hypadrie j'ai été contacté pour savoir si il serait possible d'utiliser &lt;a href=&quot;http://hypadrie.eu&quot;&gt;Hypadrie&lt;/a&gt; afin de gérer des listes de participants comme le font aujourd'hui des sites comme &lt;a href=&quot;https://guestlistapp.com/&quot;&gt;gestlistapp&lt;/a&gt; ou &lt;a href=&quot;http://www.eventbrite.fr/&quot;&gt;Eventbrite&lt;/a&gt;. Il existe déjà des outils de billeterie en ligne évolué comme &lt;a href=&quot;http://www.libre-informatique.fr/sw/01-Billetterie/e-voucher&quot;&gt;e-voucher&lt;/a&gt; ou de gestion complète de conférences comme &lt;a href=&quot;http://www.pentabarf.org/&quot;&gt;Pentabarf&lt;/a&gt;, mais je n'ai pas trouvé d'outil plus basique dans le fonctionnement.
Les fonctionnalités de l'outil doivent rester simple afin de minimiser le temps d'enregistrement et permettre des inscriptions rapides, pas besoin de créer de compte ou de renseigner son CV complet avec antécédents à 4 générations. Nul besoin non plus de gérer le paiement en ligne. Hypadrie permet déjà cela mais est orienté spectacle vivant à ce jour, alors avant de généraliser l'outil et au lieu de ré-iventer la roue je fais appel à vos bookmarks afin de trouver l'outil existant ou approchant.&lt;/p&gt;


&lt;p&gt;Bien évidemment le critère premier est la licence qui doit être libre.&lt;/p&gt;


&lt;p&gt;Si vous connaissez un outil approchant laissez l'info en commentaire, merci à tous.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Hypadrie dans Ouest-France</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/11/Hypadrie-dans-Ouest-France</link>
    <guid isPermaLink="false">urn:md5:2a86e6d64ea96611f199fb0c868cf169</guid>
    <pubDate>Tue, 20 Nov 2012 16:43:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Divers</category>
        <category>hypadrie</category><category>ll</category><category>ouest-france</category><category>presse</category>    
    <description>    &lt;p&gt;Ouest-France, dans son édition de Vannes, a publié un &lt;a href=&quot;http://www.ouest-france.fr/actu/actuLocale_-Logiciel-de-reservation-les-assos-disent-merci-_56260-avd-20121116-64009713_actuLocale.Htm&quot;&gt;article&lt;/a&gt; sur Hypadrie intitulé ''Logiciel de réservation&amp;nbsp;: les assos disent merci&quot;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>I will be the.re</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/11/I-will-be-the.re</link>
    <guid isPermaLink="false">urn:md5:9e7c37178ba988897abe051f999b4ea6</guid>
    <pubDate>Fri, 16 Nov 2012 09:30:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Divers</category>
        <category>ll</category><category>openstack</category><category>the.re</category>    
    <description>    &lt;p&gt;C'est avec plaisir et enthousiasme que j'ai rejoint le projet &lt;a href=&quot;http://the.re&quot;&gt;the.re&lt;/a&gt; hier avec mon dernier serveur. Celui-ci sera utilisé en partie pour augmenter les ressources de mes &lt;a href=&quot;http://carto.quiedeville.org/demo/&quot;&gt;développements SIG&lt;/a&gt;, de pérenniser l'hébergement d'&lt;a href=&quot;http://hypadrie.eu&quot;&gt;Hypadrie&lt;/a&gt; et d'y accueillir également quelques projets amis.&lt;/p&gt;


&lt;p&gt;Merci à Loic pour son accueil au sein de the.re et son inépuisable énergie à faire progresser la liberté en ligne&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Session PHP redondées dans memcache</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/10/php-session-redondantes-memcache-failover</link>
    <guid isPermaLink="false">urn:md5:f16eceb003d8832e6ed653fc4c4679e4</guid>
    <pubDate>Tue, 13 Nov 2012 11:40:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Admin/Sys</category>
        <category>failover</category><category>ll</category><category>memcached</category><category>php</category><category>session</category>    
    <description>    &lt;p&gt;Pour partager les sessions PHP entre les serveurs web au sein d'un cluster il est fréquent d'utiliser le stockage des dites sessions dans un backend memcache. Si ce partage permet de servir un même client depuis n'importe quel serveur tout en conservant ses sessions cela introduit néanmoins un &lt;a href=&quot;http://fr.wikipedia.org/wiki/SPOF&quot;&gt;SPOF&lt;/a&gt; dans l'architecture, on va voir dans ce billet qu'il est possible de gérer le failover avec 2 ou plus serveurs &lt;a href=&quot;http://blog.rodolphe.quiedeville.org/index.php?tag/memcache&quot;&gt;memcache&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;PHP gère depuis la version 3.0.0. de la librairie php-memcache le paramètre &lt;a href=&quot;http://php.net/manual/en/memcache.ini.php&quot;&gt;memcache.redundancy&lt;/a&gt; qui bien que non documenté est déjà fonctionnel, le principe est d'associer ce paramètre à &lt;strong&gt;memcache.allow_failover&lt;/strong&gt; et de définir plusieurs serveurs memcache pour le stockage des sessions.&lt;/p&gt;


&lt;p&gt;Dans l'exemple suivant on configure php pour utiliser 2 serveurs qui ont pour ip 10.0.42.1 et 10.0.42.2&lt;/p&gt;

&lt;pre&gt;
; On indique à php de gérer les sessions dans memcache
session.save_handler = memcache

; le save_path est composé des adresses des 2 serveurs
; séparées par une virgule
session.save_path = &amp;quot;udp://10.0.42.1:11211?persistent=1&amp;amp;weight=1&amp;amp;timeout=1&amp;amp;retry_interval=15,udp://10.0.42.2:11211?persistent=1&amp;amp;weight=1&amp;amp;timeout=1&amp;amp;retry_interval=15&amp;quot;

; permet d'avoir les clés indiques sur tous les serveurs
memcache.hash_strategy = consistent

; force php à lire/écrire sur un autre serveur en cas de
; défaillance du premier appelé
memcache.allow_failover = 1

; nb de serveurs memcache + 1
memcache.session_redundancy=3
&lt;/pre&gt;


&lt;p&gt;L'explication de session_redundancy qui vaut le nombre de serveurs memcache + 1 est issue de ce &lt;a href=&quot;http://serverfault.com/questions/164350/can-a-pool-of-memcache-daemons-be-used-to-share-sessions-more-efficiently#336592&quot;&gt;document&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Dorénavant si l'un des serveurs memcache est coupé les sessions sont sauvegardées, et à son retour il récupérera les sessions utilisées au fil de l'eau.
Cette solution est satisfaisante dans le cas des sessions à durée de vie limitée&amp;nbsp;; pour une durée de 30 minutes il vous faudra ne pas couper les 2 serveurs memcache à moins de 30 minutes d'intervalles afin d'avoir toujours les sessions actives dans l'un des memcache. Pour conserver des sessions ad vitam aeternam il faudra se tourner vers un stockage dans une base de données ou s'assurer de répliquer le serveur memcache renaissant avec les données du serveur actif.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Monitorer les mises à jour de sécurité Debian</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/10/Monitorer-les-mises-%C3%A0-jour-de-s%C3%A9curit%C3%A9-Debian</link>
    <guid isPermaLink="false">urn:md5:5b5c32d099658aaa6c8897f1a24d5d35</guid>
    <pubDate>Wed, 31 Oct 2012 12:02:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Monitoring</category>
        <category>debian</category><category>ll</category><category>nagios</category><category>security</category><category>update-notifier</category>    
    <description>    &lt;p&gt;Jusqu'à peu j'utilisais des scripts maison pour suivre les mises à jour de sécurité à faire sur les serveurs Debian que j'administre, scripts shell qui à grand coup de sed, grep, gawk sur les sorties de apt-get update / upgrade permet de connaître les mises à jour à faire. Une fois de plus Debian à des outils internes pour faire cela beaucoup mieux. Utilisant aussi Debian sur mon desktop je me suis penché sur la méthode mise en oeuvre qui permet à mon gestionnaire de bureau de signaler dans une popup les màj à faire après chaque action apt, je suis tombé sur le paquet &lt;a href=&quot;http://packages.debian.org/squeeze/update-notifier-common&quot;&gt;update-notifier-common&lt;/a&gt; qui contient tout ce qu'il faut pour refactoriser mes sondes Nagios.&lt;/p&gt;


&lt;p&gt;La commande apt-chek (qui est un script python) permet de savoir tout de go si il existe des mises à jour à faire&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
rodo@arz: $ /usr/lib/update-notifier/apt-check
110;57
&lt;/pre&gt;


&lt;p&gt;donne une sortie facilement scriptable qui indique ici qu'il y a 110 mises à jour disponibles dont 57 mises à jour de sécurité (tests effectués sur mon desktop, n'ayez craintes)&lt;/p&gt;

&lt;pre&gt;
rodo@arz: $ /usr/lib/update-notifier/apt-check --human-readable
110 packages can be updated.
57 updates are security updates.
&lt;/pre&gt;


&lt;p&gt;donne une sortie plus compatible avec le genre humain.&lt;/p&gt;


&lt;p&gt;Enfin l'option &lt;strong&gt;-p&lt;/strong&gt; elle va afficher la liste des noms de paquets à mettre à jour. Pour parfaire le script on souhaiterait avoir une option qui permette de n'afficher que les noms de paquets issus de security à mettre à jour, gageons que cela soit dans une future release.&lt;/p&gt;


&lt;p&gt;Il ne reste plus qu'à utiliser cette commande dans une sonde nagios telle que celle décrite dans ce &lt;a href=&quot;http://superuser.com/questions/199869/check-number-of-pending-security-updates-in-ubuntu&quot;&gt;billet&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Pour conclure il me reste à dire que &lt;em&gt;apt-check&lt;/em&gt; se base sur la librairire python &lt;em&gt;apt_pkg&lt;/em&gt; disponible dans &lt;em&gt;python-apt&lt;/em&gt; que je vous invite à découvrir si vous souhaitez manipuler les commandes apt à partir de python.&lt;/p&gt;


&lt;p&gt;MàJ&amp;nbsp;: après ma réflexion sur une option supplémentaire j'ai envoyé un &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=691925&quot;&gt;patch&lt;/a&gt; au mainteneur du paquet&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Nagios et les MIBS perdues dans Debian</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/10/nagios-mibs-perdues-debian-snmp</link>
    <guid isPermaLink="false">urn:md5:cdf15d29748facc873ede576d0db4904</guid>
    <pubDate>Mon, 29 Oct 2012 14:42:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Hack</category>
        <category>adminsys</category><category>debian</category><category>ll</category><category>mib</category><category>monitoring</category><category>nagios</category><category>perl</category><category>script</category><category>snmp</category><category>snmpd.conf</category>    
    <description>    &lt;p&gt;Il faut désormais activer non-free dans Debian pour pouvoir utiliser les MIBS snmp ( voir &lt;a href=&quot;http://wiki.debian.org/SNMP&quot;&gt;http://wiki.debian.org/SNMP&lt;/a&gt;), action qui n'est pas réalisable dans de nombreuses architectures. Sans les MIBS utiliser SNMP devient vite une gageure, devoir déclarer les commandes Nagios en se basant sur les OID des directives &lt;strong&gt;extend&lt;/strong&gt; est fastidieux et difficilement maintenable dans le temps. Afin de simplifier cette utilisation j'ai écrit un script pour simplifier la déclaration dans Nagios en se passant des MIBS.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;mibchecks&lt;/strong&gt; génère les définitions Nagios en analysant le fichier de configuration du démon snmp, il est disponible sur gitorious pour download et/ou fork.&lt;/p&gt;


&lt;p&gt;Repo&amp;nbsp;: &lt;a href=&quot;https://gitorious.org/mibchecks/mibchecks&quot;&gt;https://gitorious.org/mibchecks/mibchecks&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;mibchecks&lt;/strong&gt; lit le fichier /etc/snmp/snmpd.conf, en extrait les définitions extend, convertit les noms de commandes en OID et écrit sur la sortie standard les définitions de &lt;strong&gt;command&lt;/strong&gt; à inclure dans la configuration de nagios. Un &lt;a href=&quot;http://paste.debian.net/204627/&quot;&gt;exemple de sortie&lt;/a&gt;.&lt;/p&gt;



&lt;p&gt;Le script est actuellement en version 1.0.2 et attend vos patch et/ou amélioration.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>sslh pour se connecter en ssh sur 443</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/09/sslh-pour-se-connecter-en-ssh-sur-443</link>
    <guid isPermaLink="false">urn:md5:366a07184539154da3517e67e0ff93c6</guid>
    <pubDate>Fri, 14 Sep 2012 09:37:00 +0200</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Outils</category>
        <category>https</category><category>ll</category><category>ssh</category><category>sslh</category>    
    <description>    &lt;p&gt;Au détour d'un tweet d'Arthur Lutz &lt;a href=&quot;http://blog.rodolphe.quiedeville.org/index.php?post/2012/09/1&quot; title=&quot;1&quot;&gt;1&lt;/a&gt; j'ai découvert un outil fort pratique que tout bon admin/sys devrait mettre dans sa boîte à outil pour contrer les firewall&amp;nbsp;; sslh &lt;a href=&quot;http://blog.rodolphe.quiedeville.org/index.php?post/2012/09/2&quot; title=&quot;2&quot;&gt;2&lt;/a&gt; un multiplexer ssl/ssh.
Le principe de sslh est d'être à l'écoute sur un port TCP et de rediriger le traffic suivant le protocole client qui se connectera sur le port idoine. Le cas pratique le plus courant sera de mettre sslh à l'écoute sur le port HTTPS (443) et de le configurer pour rediriger le HTTPS et SSH. On voit tout de suite l'intérêt d'une telle configuration, on pourra se connecter en ssh sur la machine par le port 443 qui n'est que très rarement filtré par les firewall restrictif.&lt;/p&gt;


&lt;p&gt;sslh est présent dans sa dernière version stable (1.13) dans Debian/Wheezy &lt;a href=&quot;http://blog.rodolphe.quiedeville.org/index.php?post/2012/09/3&quot; title=&quot;3&quot;&gt;3&lt;/a&gt;, sa configuration se fait dans /etc/default/sslh par la définition des options, la configuration par défaut est&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
DAEMON_OPTS=&amp;quot;--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid&amp;quot;
&lt;/pre&gt;


&lt;p&gt;Par défaut sslh est en écoute sur le port 443 et gère ssh et https. Dans sa mise en place on prendra soin au préalable de faire écouter sshd et apache sur le loopback avant de démarrer sslh.&lt;/p&gt;


&lt;p&gt;Il reste à dire que sslh gère également OpenVpn, XMPP, HTTP, tinc et tous les protocoles qui peuvent être détecté au moyen d'un regexp.&lt;/p&gt;




&lt;p&gt;1. &lt;a href=&quot;https://twitter.com/arthurlutz/status/246167110705897472&quot;&gt;https://twitter.com/arthurlutz/status/246167110705897472&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;2. &lt;a href=&quot;http://www.rutschle.net/tech/sslh.shtml&quot;&gt;http://www.rutschle.net/tech/sslh.shtml&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;3. &lt;a href=&quot;http://packages.debian.org/wheezy/sslh&quot;&gt;http://packages.debian.org/wheezy/sslh&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Utiliser CLOC avec Jenkins</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/08/Utiliser-CLOC-avec-Jenkins</link>
    <guid isPermaLink="false">urn:md5:a3c8358fdde18a4da6b76e4e13485497</guid>
    <pubDate>Thu, 16 Aug 2012 13:43:00 +0200</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Hack</category>
        <category>cloc</category><category>jenkins</category><category>ll</category><category>python</category>    
    <description>    &lt;p&gt;J'utilise depuis quelque temps l'outil d'integration continue &lt;a href=&quot;http://jenkins-ci.org/&quot;&gt;jenkins&lt;/a&gt; et j'apprécie de pouvoir suivre le nombre de lignes de codes dans mes développements, peut-être pas orgeuil, mais découvrir 3 mois plus tard l'existence d'une librairie qui remplace 10K lignes de code maison rend aussi plus humble. Je me suis donc penché sur la &lt;a href=&quot;https://wiki.jenkins-ci.org/display/JENKINS/Plugins&quot;&gt;longue liste&lt;/a&gt; de plugins pour Jenkins et ai utilisé pendant un temps le SLOCCount Plugin.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.dwheeler.com/sloccount/&quot;&gt;SLOCCount&lt;/a&gt; bien que faisant le travail n'a pas évolué depuis 2004 et surtout il ne détecte pas l'ensemble des langages utilisés dans mes projets, comme par exemple JavaScript. J'ai alors recherché d'autres outils de métriques de code et j'ai trouvé &lt;a href=&quot;http://cloc.sourceforge.net/&quot;&gt;CLOC&lt;/a&gt; qui est plus récent et plus exhaustif que SLOCCount. CLOC annonce (cloc --show-lang) reconnaitre 100 langages quand SLOCCount n'en identifie que 27, loin d'utiliser autant de langage CLOC couvre au moins mes besoins en identifiant ceux qui m'intéressent.&lt;/p&gt;


&lt;p&gt;Voulant utiliser CLOC au lieu de SLOCCount j'ai cherché en vain un plugin pour Jenkins. Le plugin SLOCCount lui par contre me satisfaisant j'ai décidé de contourner le problème en écrivant un script python exécutant CLOC et formattant la sortie de celui-ci au format de SLOCCount attendu par Jenkins. J'ai désormais tous mes langages de comptabilisés pour un moindre effort.&lt;/p&gt;


&lt;p&gt;Si le script clokins.py vous intéresse il est disponible sur &lt;a href=&quot;http://gitorious.org/clokins&quot;&gt;gitorious&lt;/a&gt; et pour l'anecdote il est utilisé pour compter ses propres lignes sur &lt;a href=&quot;http://jenkins.quiedeville.org/job/Clokins/&quot;&gt;http://jenkins.quiedeville.org/job/Clokins/&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Et si vous utilisez une autre méthode de comptage dans Jenkins commentez ce billet cela sera utile pour tout le monde.&lt;/p&gt;


&lt;p&gt;Publié en GPLv3 toutes les contributions sont les bienvenues.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>L'OpenData toulousain</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/06/L-OpenData-toulousain</link>
    <guid isPermaLink="false">urn:md5:62426fcf15a7bc3591c669cb5f88a54a</guid>
    <pubDate>Fri, 22 Jun 2012 18:14:00 +0200</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Cartographie</category>
        <category>cartographie</category><category>ll</category><category>opendata</category><category>Toulouse</category><category>écoles</category>    
    <description>    &lt;p&gt;La communauté urbaine de Toulouse à récemment lancé son portail des données libres, le site accessible sur &lt;a href=&quot;http://data.grandtoulouse.fr/&quot;&gt;http://data.grandtoulouse.fr/&lt;/a&gt; dispose à la date de publication de ce billet de 48 jeux de données couvrant des domaines comme l'éducation, les résultats électoraux ou encore la topographie avec l'altimétrie des voies. Je ne suis pas toulousain mais je me suis tout de même penché sur les données publiées avec un regard de &lt;em&gt;bon père de famille&lt;/em&gt;, j'ai pour cela regardé de près les données liées aux écoles et aux équipements sportifs.&lt;/p&gt;


&lt;p&gt;Pour les tout petits on trouve les coordonnées des crèches sur la commune de &lt;a href=&quot;http://fr.wikipedia.org/wiki/Balma&quot;&gt;Balma&lt;/a&gt;, de même que pour les équipement sportifs seules cette ville a mis ses données à disposition semble-t'il.
Pour les écoles on dispose déjà de beaucoup plus d'informations 90 écoles élémentaires publiques et 105 maternelles, cela donne déjà plus de données à analyser, au passage je ne note aucune donnée sur &lt;a href=&quot;http://data.grandtoulouse.fr/Blagnac&quot;&gt;Blagnac&lt;/a&gt; dans ces fichiers.
Je n'ai pas trouvé de données pour l'enseignement supérieur, ni collèges ni lycées, le portail étant jeune gageons qu'il gagnera en exhaustivité avec le temps.&lt;/p&gt;


&lt;p&gt;Sur les formats de données c'est un peu disparate il ne faut pas hésiter à retraiter, les données géographiques sont parfois en 2 dimensions, parfois en 3. Les fichiers kmz ne sont pas directement exploitables pour les conversions, certains champs de données contenant directement du code HTML par exemple. Les fichiers CSV contiennent parfois une colonne avec les coordonnées géographiques parfois non. Le bilan global reste tout de même positif, même si il a fallu parfois utiliser les fichier MapInfo, parfois les kml, parfois les CSV pour obtenir un résultat homogène, mais sur l'ensemble j'ai réussit à récupérer les données que je cherchais dans ce qui était publié.&lt;/p&gt;


&lt;p&gt;L'ensemble de ces données a été mise en oeuvre sur une &lt;a href=&quot;http://carto.quiedeville.org/demo/gdtoulouse/&quot;&gt;carte en ligne&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Dernier point les données ont été publiées sous licence &lt;a href=&quot;http://opendatacommons.org/licenses/odbl/&quot;&gt;Open Data Commons Open Database License&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Merci à la CU de Toulouse et vivement la suite des données ....&lt;/p&gt;


&lt;p&gt;PS&amp;nbsp;: je cherche toujours le lien direct pour télécharger les fichiers sans passer par l'interface web&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Backport python-dbf pour squeeze</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/06/Backport-python-dbf-pour-squeeze</link>
    <guid isPermaLink="false">urn:md5:a7ca75bc4f5a373a0cd7ac535431a09c</guid>
    <pubDate>Wed, 13 Jun 2012 08:59:00 +0200</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Backports</category>
        <category>backport</category><category>dbase</category><category>dbf</category><category>debian</category><category>ll</category><category>python</category><category>squeeze</category>    
    <description>    &lt;p&gt;Il existe peu de librairie pour manipuler le format &lt;a href=&quot;http://fr.wikipedia.org/wiki/DBase&quot;&gt;DBase&lt;/a&gt; dans le monde du libre. Peu utilisé pour les usages standards des base de données, au regard d'outil comme Postgresql ou Sqlite, le format DBase reste néanmoins incontournable dans l'univers du SIG. Utilisé comme format de stockage des données attributaires pour les fichiers &lt;a href=&quot;http://fr.wikipedia.org/wiki/Shapefile&quot;&gt;Shapefile&lt;/a&gt; il est encore manipulé tous les jours par les géomaticiens. Il existe néanmoins une librairie python nommée python-dbf mais uniquement dans Wheezy, j'ai retroporté celle-ci vers squeeze.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;python-dbf 0.88.16-1~bpo60+1&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;python-dbf-doc 0.88.16-1~bpo60+1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Adresse du dépôt&amp;nbsp;: &lt;a href=&quot;http://rodolphe.quiedeville.org/debian/&quot;&gt;dépôt personnel&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Hypadrie bientôt sur vos écrans</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2012/03/Hypadrie-bient%C3%B4t-sur-vos-%C3%A9crans</link>
    <guid isPermaLink="false">urn:md5:a62ee4339df0371f879a4b4ebe4314f7</guid>
    <pubDate>Sun, 25 Mar 2012 12:13:00 +0200</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Divers</category>
        <category>django</category><category>ll</category>    
    <description>    &lt;p&gt;J'entends que Django est un framework formidable depuis maintenant trop longtemps pour que mon aversion pour les ORM résiste encore face à l'envie d'essayer la bête. Je me suis donc enfin lancé dans un petit projet nommé Hypadrie, que vous pourrez bientôt tester sur &lt;a href=&quot;http://www.hypadrie.eu&quot; title=&quot;Hypadrie&quot;&gt;hypadrie.eu&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Déployer Geoserver 2.1.2 avec Tomcat7 sur Debian Squeeze</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2011/12/deployer-geoserver-2.1.2-tomcat7-squeeze</link>
    <guid isPermaLink="false">urn:md5:0fef91940b9b189448fc2a86d4234c1a</guid>
    <pubDate>Thu, 15 Dec 2011 13:29:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Cartographie</category>
        <category>debian</category><category>geoserver</category><category>ll</category><category>squeeze</category><category>tomcat</category>    
    <description>    &lt;p&gt;Le but de ce mini tutoriel est de mettre en oeuvre la dernière version stable de &lt;a href=&quot;http://geoserver.org/&quot;&gt;GeoServer&lt;/a&gt; sur une Debian/Squeeze avec &lt;a href=&quot;http://tomcat.apache.org/&quot;&gt;Tomcat7&lt;/a&gt;. C'est aussi une façon pour moi de conserver la méthode, car n'étant pas de culture javaiste c'est toujours difficile de se replonger dans la logique Tomcat et ses multiples emplacements de fichiers de conf.&lt;/p&gt;


&lt;p&gt;Tomcat7 n'étant pas disponible dans Squeeze (il l'est dans wheezy) nous allons utiliser un backport disponible sur mon dépôt non-officiel, voir ce &lt;a href=&quot;http://blog.rodolphe.quiedeville.org/index.php?post/2011/11/section-squeeze-backports-ouverte-mapnik2&quot;&gt;billet&lt;/a&gt; pour la mise en oeuvre du dépôt. Une fois le dépôt configuré et &lt;code&gt;apt-get udpate&lt;/code&gt; effectué comme il se doit on va installer les 2 paquets suivants&amp;nbsp;; tomcat7 pour la base et tomcat7-admin pour disposer de la webapp manager bien pratique.&lt;/p&gt;

&lt;pre&gt;
apt-get install tomcat7 tomcat7-admin
&lt;/pre&gt;


&lt;p&gt;Après l'installation des paquets le serveur se lance automatiquement et vous devez obtenir le classique &lt;strong&gt;It works !&lt;/strong&gt; à l'adresse &lt;code&gt;http://127.0.0.1:8080/&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Pour le déploiement de GeoServer nous allons utiliser le manager interne de Tomcat, il est nécessaire pour cela de définir un utilisateur avec les bonnes permissions en éditant le fichier &lt;code&gt;/etc/tomcat7/tomcat-users.xml&lt;/code&gt;. Nous allons y ajouter un utilisateur &lt;em&gt;foobar&lt;/em&gt; avec le mot de passe &lt;em&gt;barfoo&lt;/em&gt;, cela va consister à ajouter les 2 lignes suivantes&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;role rolename=&amp;quot;manager-gui&amp;quot;/&amp;gt;
&amp;lt;user username=&amp;quot;foobar&amp;quot; password=&amp;quot;barfoo&amp;quot; roles=&amp;quot;manager-gui&amp;quot;/&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Le fichier contient des exemples qui aident à suivre la bonne syntaxe, ce qui est important ici est le rôle &lt;strong&gt;manager-gui&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;La configuration par défaut de tomcat limite la taille des fichiers web archive à 50Mo, hors la taille du .war de geoserver dépasse cette limite, il faut par conséquent l'augmenter. Il faut pour cela éditer le fichier &lt;code&gt;/usr/share/tomcat7-admin/manager/WEB-INF/web.xml&lt;/code&gt;.
Recherchez les balise &lt;code&gt;&amp;lt;max-file-size&amp;gt;&lt;/code&gt; et &lt;code&gt;&amp;lt;max-request-size&amp;gt;&lt;/code&gt;, puis remplacez leur valeur par 78643200 soit 75MB de limite au lieu des 50MB par défaut.&lt;/p&gt;


&lt;p&gt;La dernière version de GeoServer stable est la 2.1.2 qui est disponible en ligne à l'adresse &lt;a href=&quot;http://geoserver.org/display/GEOS/Stable&quot;&gt;http://geoserver.org/display/GEOS/Stable&lt;/a&gt;, il convient de télécharger la version &lt;strong&gt;Web archive&lt;/strong&gt;.  Vous obtiendrez un fichier &lt;strong&gt;geoserver-2.1.2-war.zip&lt;/strong&gt; qu'il conviendra de décompresser.&lt;/p&gt;


&lt;p&gt;Maintenant que nous avons installé et configuré Tomcat, téléchargé le .war de GeoServerger, nous pouvons ouvrir le manager à l'adresse &lt;a href=&quot;http://127.0.0.1:8080/manager/html&quot;&gt;http://127.0.0.1:8080/manager/html&lt;/a&gt; et y rechercher le formulaire &lt;strong&gt;Déployer&lt;/strong&gt; comme le montre l'image suivante.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.rodolphe.quiedeville.org/public/.tomcat-war_m.jpg&quot; alt=&quot;tomcat-war.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;tomcat-war.png, déc. 2011&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Indiquez l'emplacement du fichier .war dans le champs nommé &lt;em&gt;Choisir le fichier WAR à téléverser&lt;/em&gt; et cliquez sur &lt;em&gt;Déployer&lt;/em&gt;, si tout se passe bien ça y est GeoServer est installé.&lt;/p&gt;


&lt;p&gt;Il reste à tester l'url &lt;a href=&quot;http://127.0.0.1:8080/geoserver/web/&quot;&gt;http://127.0.0.1:8080/geoserver/web/&lt;/a&gt; et hop Geoserver 2.1.2 sous Tomcat7.&lt;/p&gt;


&lt;p&gt;De base GeoServer contient un ensemble de données de test, regardez le lien à gauche &lt;em&gt;Prévisualisation de la couche&lt;/em&gt; et appréciez la richesse de l'outil.&lt;/p&gt;


&lt;p&gt;Pour se connecter en tant qu'admin sur GeoServer utilisez les login/pass par défaut &lt;strong&gt;admin&lt;/strong&gt;/&lt;strong&gt;geoserver&lt;/strong&gt;, ceux-ci sont définis dans le fichier &lt;code&gt;/var/lib/tomcat7/webapps/geoserver/data/security/users.properties&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Il est à noter que cette méthode bien que valable dans le principe pour Tomcat6 certain emplacement de fichiers sont différents dans la pratique.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Backport Tomcat 6 et 7 pour squeeze</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2011/12/Backport-Tomcat-6-et-7-pour-squeeze</link>
    <guid isPermaLink="false">urn:md5:5e752eef1c1e1e28293504957730bd4d</guid>
    <pubDate>Thu, 15 Dec 2011 10:02:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Backports</category>
        <category>backport</category><category>debian</category><category>ll</category><category>squeeze</category><category>tomcat</category>    
    <description>    &lt;p&gt;J'ai mis en ligne hier soir les backports pour squeeze des versions de Tomcat suivante&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tomcat7 7.0.23&lt;/li&gt;
&lt;li&gt;tomcat6 6.0.33&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Disponible sur mon &lt;a href=&quot;http://rodolphe.quiedeville.org/debian/&quot;&gt;dépôt personnel&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Je testerai prochainement la dernière version de Geoserver sur Tomcat7.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Registre parcellaire graphique en OpenData et BadData</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2011/12/registre-parcellaire-graphique-opendata-baddata</link>
    <guid isPermaLink="false">urn:md5:8e57d80692e0290c1adb66102ec14590</guid>
    <pubDate>Fri, 09 Dec 2011 23:38:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>Cartographie</category>
        <category>geoserver</category><category>ll</category><category>opendata</category><category>rpg</category>    
    <description>    &lt;p&gt;Nombreux sont ceux qui comme moi se sont réjouit de l'ouverture de la &lt;a href=&quot;http://data.gou.fr&quot;&gt;Plateforme française d'ouverture des données publiques&lt;/a&gt; ce lundi avec ces 352.000 jeux de données. Sa naissance a même été saluée par data publica qui en a fait un &lt;a href=&quot;http://www.data-publica.com/content/2011/12/data-publica-salue-la-naissance-de-data-gouv-fr/&quot;&gt;inventaire exhaustif&lt;/a&gt;, il reste maintenant à faire une analyse qualitative de ceux-ci.&lt;/p&gt;


&lt;p&gt;J'ai pour ma part essayé le jeu de données du &lt;a href=&quot;http://www.geoportail.fr/5061756/actu/6481678/agriculture-:-le-registre-parcellaire-graphique.htm&quot;&gt;registre parcellaire graphique&lt;/a&gt; qui recense plus de 6 millions de parcelles déclarées par les exploitants agricoles avec la culture majoritaire de l'année à l'échelle de la France. On trouve sur &lt;a href=&quot;http://www.data.gouv.fr/content/search?SearchText=registre+parcellaire+graphique&quot;&gt;data.gouv.fr&lt;/a&gt; les données pour l'année 2010 au format &lt;a href=&quot;http://fr.wikipedia.org/wiki/Shapefile&quot;&gt;shapefile&lt;/a&gt; directement exploitable par les outils SIG. L'utilisation de ce format est a saluer car il facilite de fait la réutilisation des données et surtout leur visualisation sans pré-traitement.&lt;/p&gt;


&lt;p&gt;Jusque là tout va bien, le hic c'est que les shapefiles contiennent des erreurs, chaque parcelle (îlot) est représentée par un polygone regoupés dans des shapefiles par département, mais une fois ces shapefiles intégrés à une base postgis les outils de rendus (geoserver utilisé ici) ne peuvent effectuer leur travail à cause de géométries invalides (Ring Self-intersection, Points of LinearRing do not form a closed linestring, ...), ce qui rend les données un peu moins attractives de prime abord.&lt;/p&gt;


&lt;p&gt;Après une analyse détaillées des 92 fichiers représentant les données de l'hexagone on note une moyenne de 0.26% de géométries invalides par fichier avec un maximum de 0.94% sur le département de la Mayenne, pour au total 0.29% d'erreur. Ces chiffres paraissent ridiculement petit mais lors du rendu par tuilage un polygone défectueux en plein milieu rend la tuile vide, à l'échelle de la France on obtient rien sur la carte. Après suppression des erreurs de la base on arrive tout de même à faire un rendu comme &lt;a href=&quot;http://carto.quiedeville.org/datagouv/rpg/&quot;&gt;celui-ci&lt;/a&gt;, sympa toutes ces couleurs ;-) Maintenant vous savez ce qu'il y a eu dans le champs à coté de chez vous si vous avez la chance d'habiter à la campagne.&lt;/p&gt;


&lt;p&gt;Le fichier de statistiques complet est attaché au billet&lt;/p&gt;


&lt;p&gt;NB&amp;nbsp;: le RPG est disponible sur le geoportail pour les années 2007 à 2009, pour pas aussi sur data.gouv.fr, on pourrait mesurer ainsi la perte de surface agricole année par année.&lt;/p&gt;</description>
    
          <enclosure url="http://blog.rodolphe.quiedeville.org/public/rpg2010-badgeometries.ods"
      length="17508" type="application/vnd.oasis.opendocument.spreadsheet" />
          <enclosure url="http://blog.rodolphe.quiedeville.org/public/rpg2010-badgeometries.pdf"
      length="18579" type="application/pdf" />
    
    
      </item>
    
  <item>
    <title>Bilan des backports pour Openstreetmap</title>
    <link>http://blog.rodolphe.quiedeville.org/index.php?post/2011/12/bilan-backports-outils-openstreetmap</link>
    <guid isPermaLink="false">urn:md5:0dafc5a09ffad8e3df5cdc461ef54036</guid>
    <pubDate>Tue, 06 Dec 2011 11:08:00 +0100</pubDate>
    <dc:creator>Rodolphe Quiédeville</dc:creator>
        <category>OpenStreetMap</category>
        <category>backport</category><category>debian</category><category>ll</category><category>openstreetmap</category>    
    <description>    &lt;p&gt;L'avantage indéniable de Debian sur d'autres distributions est à mes yeux sa stabilité exemplaire, cela entraine malheureusement d'avoir régulièrement des versions un peu obsolète des logiciels empaquetés. Il est possible de contourner cela en créant des backports de la version de développement de Debian (Wheezy) vers la version stable (Squeeze). J'ai réalisé les backports des principaux outils utilisés dans l'univers OpenStreetMap, ceux-ci sont diponibles sur mon dépôt privé (voir ce &lt;a href=&quot;http://blog.rodolphe.quiedeville.org/index.php?post/2011/11/section-squeeze-backports-ouverte-mapnik2&quot;&gt;billet&lt;/a&gt; pour la mise en place du dépôt sur votre machine.&lt;/p&gt;


&lt;p&gt;A ce jour les outils ci-dessous sont disponibles dans ces versions&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dans-gdal-scripts 0.18&lt;/li&gt;
&lt;li&gt;gdal 1.7.3&lt;/li&gt;
&lt;li&gt;mapnik 2.0.0&lt;/li&gt;
&lt;li&gt;osm2pgsql 0.70.5&lt;/li&gt;
&lt;li&gt;openlayers 2.11&lt;/li&gt;
&lt;li&gt;gpsprune 13.1&lt;/li&gt;
&lt;li&gt;viking 1.2.1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les paquets n'ont pas été poussés dans le dépôt des backports officiels car ils représentent une utilisation trop faible au vu de la communauté Debian, un paquet comme osm2pgql est utlilisé à ce jour par moins de 300 personnes d'après &lt;a href=&quot;http://qa.debian.org/popcon.php?package=osm2pgsql&quot;&gt;popcon&lt;/a&gt; quand les outils apache2 le sont par plus de 60000 (&lt;a href=&quot;http://qa.debian.org/popcon-graph.php?packages=apache2-utils&quot;&gt;popcon apache2-utils&lt;/a&gt;).&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>