<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<channel>
<title><![CDATA[Planet Python francophone]]></title>
<description><![CDATA[News Python francophones]]></description>
<link>http://www.afpy.org/planet/</link>
<language>en</language>
<copyright>Copyright 2008, Atomisator</copyright>
<pubDate>Sat, 15 Mar 2008 00:15:05 +0200</pubDate>
<lastBuildDate>Sat, 15 Mar 2008 00:15:05 +0200</lastBuildDate>
  <item>
    <title><![CDATA[[afpyro] AFPyro à Lyon - le 26 janvier]]></title>
    <description><![CDATA[<div class="section" id="afpyro-a-lyon-le-26-janvier">
 
<p>Le premier Afpyro Lyonnais aura lieu de jeudi 26 janvier à 19h à l’<a class="reference external" href="http://www.lantreautre.fr/">Antre Autre</a> - <a class="reference external" href="http://g.co/maps/pfyp6">11 rue Terme - 69001 Lyon</a> (au premier étage).</p>
<dl class="docutils"><dt>Des Lightnings Talks auront lieu :</dt>
<dd><ul class="first last simple"><li>Multicorn : que sont les foreign data wrappers pour PostgreSQL et comment les écrire en Python ?</li>
<li>WeasyPrint : comment faire du PDF avec HTML et CSS3 ?</li>
</ul></dd>
<dt>Pour se rendre à l’<a class="reference external" href="http://www.lantreautre.fr/">Antre Autre</a> :</dt>
<dd><ul class="first last simple"><li>en métro : arrêt Hotel de Ville</li>
<li>en vélo’v : stations Place Sathonay, Carmélites Buredeaux, Place de la paix</li>
</ul></dd>
</dl></div>]]></description>
    <link><![CDATA[http://afpy.ro/dates/2012/2012_01_26]]></link>
    <pubDate>2012-01-26 00:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[No] Deux mille onze]]></title>
    <description><![CDATA[<p>L'année passée n'a pas été une fête pour tout le monde. Entre les soubresauts naturels, les révolutions mettant à bas dictatures et dictateurs, voire même les gouvernements qui sont tombés devant les masses plébéïènes... c'était chargé.
</p>
<p>Sans compter, pour certains de mes proches et autres connaissances, le lots de déceptions, de séparations, de larmes.
</p>
<p>Je ne sais pas si cette année est la dernière du monde (enfin, j'imagine qu'il y a peu de chances pour qu'on échappe à 2013). C'est tout de même, malgré la crédulité et la naïveté de la populace, une année faite d'inattendus prévisibles et de prévisions insoupçonnées.
</p>
<p>C'est peut-être le thème de cette année 2012. Le <em>changement</em>.
</p>
<p>Elle comptera, par la grâce des calculs astronomiques, un jour de plus. Et elle a même vécu une seconde supplémentaire.
</p>
<p>On changera, si ce n'est de Président, au moins de quinquennat.
</p>
<p>Après douze années - presque jour pour jour - passées chez SFR en téléphonie mobile, je bascule chez Free Mobile. En matière de commerce, l'infidélité paie (pense assurances, banques, etc). Et tu sais quoi ? pas de regrets.
</p>
<p>J'ai décidé de ne pas faire de conf à <a href="http://rencontres.django-fr.org/2012/">Djangocong</a> - d'ailleurs, il va falloir que tu fasses chauffer ta CB, les inscriptions s'ouvrent bientôt.
</p>
<p>C'est presque enthousiasmant, tout ça. On se prend presque à vouloir tout modifier, bouleverser au passage.
</p>
<p>Pourquoi pas passer la vitesse supérieure ?
</p>
<p>Je constate un nombre grandissant de merdouilles du côté de mon laptop PC sous Ubuntu. Si j'en changeais ? si je croquais la pomme, moi aussi ? Oui, c'est vrai, j'ai toujours eu la dent dure contre Apple et l'idolâtrie béate des fanboys. En même temps je suis extrêmement déçu par un laptop qui tient difficilement 18 mois sans que quelque chose déconne (écran, clavier, wifi, alim...). Et si on investissait dans du matériel qui dure ?
</p>
<p>Et si nous achetions un bien immobilier ? une maison ? un grand appartement ?
</p>
<p>Et si j'envoyais tout péter ?
</p>
<p>Peut-être que je fais ma crise de la quarantaine en avance, mais bon, hein... Ça fait pas du bien de mettre les pieds dans le plat, là ?
</p>
<p>Bon, je préfère te le dire assez fermement, il y aura quand même des choses qui ne changeront jamais :
</p>
<ul>
 <li>
     je continuerai de râler,
 </li>

 <li>
     je ne voterai pas à droite, ni au centre, ni au centre-droit,
 </li>

 <li>
     je n'ai pas l'intention d'arrêter le café,
 </li>

 <li>
     mes amis resteront mes amis,
 </li>

 <li>
     je reste définitivement accroché à ma compagne, ma fille, bref, toute ma petite famille,
 </li>

 <li>
     les framboises auront toujours ma préférence,
 </li>

 <li>
     je continuerai de haïr le printemps.
 </li>
</ul>
<p><small>En parlant de changements, l'année 2012 me verra, si tout se passe bien, à l'orée de l'été, devenir papa pour la seconde fois.</small>
</p>]]></description>
    <link><![CDATA[http://jehaisleprintemps.net/blog/fr/2012/01/24/deux-mille-onze/]]></link>
    <pubDate>2012-01-24 22:21:24</pubDate>
  </item>
  <item>
    <title><![CDATA[[afpyro] Janvier]]></title>
    <description><![CDATA[<div class="section" id="janvier">
 
<p><strong>C’est la nouvelle année!</strong></p>
<p>Et il serait vraiment dommage de ne pas se la souhaiter devant un verre.</p>
<p>Le prochain AFPyronannée aura donc lieu le Jeudi 19 Janvier. Venez avec votre bonne humeur et des bisous qui pique!</p>
<div class="section" id="a-paris">
<h2>A paris</h2>
<p>A partir de 19h30, à l’<a class="reference external" href="https://www.facebook.com/bar.orange.mecanique">Orange Mécanique</a> - <a class="reference external" href="http://g.co/maps/2ey9q">72 bis rue Jean-Pierre
Timbaud</a> - 75011 Paris.</p>
<p>Métro Parmentier. M3</p>
</div>
</div>]]></description>
    <link><![CDATA[http://afpy.ro/dates/2012/2012_01_19]]></link>
    <pubDate>2012-01-19 00:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[No] Je n'arrive pas à télécharger un ebook acheté sur kobobooks.fr]]></title>
    <description><![CDATA[<p><em>Note</em> : article un poil (trop) long, mais tu peux sauter des passages pour
   aller à la fin.
</p>

<h3>Je possède un Cybook Odyssey.</h3>
<p>Oui, c'est vrai, <a href="http://jehaisleprintemps.net/blog/fr/2011/10/12/et-une-capture-decran-pour-menerver/">j'avais
précédemment</a>
   juré mes grands dieux que jamais ô grand jamais je n'aurais de liseuse. Mais je 
   suis faible. Et là n'est pas le débat.
</p>
<p>Je n'ai pas besoin de faire de critique de ma liseuse, n'ayant :
</p>
<p>a - pas assez de recul sur l'usage, elle n'est en fonction que depuis deux jours<br />
b - d'autres ont déjà couvert les avantages et les inconvénients de cette liseuse
   (et des autres), pas la peine d'en rajouter.
</p>
<p>Donc. Y'a quand même un truc ultra-emmerdifiant avec les livres électroniques,
   qui tourne à l'irritation cutanée chronique dont personne n'arrive à se
   débarrasser : les DRM.
</p>
<p>J'en veux pour preuve la différence flagrante <em>d'expérience utilisateur</em> (pour
   utiliser un mot à la mode) entre un achat DRM-isé et un achat sans DRM.
</p>
<p>Sans DRM, j'achète le livre sur la boutique de mon choix, je clique sur un lien
   pour le télécharger, le fichier ".epub" débarque sur mon PC. Je peux le copier-
   coller sur ma liseuse. Ou bien j'accède à la boutique <strong>directement</strong> depuis ma
   liseuse, et en cliquant sur le lien le livre électronique se retrouve dans ma
   bibliothèque numérique en quelques secondes.
</p>
<p>Avec DRM, j'achète le livre sur la boutique de mon choix, je clique sur un lien
   qui est un fichier ".acsm", lequel... ne contient <strong>pas</strong> mon livre. Pour
   l'obtenir, il faut d'abord ouvrir un compte sur Adobe.com pour lier la liseuse
   avec ce compte, puis le fichier ".acsm" est mouliné-pirouette-cacahouète pour
   permettre à la liseuse d'aller finalement télécharger la version DRM-isée du
   livre.
</p>
<p>Pour simplifier, le premier fichier contient une sorte de clé qui permet de
   télécharger le second.
</p>
<p>Et après, tu peux (enfin) lire ton livre, en vrai, celui que tu as acheté.
</p>
<p>Ouf.
</p>
<p>La mésaventure qui m'est arrivée commence sur le site [http://kobobooks.fr],
   lequel donne il est vrai la priorité aux liseuses de la marque Kobo, mais qui se
   targue de vendre des e-books compatibles avec toutes les liseuses du marché.
</p>

<h3>Mon objectif</h3>
<p>Lire un exemplaire de "The Killing of the Tinkers", par Ken
   Bruen, en Anglais. J'ai déjà lu toute la série en VF, et j'ai relu, en Irlande,
   la première enquête de Jack Taylor, "The Guards", en papier. La boutique
   Kobobooks est la <em>seule</em> je dis bien la seule boutique française à proposer ces
   ouvrages en téléchargement.
</p>
<p>Donc, armé de mon compte Paypal, de mon navigateur internet (sur mon PC) et de
   ma patience, j'ai trouvé le bon titre, et l'ai acheté tout ce qu'il y a de plus
   légalement. Youpi. Sauf que...
</p>
<p>Sauf que le navigateur intégré à la liseuse est absolument incapable de se
   connecter à mon compte kobobooks. J'ai beau essayer par tous les moyens c'est
   impossible : soit on est redirigé vers la page d'accueil, soit on a un message
   d'insulte du style "Host Unreachable" et j'en passe. Or, s'identifier avec le
   duo login + mot de passe est le passage <strong>obligé</strong> pour accéder au fichier DRM.
   Pas l'epub, hein. Le fichier ".acsm", évidemment. La seule solution envisagée :
   passer par l'outil de gestion des DRM... mais <strong>il n'est pas disponible pour
Linux</strong>.
</p>
<p>Bon, ben je suis coincé, hein. J'ai quand même, par acquis de conscience, envoyé
   un message au support de kobobooks, ainsi que bookeen. Mais bon. Un geek obstiné
   reste un geek obstiné.
</p>
<p>Alors voilà. Je peux accéder au fichier ".acsm" sur mon PC, mais il est inutile
   de le télécharger sur la liseuse, parce qu'elle n'est pas capable de le traiter
   sans qu'on lui en donne l'ordre. En revanche, j'ai déjà pu télécharger un ouvrage
   DRMisé, sur une autre boutique, simplement parce que j'ai pu accéder à un lien
   me permettant de télécharger la "clé DRM". Alors j'ai eu une idée. Et voilà
   la solution, qui vaut ce qu'elle vaut et qui m'a permis de me retrouver avec
   le Bruen en question sur ma liseuse.
</p>

<h3>La fin</h3>
<p>(je t'avais dit que tu pouvais zapper jusqu'à la fin)
</p>
<p>1 - Depuis mon PC, je télécharge le fichier ".acsm" vers un dossier spécifique (par exemple, ~/Meuh/)
</p>
<p>2 - En mode console, je tape la commande <code>ifconfig</code>. Elle me donne mon adresse
   IP sur mon réseau local. (par exemple : 192.168.1.42)
</p>
<p>3 - Toujours en mode console, je me déplace vers le dossier <code>~/Meuh/</code> et je tape
   la commande : <code>python -m SimpleHTTPServer</code>. Si tu as Python3, tu peux aussi
   taper <code>python3 -m http.server</code>. Ça revient au même.
</p>
<p>Cette commande démarre un serveur HTTP qui écoute le port 8000. Cela signifie que
   n'importe quel appareil connecté à ton réseau local (disons, par exemple, une
   liseuse équipé de WiFi) est capable d'aller sur l'adresse http://192.168.1.42:8000/
   et d'en lire le contenu... c'est à dire de pouvoir télécharger ce fameux fichier
   ".acsm".
</p>
<p>4 - Allumer la liseuse. Brancher le wifi. Diriger le navigateur de cette liseuse
   vers l'adresse indiquée. Cliquer sur le lien correspondant au fichier... Miracle !
   Le fichier DRM récupéré, la liseuse va chercher l'e-book et le recopie dans
   ma bibliothèque. Yeah.
</p>
<p>À moi les aventures de Jack Taylor. Et les autres.
</p>]]></description>
    <link><![CDATA[http://jehaisleprintemps.net/blog/fr/2011/12/27/je-narrive-pas-tlcharger-un-ebook-achet-sur-kobobooksfr/]]></link>
    <pubDate>2011-12-27 20:39:19</pubDate>
  </item>
  <item>
    <title><![CDATA[[logilab] OpenData à Nantes: agrégateur des événements culturels]]></title>
    <description><![CDATA[<div><p>Jeudi 8 décembre 2011 nous avons participé à la réunion de travail sur l'<a class="reference" href="https://opendatanantesagreg-eorg.eventbrite.com/">ouverture des données événementielles</a>.</p>
<div class="section" id="problematique-des-licences">
<h3><a>Problématique des licences</a></h3>
<p>Un premier problème est que la licence proposée par LiberTIC est la CreativeCommons <a class="reference" href="http://feeds.feedburner.com/(https://creativecommons.org/licenses/by/3.0/)">CC-BY</a>, alors que les producteurs de données n'ont souvent pas les droits sur toutes  les données qu'ils diffusent (par exemple la photo d'illustration d'un  concert). Ils auront donc du mal à les publier en totalité sous licence CC-BY. Espérons que la licence Creative Commons rentre dans les habitudes et que cela ne va pas trop freiner le projet.</p>
<p>Aujourd'hui, l'utilisation ressemble à du <a class="reference" href="https://fr.wikipedia.org/wiki/Fair_use">Fair Use</a>: on tolère la ré-utilisation de contenus protégés par le droit d'auteur car cela sert la diffusion de l'information.</p>
<p>Nous nous sommes demandé s'il est possible de mélanger deux licences dans un flux de données ou s'il faut faire deux flux séparés mais liés.</p>
<img alt="https://creativecommons.org/images/license-layers.png" src="https://creativecommons.org/images/license-layers.png" />
</div>
<div class="section" id="problematique-d-utilisation">
<h3><a>Problématique d'utilisation</a></h3>
<p>Un deuxième problème est que les réutilisateurs ne seront pas intéréssés si les données sont trop pauvres et qu'elles n'incluent pas d'image ou de vidéo. Il faut donc trouver un socle commun qui satisfasse les producteurs et les réutilisateurs.</p>
</div>
<div class="section" id="import-ou-gros-formulaires-qui-tachent">
<h3><a>Import ou gros formulaires qui tâchent ?</a></h3>
<p>Vu la complexité du modèle de données qui a émergé des discussions (beaucoup de cas particuliers), il a été proposé de fournir un formulaire de saisie d'un événement. A notre avis, la saisie &quot;manuelle&quot; doit rester un cas exceptionnel (un acteur culturel n'ayant pas de site pour publier par exemple), au risque de n'être pour les producteurs qu'un enième site à renseigner lors de la publication de son agenda.</p>
<p>Un exemple de bonnes pratiques est le très populaire <a class="reference" href="http://www.heppnetz.de/projects/goodrelations/">GoodRelations</a>  qui offre un <a class="reference" href="http://www.ebusiness-unibw.org/tools/grsnippetgen/">formulaire</a> pour qu'un utilisateur qui n'a pas intégré le format à sa boutique en ligne puisse facilement  générer son fichier et l'héberger chez lui, favorisant ainsi un modèle décentralisé calqué sur celui des moteurs de recherche.</p>
</div>
<div class="section" id="formats">
<h3><a>Formats</a></h3>
<p>Il nous semble donc important de se concentrer sur les formats standards qui pourraient être importés et exportés par la plateforme.</p>
<p>En voici une liste non exhaustive:</p>
<ul class="simple">
<li><a class="reference" href="https://en.wikipedia.org/wiki/ICalendar">ical</a></li>
<li><a class="reference" href="https://en.wikipedia.org/wiki/XCal">xcal</a></li>
<li><a class="reference" href="https://en.wikipedia.org/wiki/Vcal">vcal</a></li>
<li>schema.org / <a class="reference" href="http://schema.org/Event">Event</a></li>
<li><a class="reference" href="http://motools.sourceforge.net/event/event.html">Event Ontology</a></li>
</ul>
</div>
<div class="section" id="lectures-supplementaires">
<h3><a>Lectures supplémentaires</a></h3>
<p>Cherchant à combiner des vocabulaires existants (afin de ne pas réinventer un format qui devra être traduit dans un autre vocabulaire pour être réutilisable) nous sommes tombés sur les articles suivants :</p>
<ul class="simple">
<li>le <a class="reference" href="http://mashupguide.net/1.0/html/ch15s03.xhtml">chapitre 15 du Mashup Guide</a>  explique comment du DublinCore peut être ajouté au sein de xcal. Il fournit aussi un exemple d'utilisation d'une API de requêtes sur un site populaire aux USA : <a class="reference" href="http://upcoming.yahoo.com/">http://upcoming.yahoo.com/</a></li>
</ul>
<ul class="simple">
<li>La question de la licence &quot;Machine readable&quot; a été abordée <a class="reference" href="http://wiki.creativecommons.org/Frequently_Asked_Questions#What_does_it_mean_that_Creative_Commons_licenses_are_.22machine-readable.22.3F">http://wiki.creativecommons.org/Frequently_Asked_Questions#What_does_it_mean_that_Creative_Commons_licenses_are_.22machine-readable.22.3F</a> et <a class="reference" href="http://wiki.creativecommons.org/RDFa">http://wiki.creativecommons.org/RDFa</a> et <a class="reference" href="http://wiki.creativecommons.org/XMP">http://wiki.creativecommons.org/XMP</a> (property=&quot;cc:attributionName&quot; rel=&quot;cc:attributionURL&quot;)</li>
<li>LODE: An ontology for Linking Open Descriptions of Events <a class="reference" href="http://linkedevents.org/ontology/">http://linkedevents.org/ontology/</a></li>
</ul>
<img alt="http://cdn1.iconfinder.com/data/icons/transformers/network-connections.png" src="http://cdn1.iconfinder.com/data/icons/transformers/network-connections.png" />
<img alt="http://cdn1.iconfinder.com/data/icons/transformers/Internet-Explorer.png" src="http://cdn1.iconfinder.com/data/icons/transformers/Internet-Explorer.png" />
<img alt="http://cdn1.iconfinder.com/data/icons/transformers/entire-network.png" src="http://cdn1.iconfinder.com/data/icons/transformers/entire-network.png" />
</div>
<div class="section" id="conclusion">
<h3><a>Conclusion</a></h3>
<p>Il  nous paraît important de ne pas se tromper dans les orientations choisies:</p>
<ul class="simple">
<li>utiliser des formats standards et combiner l'utilisation de <em>namespaces</em> existants plutôt que d'inventer un nouveau format</li>
<li>proposer plusieurs formats d'export pour différentes utilisations (json, ical, etc) quitte à ne pas inclure tout le contenu disponible si le format ne s'y prête pas</li>
<li>ne pas créer une API de plus et choisir de privilégier les standards du web sémantique en publiant du RDF et si possible en fournissant un accès SPARQL</li>
<li>préférer la publication distribuée des données par leurs producteurs et leur agrégation par la plate-forme plutôt que d'attendre des producteurs qu'ils remplissent un formulaire de plus.</li>
</ul>
<p>Nous attendons avec impatience la suite des travaux. Selon <a class="reference" href="https://libertic.wordpress.com/">LiberTIC</a> la plateforme sera developpée en logiciel libre avec des outils collaboratifs pour piloter le projet.</p>
<p><a class="reference" href="http://www.cubicweb.org/">CubicWeb</a> est une plateforme disponible en logiciel libre qui a déjà fait ses preuves et a été conçue pour développer des applications du type de l'aggrégateur décrit ci-dessus: import et export des données sous différents formats, utilisation des technologies standards du web sémantique. Nous espérons que ceux qui auront à réaliser l'agrégateur choisiront  <a class="reference" href="http://www.cubicweb.org/">CubicWeb</a> comme base technique pour ce projet.</p>
</div></div>]]></description>
    <link><![CDATA[http://feedproxy.google.com/~r/logilaborg/~3/l7c3m1dQbTw/84788]]></link>
    <pubDate>2011-12-12 16:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[tshirtman] quand mv et rename ne suffisent pas... python]]></title>
    <description><![CDATA[<p>
	Ayant pris une trentaine de screenshots, pour avoir un backup de mes slides pour une présentation (ce soir à <a href="http://lacantine.org/">la cantine</a>, à paris, pour parler de <a lang="en" href="http://kivy.org">kivy</a> oui je prévient vachement à l’avance). j’étais un peu embété par le format de nommage par défaut de gnome, indiquant “Capture du … xx:xx:xx.png”.</p>
<p>
	J’ai réfléchis à une utilisation de rename, mais à part retirer la partie commune, je n’avançais pas beaucoup, car bien sur, je voulais en conserver l’ordre. Du coup, python à la rescousse!</p>
<pre># chopper toutes les images dans une variable
a = filter(lambda x: x.endswith('.png'), os.listdir('.'))
# s'assurer qu'elles sont bien dans l'ordre alphabétique (contenant l'heure, et donc, dans le bon ordre)
a.sort()
import shutil
for i, nom in enumerate(a):
    shutil.move(nom, str(i)+'.png')
</pre>
<p>
	 </p>
<p>
	Et voilà, les images ont un nom tout propre, et sont toujours dans l’ordre.</p>]]></description>
    <link><![CDATA[http://blog.tshirtman.fr/2011/11/28/quand-mv-et-rename-ne-suffisent-pas]]></link>
    <pubDate>2011-11-28 16:49:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[carlchenet] Brebis 0.4 : contrôle automatisé de vos sauvegardes]]></title>
    <description><![CDATA[La version &#8220;Mobylette&#8221; 0.4 de Brebis a été publiée en début de semaine. Pour rappel Brebis est un logiciel libre (GPLv3) de contrôle automatisé de vos sauvegardes déjà présenté sur ce blog et développé dans le cadre du projet Brebis. Il est par exemple capable de détecter une corruption d&#8217;archive sur différents formats. Il identifie également [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=carlchenet.wordpress.com&blog=7722010&post=1251&subd=carlchenet&ref=&feed=1" width="1" height="1" />]]></description>
    <link><![CDATA[http://carlchenet.wordpress.com/2011/11/24/brebis-0-4-controle-automatise-de-vos-sauvegardes/]]></link>
    <pubDate>2011-11-23 23:09:27</pubDate>
    <category>april</category>
    <category>debian-fr</category>
    <category>planet-libre</category>
    <category>python</category>
  </item>
  <item>
    <title><![CDATA[[Afpy] Vous reprendrez bien un peu de python ?]]></title>
    <description><![CDATA[Le 28/11 à partir de 18h30, l'AFPY organise une soirée : Vous reprendrez bien un peu de python ?
Venez découvrir pourquoi il passionne ses utilisateurs, le potentiel qu'offre ce langage et ses nouveaux usages.
Chacun est libre de partager son expérience sur un sujet libre pendant une présentation de 15mn minutes environ.]]></description>
    <link><![CDATA[http://zope.afpy.org/Members/gawel/vous-reprendrez-bien-un-peu-de-python-28-11-2011]]></link>
    <pubDate>2011-11-21 10:48:21</pubDate>
    <category>A la une</category>
  </item>
  <item>
    <title><![CDATA[[logilab] Rencontre Open Data à Nantes: Enjeux et opportunités pour le secteur culturel]]></title>
    <description><![CDATA[<div><p>Nous étions présents à l'<a class="reference" href="https://opendatanantesculture.eventbrite.com/">évenement</a> organisé par Stereolux et <a class="reference" href="http://www.liber-tic.com/">Libertic</a> consacré à l'OpenData dans le domaine de la culture à Nantes. Voici un court compte rendu des points que nous avons retenus de ces présentations.</p>
<div class="section" id="presentation-generale-de-l-opendata-par-libertic">
<h3><a>Présentation générale de l'OpenData par Libertic</a></h3>
<p>Il existe sur la toile assez d'articles sur l'<a class="reference" href="http://fr.wikipedia.org/wiki/OpenData">Opendata</a> pour qu'il ne nous semble pas nécessaire d'en donner une description, mais nous tenons à souligner que l'OpenData n'est pas simplement une mise à disposition des informations. Pour que des données puissent être qualifiées d'ouvertes, il faut qu'elles respectent une dizaine de principes parmi lesquels l'accessiblité, l'exploitabilité (données brutes), et la la réutilisablitié (licence).</p>
<img alt="https://libertic.files.wordpress.com/2010/02/logo-libertic.png?w=300&h=180" class="align-right" src="https://libertic.files.wordpress.com/2010/02/logo-libertic.png?w=300&h=180" />
<p>Claire Gallon a cité plusieurs exemples d'OpenData dans le domaine culturel :</p>
<ul class="simple">
<li>la mise à disposition de données sur la fréquentation d'un musée permet de développer un service qui donnera la meilleure heure pour visiter ce musée. Voir <a class="reference" href="http://whenshouldivisit.iamdanw.com/">When Should I visit Tate Modern</a></li>
<li>Marseille-Provence 2013 (capitale culturelle européenne) <a class="reference" href="http://www.marseille-provence2013.fr/le-projet/evenements-structurants/ouverture/">ouvre ses données et attend</a> que les acteurs écrivent des applications (mobiles notamment).</li>
</ul>
<p>Un idée importante est que le service public doit s'adresser au plus grand nombre et ne peut pas consacrer ses ressources à la mise en place de services de niche. La mise à disposition des données permet à des tiers d'occuper ces niches.</p>
<p>En conclusion, Claire Gallon insiste sur la nécessité d'inclure la gestion de la communauté dans les démarches d'ouverture des données. La prochaine priorité des acteurs de l'OpenData sera la coproduction, à la fois pour l'écriture des applications et pour l'amélioration des données.</p>
</div>
<div class="section" id="presentation-du-projet-data-bnf-fr-par-romain-wenz">
<h3><a>Présentation du projet data.bnf.fr par Romain Wenz</a></h3>
<img alt="http://data.bnf.fr/data/logo-bnf.gif" src="http://data.bnf.fr/data/logo-bnf.gif" />
<img alt="http://data.bnf.fr/data/logo-data.gif" src="http://data.bnf.fr/data/logo-data.gif" />
<p>Romain Wenz de la <a class="reference" href="http://www.bnf.fr/">Bibliothèque nationale de France</a> a présenté <a class="reference" href="http://data.bnf.fr">http://data.bnf.fr</a> sous l'angle de l'ouverture : l'ouverture à un public différent, l'ouverture à un mode de recherche différent (on cherche sur internet avant d'aller en bibliothèque) et l'ouverture sur les reseaux sociaux où le public partage des références à des contenus qu'il apprécie (twitter, facebook, etc.).
Cette ouverture passe forcément par un web indexable, où l'on peut communiquer facilement une URL d'un contenu (exit les portails de recherche avec des sessions et variable http). Si un site n'est pas indexable, son contenu pourra être trouvé en s'y connectant directement, mais celui-ci restera dans le web &quot;invisible&quot; ou &quot;profond&quot;.</p>
<p>Romain Wenz a insisté sur l'Importance des technologies utilisées : d'un coté les strandards ouverts et formalisés par le W3C, notamment en terme de web sémantique (RDF, RDFa, opengraph, schema.org, etc.) et de l'autre l'utilité de s'appuyer sur du logiciel libre. Dans le cas de <a class="reference" href="http://data.bnf.fr">http://data.bnf.fr</a> il s'agit de <a class="reference" href="http://www.cubicweb.org.">CubicWeb</a>.</p>
</div>
<div class="section" id="presentation-des-collaborations-entre-wikimedia-france-et-des-institutions-publiques-a-toulouse">
<h3><a>Présentation des collaborations entre Wikimedia France et des institutions publiques à Toulouse</a></h3>
<img alt="https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Commons-logo-en.svg/75px-Commons-logo-en.svg.png" src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Commons-logo-en.svg/75px-Commons-logo-en.svg.png" />
<p>La transition entre la BnF et Wikimedia est facile : Wikisource (bibliothèque de livres libres de droits) a signé un partenariat avec <a class="reference" href="http://gallica.bnf.fr/">Gallica</a> qui lui <a class="reference" href="https://fr.wikisource.org/wiki/Wikisource:Gallica">a fourni des numérisations</a> de livres tombés dans le domaine public.</p>
<p>Wikimedia France a présenté deux projets réussis en coproduction avec des institutions Toulousaines :</p>
<ul class="simple">
<li>le projet <a class="reference" href="https://secure.wikimedia.org/wikipedia/commons/wiki/Commons:Projet_Phoebus">Phoebus</a> a donné accès aux archives du Muséum de Toulouse à des bénévoles</li>
</ul>
<ul class="simple">
<li>la communauté Wikimedia Commons a participé à l'enrichissement des metadonnées du fond consacré au photographe Eugène Trutat.</li>
</ul>
</div>
<div class="section" id="presentation-opendata-par-la-mairie-de-nantes-metropole">
<h3><a>Présentation OpenData par la mairie de Nantes Métropole</a></h3>
<img alt="http://nantes.fr/webdav/site/nantesfr/shared/fileadmin/images/Puces/autrespuces/logo64_queue.png" src="http://nantes.fr/webdav/site/nantesfr/shared/fileadmin/images/Puces/autrespuces/logo64_queue.png" />
<p>Frédéric Vasse a briévement présenté la démarche de la Ville de Nantes en matière d'OpenData. Le lancement de la plateforme aura lieu lundi prochain à la <a class="reference" href="http://www.cantine-nantes.org">Cantine Numérique de Nantes</a>. Selon lui, l'objectif de Nantes est de réussir la coproduction avec les acteurs du territoire.</p>
</div>
<div class="section" id="conclusion-et-ouverture-sur-un-projet-concret-d-opendata-pour-les-acteurs-culturels">
<h3><a>Conclusion et ouverture sur un projet concret d'OpenData pour les acteurs culturels</a></h3>
<p>Libertic a conclu en proposant aux acteurs culturels un projet d'aggrégateur d'informations sur les événements culturels à Nantes. Nous espérons pouvoir vous donner prochainement plus d'informations sur ce projet.</p>
<p>Autre compte rendu (prises de notes) : <a class="reference" href="http://www.scribd.com/doc/72810587/Opendata-Culture">http://www.scribd.com/doc/72810587/Opendata-Culture</a></p>
</div></div>]]></description>
    <link><![CDATA[http://feedproxy.google.com/~r/logilaborg/~3/ey-9V93gi70/83223]]></link>
    <pubDate>2011-11-17 12:09:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[Afpy] Rencontres Django aka #djangocong le 14 et 15 avril à Carnon-Montpellier]]></title>
    <description><![CDATA[L'événement annuel regroupant les amateurs francophones de Django, en toute simplicité.]]></description>
    <link><![CDATA[http://zope.afpy.org/Members/magopian/djangocong-2012]]></link>
    <pubDate>2011-11-16 02:51:02</pubDate>
  </item>
  <item>
    <title><![CDATA[[j-mad] Pony rider in the skyyyy… c’est le retour des djangocong YeeHaÂ !!]]></title>
    <description><![CDATA[Je vous prÃ©viens, tout de suite, j'aurais pu cÃ©der Ã  la facilitÃ© et parsemer mon billet d'annonce d'image de petit poney rose, pour coller aux thÃ¨mes du poney, de django, de l'amour platonique qui anime tout ceux qui font du django ( #sharethelove nanÂ ?? ha non pardon c'est pas la bonne confÃ©rence). Mais non, ...]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/11/15/pony-rider-in-the-skyyyy-cest-le-retour-des-djangocong-yeeha%c2%a0/]]></link>
    <pubDate>2011-11-15 22:54:51</pubDate>
    <category>Django</category>
  </item>
  <item>
    <title><![CDATA[[No] Djangocong 2012]]></title>
    <description><![CDATA[<p>C'est le 14 et le 15 avril 2012 que se tiendront les <a href="http://rencontres.django-fr.org/2012/">3èmes Rencontres Francophones Django</a>, à Carnon-Montpellier. Cet événement rassemble tous les amateurs de Django, que j'aime appeler les <em>Djangosaures</em> mais aussi les Pythonneux, les curieux... disons pour faire simple, ceux qui aiment les outils web pour perfectionnistes pressés. Je te laisse aller sur le site des Rencontres, y compris et surtout pour admirer le cadre absolument stupéfiant qui attend les participants.
</p>
<p>Cette année sera particulière, me concernant. En effet, professionnellement, je n'utilise plus Django. Ni Python, en fait, sauf pour des scripts système ou du code "vite fait bien fait". Je ne me voyais donc pas intervenir et piquer un <em>slot</em> de conférence à quelqu'un de réellement immergé dans Django et ses utilisations.
</p>
<p>En revanche, et parce que j'ai tout naturellement eu envie de donner quelque chose à cette communauté, j'ai postulé au staff des Djangocongs, mené de main de maître par <a href="http://prendreuncafe.com/">Nicolas</a> <a href="http://www.akei.com/fr">Perriault</a> et complété par une chic équipe tout ce qu'il y a de plus motivée.
</p>
<p>Mais assez parlé de moi.
</p>
<p>Parlons de toi.
</p>
<p>Oui, de toi, lecteur assidu de ce blog (<em>cough</em> <em>cough</em>), qui aime Python, le web, Django... Toi qui as <strong>utilisé ce framework</strong> pour programmer une machine à café sur IP, ou un système de géolocalisation des feuilles mortes sur les voies glissantes. Tu as <strong>utilisé Django en combinaison avec</strong> HTML5, OpenData, OAuth, des bases de données NoSQL, des API REST ? Ou quelque chose qui nous est <strong>totalement inconnu</strong>, mais qui est susceptible d'intéresser la bande de furieux qui va se diriger vers la grande bleue au mois d'avril ? Un bidule <strong>inédit</strong>, une application réutilisable, une librairie ? <strong>Viens donc nous en parler !</strong>
</p>
<p><a href="http://rencontres.django-fr.org/">L'appel à conférencier est relayé sur le site</a> et grâce à un formulaire que tu devras remplir scrupuleusement, tu pourras nous faire part de ta proposition de conférence, qui fera peut-être partie de la sélection finale.
</p>
<p>Mais rassure-toi, même si tu n'as pas de sujet intéressant à nous faire partager, rien ne t'empêchera de nous rejoindre pour ce week-end qui s'annonce des plus flamboyants, compte tenu du cadre, du programme (ça devrait commencer vendredi soir, se poursuivre samedi et se parachever par un dimanche après-midi plutôt sympa). Les inscriptions ne sont pas encore ouvertes, mais dès qu'elles le seront, ne t'inquiète pas, on t'en parlera.
</p>
<p>Pour finir, quelques liens essentiels :
</p>
<ul>
 <li>
     <a href="http://rencontres.django-fr.org/2012/">Le site des rencontres Django</a>
 </li>

 <li>
     <a href="https://twitter.com/djangocong">Le compte twitter @djangocong</a>, pour ne rien louper et discuter
 </li>

 <li>
     <a href="http://lanyrd.com/2012/rencontres-django/">La page Lanyrd</a> - le savais-tu ? Lanyrd est tout fait en Django...
 </li>
</ul>]]></description>
    <link><![CDATA[http://jehaisleprintemps.net/blog/fr/2011/11/15/djangocong-2012/]]></link>
    <pubDate>2011-11-15 21:11:41</pubDate>
  </item>
  <item>
    <title><![CDATA[[encolpe] Un nouveau salon de discussion francophone pour discuter autour de Python]]></title>
    <description><![CDATA[C&#8217;est tout neuf : la communauté Python francophone a un nouveau point de chute pour discuter de tout et de rien. http://www.reddit.com/r/PythonFr/ N&#8217;hésitez pas à vous inscrire !<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=encolpe.wordpress.com&blog=1743175&post=548&subd=encolpe&ref=&feed=1" width="1" height="1" />]]></description>
    <link><![CDATA[http://encolpe.wordpress.com/2011/11/03/un-nouveau-salon-de-discussion-francophone-pour-discuter-autour-de-python/]]></link>
    <pubDate>2011-11-03 14:28:12</pubDate>
    <category>ALDIL</category>
    <category>Blogroll</category>
    <category>Culture Libre</category>
    <category>fr</category>
    <category>planet</category>
    <category>planet-fr</category>
    <category>Python</category>
    <category>afpy</category>
    <category>reddit</category>
  </item>
  <item>
    <title><![CDATA[[j-mad] Django-ratelimit-backend ne rÃ©glera pas vos problÃ¨mes de foie, mais de rate oui…]]></title>
    <description><![CDATA[DeuxiÃ¨me Ã©dition de la django app du mois prÃ©cÃ©dent, encore une fois sur le fil, alors que les citrouilles continuent Ã  ricaner dans leurs coins. Ce mois-ci c'est django-ratelimit-backend, une des multiples apps de monsieur Brutasse (qui ne doit jamais dormir pour publier autant de truc...)

1- OÃ¹ on le trouve, comment on lâ€™installe, tout ...]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/11/01/django-ratelimit-backend-ne-reglera-pas-vos-problemes-de-foie-mais-de-rate-oui/]]></link>
    <pubDate>2011-10-31 22:42:16</pubDate>
    <category>La Django-app du mois</category>
    <category>Django</category>
    <category>Python</category>
    <category>review</category>
  </item>
  <item>
    <title><![CDATA[[tshirtman] zine img_upload]]></title>
    <description><![CDATA[<p>Un autre petit plugin zine, tout simple, mais qui simplifie la vie, pour envoyer des images sur le blog pendant qu’on écrit un article.</p>
<p>
Le fonctionnement est simple, un bouton javascript “click to upload image” est ajouté entre le formulaire de titre et de texte:<br />
<a href="http://pub.tshirtman.fr/blog_images/img_upload1.png"><img src="http://pub.tshirtman.fr/blog_images/img_upload1.png" /></a>
<br />
cliquer sur ce lien permet de choisir un fichier sur son disque, une fois validé, le lien vers l’image apparait en dessous du bouton javascript, y’a plus qu’a copier/coller :). Si une image du même nom existait, des caractères aléatoires sont ajoutés avant l’extension jusqu’à trouver un nom disponible, afin de ne pas écraser les images existantes.<br />
<a href="http://pub.tshirtman.fr/blog_images/img_upload1k.png"><img src="http://pub.tshirtman.fr/blog_images/img_upload1k.png" /></a></p>
<p>
<a href="http://pub.tshirtman.fr/blog_images/img_upload1x.png"><img src="http://pub.tshirtman.fr/blog_images/img_upload1x.png" /></a>
<br />
Un panneau de configuration simple est disponible, pour configurer les deux paramètres essentiels:
</p><ul>
<li>Le dossier ou stocker les images, ce dossier dois exister, il n’y a pas de gestion d’erreurs pour l’instant, si c’est mal configuré, vous ne verrez juste pas de lien apparaitre :).</li>
<li>L’url pour accéder à ce dossier pour les clients, soit vous configurez votre hébergement pour avoir un dossier pour les fichiers statiques, soit vous vous débrouillez pour poser ce dossier dans la partie statique de zine, et vous donnez l’url correspondante.</li>
</ul>
<p></p>
<p>
Le code est dispo sur github: <a href="https://github.com/tshirtman/zine_upload_images">https://github.com/tshirtman/zine_upload_images</a>.
</p>]]></description>
    <link><![CDATA[http://blog.tshirtman.fr/2011/10/24/zine-img-upload]]></link>
    <pubDate>2011-10-24 07:20:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[afpyro] Octobre]]></title>
    <description><![CDATA[<div class="section" id="octobre">
 
<p><strong>Viendez, viendez nombreux au premier afpyronnersaire transatlantique TM  le 20 octobre 2011 (le 19 à Bordeaux) à 19h30</strong></p>
<div class="section" id="pourquoi">
<h2>Pourquoi</h2>
<p>Figurez-vous qu’on nous observe depuis Montréal ! Et que c’est grâce à nos amis que l’on obtient le label transatlantique.</p>
<div class="highlight-python"><pre>[PM 09:08:40] &lt; No`&gt; salut les genpy
[PM 09:08:47] &lt; No`&gt; jpcw: té, j'voulais t'avoir
[PM 09:08:57] &lt; No`&gt; c'est a priori ok pour moi jeudi
[PM 09:09:03] &lt; jpcw&gt; ah cool
[PM 09:09:16] &lt; jpcw&gt; bon ben voilà afpyro à pau jeudi prochain
[PM 09:09:21] &lt; jpcw&gt; haypo: ^^
[PM 09:09:30] &lt; gawel&gt; pareil alors
[PM 09:09:44] &lt; gawel&gt; faut brancher mathieu pour montreal :)
[PM 09:09:49] &lt; jpcw&gt; ouep
[PM 09:09:59] &lt; gawel&gt; et je sais plus qui pour lille
[PM 09:10:04] &lt; jpcw&gt; motif afpynersaire
[PM 09:10:13] &lt; jpcw&gt; tdesvenain pour lille
[PM 09:10:19] &lt; gawel&gt; afpyroversaire
[PM 09:11:42] &lt; jpcw&gt; 17:36 &lt; gawel:#afpy&gt; afpyronnersaire
[PM 09:12:02] &lt; gawel&gt; haha
[PM 09:12:28] &lt; jpcw&gt; comme quoi logs.afpy.org c'est un vrai service !
[PM 09:12:38] &lt; No`&gt; tiré par les cheveux mais bon... si c'est un prétexte pour boire des godets avec des pythonneux...
[PM 09:13:21] &lt; jpcw&gt; No`: tu rigoles !
[PM 09:13:32] &lt; jpcw&gt; Montréal nous observe et tout</pre>
</div>
<p>Bien entendu il y a toujours les sceptiques</p>
<div class="highlight-python"><pre>[PM 09:14:33] &lt; No`&gt; euh... Montréal dans l'Aude ?
[PM 09:14:52] &lt; jpcw&gt; nope l'autre
[PM 09:15:57] &lt; No`&gt; faut jurer avec des Tabernak et tout ?
[PM 09:15:59] &lt; jpcw&gt; No`: log d'hier 17h34
[PM 09:16:20] &lt; jpcw&gt; 17h 31 pour le début
[PM 09:16:25] &lt; jpcw&gt; avec l'anniversaire toussa
[PM 09:17:42] &lt; haypo&gt; No`: matin
[PM 09:17:43] &lt; No`&gt; ah ben j'ai pas de log, je suis pas branché sur IRC 24h/24h
[PM 09:18:55] &lt; jpcw&gt; No`: http://logs.afpy.org
[PM 09:19:07] &lt; jpcw&gt; http://logs.afpy.org/archives/2011/10/03/
[PM 09:19:26] &lt; No`&gt; ah</pre>
</div>
<p>Si toi non plus tu n’es pas tout le temps sur le chan, ou si tu n’ a pas les logs voici donc la version que l’histoire retiendra pour le premier afpynnersaire transatlantique</p>
<div class="highlight-python"><pre>17:31 &lt; mlhamel1:#afpy&gt; Joyeux anniversaire l'AFPY !
17:31 &lt; ogrisel:#afpy&gt; joyeux anniversaire mlhamel1
17:32 &lt; mlhamel1:#afpy&gt; c'est pas mon anniversaire mais il semblerait que ce soit celui des 8 ans de lAFPY si j'en crois les internets
17:32 &lt; mlhamel1:#afpy&gt; ou en fait tarek, http://tarekziade.wordpress.com/2011/10/02/the-french-python-user-group-afpy-is-8-y-o/
17:33 &lt; jpcw:#afpy&gt; mlhamel1: bah il a realisé hier que ça faisait 8 ans
17:33 &lt; jpcw:#afpy&gt; mais ça n'est pas forcément la date exacte
17:33 &lt; mlhamel1:#afpy&gt; ne soyez pas modeste, faut bien choisir une date !
17:33 &lt; jpcw:#afpy&gt; mais merci quand même
17:34 &lt; mlhamel1:#afpy&gt; dites vous que montreal vous regarde entkâ ¦
17:36 &lt; jpcw:#afpy&gt; mlhamel1: tiens bien du coup cette phrase sera l'excuse pour le prochain afpyro
17:36 &lt; mlhamel1:#afpy&gt; coool
17:36 &lt; jpcw:#afpy&gt; nous faut toujours une justification
17:36 &lt; gawel:#afpy&gt; \o/</pre>
</div>
<p>Et voilà comment naît un afpyro transatlantique, ceci dit c’est du déjà vu, donc faut trouver un nom spécial pour l’occasion spéciale !</p>
<div class="highlight-python"><pre>17:36 &lt; mlhamel1:#afpy&gt; comme si vous aviez besoins de d'autres raison que l'alcool
17:36 &lt; gawel:#afpy&gt; afpyronnersaire
17:36 &lt; mlhamel1:#afpy&gt; hahaha
17:36 &lt; mlhamel1:#afpy&gt; j'aime
17:36 &lt; jpcw:#afpy&gt; mlhamel1: c'est pshyco quelque chose
17:37 &lt; jpcw:#afpy&gt; on sait pas exactement mais on se soigne :)
17:37 &lt; mlhamel1:#afpy&gt; c'est seulement de l'alcoolophilie c'est pas grave
17:37 &lt; mlhamel1:#afpy&gt; ca se cultive
17:37 &lt; mlhamel1:#afpy&gt; comme une collection de timbres
17:39 &lt; jpcw:#afpy&gt; mlhamel1: bon faut absolument que tu cales un afpyro à montreal en même temps que nous
17:39 &lt; jpcw:#afpy&gt; genre afpyronerssaire transatlantique
17:39 &lt; jpcw:#afpy&gt; ça commence à le faire
17:39 &lt; mlhamel1:#afpy&gt; dites moi la date et on va essayer de faire quelque chose
17:39 &lt; mlhamel1:#afpy&gt; :)
17:39 &lt; jpcw:#afpy&gt; avec un peu de chance on aura pas fini quand vous commencerez
17:39 &lt; mlhamel1:#afpy&gt; hahah</pre>
</div>
<p>C’est ainsi que notre ami gawel (le Seguela du Python) a inventé le concept d’afpyronnersaire !</p>
<p>Quand à ceux qui se demandent pourquoi rattacher l’image de Seguela à gawel, ben je ne peux pas faire autrement !</p>
<p>J’ai les logs, flemme de grepper mais je vous assure que gawel a écris ça un jour sur irc</p>
<div class="highlight-python"><pre>A 30 ans si tu sais pas grepper t'as raté ta vie !</pre>
</div>
<p>:)</p>
</div>
<div class="section" id="paris">
<h2>Paris</h2>
<p>La Grosse Caisse (<a class="reference external" href="http://www.lesamisdelapero.fr/paris/bars/183-la-grosse-caisse">plan a</a>)</p>
<ul class="simple"><li>Happy hour de 17h à 20h.</li>
</ul><dl class="docutils"><dt>Adresse :</dt>
<dd><div class="first last line-block">
<div class="line">160 rue Montmartre</div>
<div class="line">Paris IIe</div>
</div>
</dd>
</dl><p>Metro:</p>
<ul class="simple"><li>Grands Boulevards (ligne 8)</li>
<li>Bourse (ligne 3)</li>
</ul></div>
<div class="section" id="pau">
<h2>Pau</h2>
<p>au club d’échecs Henri IV</p>
<p>39 ter rue E. Guichenné 64000 PAU</p>
<p><a class="reference external" href="http://www.openstreetmap.org/?lat=43.29864&lon=-0.368015&zoom=16&layers=0B00FTFT">Plan OSM</a></p>
</div>
<div class="section" id="lille">
<h2>Lille</h2>
<p>À la Capsule (<a class="reference external" href="http://maps.google.fr/maps?q=la+capsule+lille&hl=fr&fb=1&gl=fr&hq=la+capsule&hnear=0x47c2d579b3256e11:0x40af13e81646360,Lille&cid=0,0,12583889713601582758&t=m&z=16&vpsrc=0&iwloc=A">Plan Capsule</a>)
au coin de la rue des Trois Mollettes et de la rue Doudin</p>
</div>
<div class="section" id="strasbourg">
<h2>Strasbourg</h2>
<p>Au <a class="reference external" href="http://www.thedubliners.fr/">Dubliner’s</a>, rue du vieux marché aux poissons, à partir de 19h. Merci de vous inscrire sur la page suivante : <a class="reference external" href="http://www.facebook.com/event.php?eid=225873050807967">http://www.facebook.com/event.php?eid=225873050807967</a> .</p>
<p><a class="reference external" href="http://maps.google.com/maps/place?cid=18264006843622589785">Plan ici</a></p>
</div>
<div class="section" id="bordeaux">
<h2>Bordeaux</h2>
<p>Au <a class="reference external" href="http://www.cambridge-pub.com/index_content.html">Cambridge Arms</a>, 27 rue Rode, 33000 Bordeaux.
Attention comme on est un peu anglais à Bordeaux , on fait ça en avance des autres villes. C’est donc le <strong>19 octobre à 19 heures</strong> qu’aura lieu l’afpyro à Bordeaux.</p>
</div>
</div>]]></description>
    <link><![CDATA[http://afpy.ro/dates/2011/2011_10_20]]></link>
    <pubDate>2011-10-20 00:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[afpyro] Octobre]]></title>
    <description><![CDATA[<div class="section" id="octobre">
 
<p><strong>Viendez, viendez nombreux au premier afpyronnersaire transatlantique TM  le 13 octobre 2011 à 19h30</strong></p>
</div>
<div class="section" id="pourquoi">
<h1>Pourquoi</h1>
<p>Figurez-vous qu’on nous observe depuis Montréal ! Et que c’est grâce à nos amis que l’on obtent le label transatlantique.</p>
<div class="highlight-python"><pre>[PM 09:08:40] &lt; No`&gt; salut les genpy
[PM 09:08:47] &lt; No`&gt; jpcw: té, j'voulais t'avoir
[PM 09:08:57] &lt; No`&gt; c'est a priori ok pour moi jeudi
[PM 09:09:03] &lt; jpcw&gt; ah cool
[PM 09:09:16] &lt; jpcw&gt; bon ben voilà afpyro à pau jeudi prochain
[PM 09:09:21] &lt; jpcw&gt; haypo: ^^
[PM 09:09:30] &lt; gawel&gt; pareil alors
[PM 09:09:44] &lt; gawel&gt; faut brancher mathieu pour montreal :)
[PM 09:09:49] &lt; jpcw&gt; ouep
[PM 09:09:59] &lt; gawel&gt; et je sais plus qui pour lille
[PM 09:10:04] &lt; jpcw&gt; motif afpynersaire
[PM 09:10:13] &lt; jpcw&gt; tdesvenain pour lille
[PM 09:10:19] &lt; gawel&gt; afpyroversaire
[PM 09:11:42] &lt; jpcw&gt; 17:36 &lt; gawel:#afpy&gt; afpyronnersaire
[PM 09:12:02] &lt; gawel&gt; haha
[PM 09:12:28] &lt; jpcw&gt; comme quoi logs.afpy.org c'est un vrai service !
[PM 09:12:38] &lt; No`&gt; tiré par les cheveux mais bon... si c'est un prétexte pour boire des godets avec des pythonneux...
[PM 09:13:21] &lt; jpcw&gt; No`: tu rigoles !
[PM 09:13:32] &lt; jpcw&gt; Montréal nous observe et tout</pre>
</div>
<p>Bien entendu il y a toujours les sceptiques</p>
<div class="highlight-python"><pre>[PM 09:14:33] &lt; No`&gt; euh... Montréal dans l'Aude ?
[PM 09:14:52] &lt; jpcw&gt; nope l'autre
[PM 09:15:57] &lt; No`&gt; faut jurer avec des Tabernak et tout ?
[PM 09:15:59] &lt; jpcw&gt; No`: log d'hier 17h34
[PM 09:16:20] &lt; jpcw&gt; 17h 31 pour le début
[PM 09:16:25] &lt; jpcw&gt; avec l'anniversaire toussa
[PM 09:17:42] &lt; haypo&gt; No`: matin
[PM 09:17:43] &lt; No`&gt; ah ben j'ai pas de log, je suis pas branché sur IRC 24h/24h
[PM 09:18:55] &lt; jpcw&gt; No`: http://logs.afpy.org
[PM 09:19:07] &lt; jpcw&gt; http://logs.afpy.org/archives/2011/10/03/
[PM 09:19:26] &lt; No`&gt; ah</pre>
</div>
<p>Si toi non plus tu n’es pas tout le temps sur le chan, ou si tu n’ a pas les logs voici donc la version que l’histoire retiendra pour le premier afpynnersaire transatlantique</p>
<div class="highlight-python"><pre>17:31 &lt; mlhamel1:#afpy&gt; Joyeux anniversaire l'AFPY !
17:31 &lt; ogrisel:#afpy&gt; joyeux anniversaire mlhamel1
17:32 &lt; mlhamel1:#afpy&gt; c'est pas mon anniversaire mais il semblerait que ce soit celui des 8 ans de lAFPY si j'en crois les internets
17:32 &lt; mlhamel1:#afpy&gt; ou en fait tarek, http://tarekziade.wordpress.com/2011/10/02/the-french-python-user-group-afpy-is-8-y-o/
17:33 &lt; jpcw:#afpy&gt; mlhamel1: bah il a realisé hier que ça faisait 8 ans
17:33 &lt; jpcw:#afpy&gt; mais ça n'est pas forcément la date exacte
17:33 &lt; mlhamel1:#afpy&gt; ne soyez pas modeste, faut bien choisir une date !
17:33 &lt; jpcw:#afpy&gt; mais merci quand même
17:34 &lt; mlhamel1:#afpy&gt; dites vous que montreal vous regarde entkâ ¦
17:36 &lt; jpcw:#afpy&gt; mlhamel1: tiens bien du coup cette phrase sera l'excuse pour le prochain afpyro
17:36 &lt; mlhamel1:#afpy&gt; coool
17:36 &lt; jpcw:#afpy&gt; nous faut toujours une justification
17:36 &lt; gawel:#afpy&gt; \o/</pre>
</div>
<p>Et voilà comment naît un afpyro transatlantique, ceci dit c’est du déjà vu, donc faut trouver un nom spécial pour l’occasion spéciale !</p>
<div class="highlight-python"><pre>17:36 &lt; mlhamel1:#afpy&gt; comme si vous aviez besoins de d'autres raison que l'alcool
17:36 &lt; gawel:#afpy&gt; afpyronnersaire
17:36 &lt; mlhamel1:#afpy&gt; hahaha
17:36 &lt; mlhamel1:#afpy&gt; j'aime
17:36 &lt; jpcw:#afpy&gt; mlhamel1: c'est pshyco quelque chose
17:37 &lt; jpcw:#afpy&gt; on sait pas exactement mais on se soigne :)
17:37 &lt; mlhamel1:#afpy&gt; c'est seulement de l'alcoolophilie c'est pas grave
17:37 &lt; mlhamel1:#afpy&gt; ca se cultive
17:37 &lt; mlhamel1:#afpy&gt; comme une collection de timbres
17:39 &lt; jpcw:#afpy&gt; mlhamel1: bon faut absolument que tu cales un afpyro à montreal en même temps que nous
17:39 &lt; jpcw:#afpy&gt; genre afpyronerssaire transatlantique
17:39 &lt; jpcw:#afpy&gt; ça commence à le faire
17:39 &lt; mlhamel1:#afpy&gt; dites moi la date et on va essayer de faire quelque chose
17:39 &lt; mlhamel1:#afpy&gt; :)
17:39 &lt; jpcw:#afpy&gt; avec un peu de chance on aura pas fini quand vous commencerez
17:39 &lt; mlhamel1:#afpy&gt; hahah</pre>
</div>
<p>C’est ainsi que notre ami gawel (le Seguela du Python) a inventé le concept d’afpyronnersaire !</p>
<p>Quand à ceux qui se demandent pourquoi rattacher l’image de Seguela à gawel, ben je ne peux pas faire autrement !</p>
<p>J’ai les logs, flemme de grepper mais je vous assure que gawel a écris ça un jour sur irc</p>
<div class="highlight-python"><pre>A 30 ans si tu sais pas grepper t'as râté ta vie !</pre>
</div>
<p>:)</p>
<div class="section" id="paris">
<h2>Paris</h2>
<p>La Grosse Caisse (<a class="reference external" href="http://www.lesamisdelapero.fr/paris/bars/183-la-grosse-caisse">plan a</a>)</p>
<ul class="simple"><li>Happy hour de 17h à 20h.</li>
</ul><dl class="docutils"><dt>Adresse :</dt>
<dd><div class="first last line-block">
<div class="line">160 rue Montmartre</div>
<div class="line">Paris IIe</div>
</div>
</dd>
</dl><p>Metro:</p>
<ul class="simple"><li>Grands Boulevards (ligne 8)</li>
<li>Bourse (ligne 3)</li>
</ul></div>
<div class="section" id="pau">
<h2>Pau</h2>
<p>au club d’échecs Henri IV</p>
<p>39 ter rue E. Guichenné 64000 PAU</p>
<p><a class="reference external" href="http://www.openstreetmap.org/?lat=43.29864&lon=-0.368015&zoom=16&layers=0B00FTFT">Plan OSM</a></p>
</div>
</div>]]></description>
    <link><![CDATA[http://afpy.ro/dates/2011/2011_10_13]]></link>
    <pubDate>2011-10-13 00:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[carlchenet] Brebis : contrôle automatisé de vos sauvegardes]]></title>
    <description><![CDATA[Vous faites régulièrement des sauvegardes ? Bravo, c&#8217;est une bonne pratique. Mais vous assurez-vous régulièrement qu&#8217;elles sont exploitables ? Le jour où vous aurez besoin de votre sauvegarde pour restaurer votre infrastructure, êtes-vous bien sûr que cette sauvegarde réalisée il y a trois mois contient bien le seul et unique fichier indispensable pour relancer votre [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=carlchenet.wordpress.com&blog=7722010&post=1219&subd=carlchenet&ref=&feed=1" width="1" height="1" />]]></description>
    <link><![CDATA[http://carlchenet.wordpress.com/2011/10/12/brebis-controle-automatise-de-vos-sauvegardes/]]></link>
    <pubDate>2011-10-12 20:49:37</pubDate>
    <category>april</category>
    <category>debian-fr</category>
    <category>planet-libre</category>
    <category>python</category>
    <category>brebis</category>
  </item>
  <item>
    <title><![CDATA[[carlchenet] Python 2.7 par défaut dans Debian Sid]]></title>
    <description><![CDATA[Python 2.7 (précisément 2.7.2) est depuis quelques jours la version par défaut de Python intégrée à la version instable &#8220;Sid&#8221; de Debian, remplaçant à cette fonction Python 2.6.7. Pour rappel, la branche Python 2 s&#8217;achève avec la version 2.7. Le cycle de maintenance de cette version sera particulièrement long mais aucune version majeure ne sera [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=carlchenet.wordpress.com&blog=7722010&post=1236&subd=carlchenet&ref=&feed=1" width="1" height="1" />]]></description>
    <link><![CDATA[http://carlchenet.wordpress.com/2011/10/08/python-2-7-par-defaut-dans-debian-sid/]]></link>
    <pubDate>2011-10-08 12:11:10</pubDate>
    <category>april</category>
    <category>debian-fr</category>
    <category>planet-libre</category>
    <category>python</category>
    <category>debian</category>
    <category>sid</category>
  </item>
  <item>
    <title><![CDATA[[j-mad] Sans lui, zinnia-rrivait pas. Lui quiÂ ? Django Zinnia, la django app du mois prÃ©cÃ©dent]]></title>
    <description><![CDATA[Cela fait maintenant plusieurs mois que je n'arrive pas Ã  rattraper le retard d'une django app du mois. J'ai donc dÃ©cidÃ© de suivre les conseils de ce cher daks et d'officialiser mon retard en parlant de Django app du mois prÃ©cÃ©dent. Voici donc la premiÃ¨re django app du mois prÃ©cÃ©dent (et bon j'ai bien ...]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/09/30/sans-lui-zinnia-rrivait-pas-lui-qui%c2%a0-django-zinnia-la-django-app-du-mois-precedent/]]></link>
    <pubDate>2011-09-30 21:59:56</pubDate>
    <category>La Django-app du mois</category>
  </item>
  <item>
    <title><![CDATA[[j-mad] Des Geeks, de la biÃ¨res, des crÃªpes et du Python, vive PyconFr Ã  Rennes]]></title>
    <description><![CDATA[(Note de l'auteur : ce billet a Ã©tÃ© Ã©crit dans le TGV de retour, trÃ¨s tÃ´t, Ã  une heure ou les informaticiens ne devraient pas Ãªtre rÃ©veillÃ©s... :) )

&#160;

Ce week-end a eu lieu PyconFR. Et pour une fois, ce n'Ã©tait pas Ã  Paris, mais Ã  Rennes. Moi qui suit pour avoir des events qui ...]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/09/19/des-geeks-de-la-bieres-des-crepes-et-du-python-vive-pyconfr-a-rennes/]]></link>
    <pubDate>2011-09-19 12:56:05</pubDate>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[afpyro] Septembre]]></title>
    <description><![CDATA[<div class="section" id="septembre">
 
<p><strong>Viendez, viendez nombreux à l’Afpyro de la</strong> <a class="reference external" href="http://pycon.fr">PyCon-FR 2011</a></p>
<div class="section" id="rennes">
<h2>Rennes</h2>
<p>17 septembre à partir de 18h30</p>
</div>
</div>]]></description>
    <link><![CDATA[http://afpy.ro/dates/2011/2011_09_17]]></link>
    <pubDate>2011-09-17 00:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[ascendances] Ajouter la détection des bases de données zodb par file]]></title>
    <description><![CDATA[ZODB est la base de données utilisée par Zope (LE serveur d&#8217;application Python). file est un outil en ligne de commande Unix, quasiment aussi vieux qu&#8217;Unix lui-même : il existe depuis novembre 1973. Depuis, il a été amélioré et de nombreux formats de fichier ont été ajoutés. Malheureusement, les bases de données Zodb ne sont pasn&#8217;étaient [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ascendances.wordpress.com&blog=24442983&post=9&subd=ascendances&ref=&feed=1" width="1" height="1" />]]></description>
    <link><![CDATA[http://ascendances.wordpress.com/2011/09/13/ajouter-la-detection-des-bases-de-donnees-zodb-par-file/]]></link>
    <pubDate>2011-09-13 20:35:02</pubDate>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[tshirtman] image proxifier]]></title>
    <description><![CDATA[<p>Juste pour signaler un petit outil que j’ai réalisé pour dépanner une connaissance, celle ci ayant parfois “besoins” d’accéder as des images sur des domaines bloqués dans son entreprise, et qui donne l’occasion de montrer un peu de code flask. C’est <a href="http://proxpix.tshirtman.fr/">ici</a>, tout simple, ça ne marche que pour les contenus simples (image/vidéo), pas les pages complêtes, y’a sans doute moyen de faire mieux, mais c’était pour dépanner :).
</p>]]></description>
    <link><![CDATA[http://blog.tshirtman.fr/2011/9/11/image-proxifier]]></link>
    <pubDate>2011-09-11 14:42:54</pubDate>
  </item>
  <item>
    <title><![CDATA[[afpyro] Septembre]]></title>
    <description><![CDATA[<div class="section" id="septembre">
 
<div class="section" id="pourquoi">
<h2>Pourquoi</h2>
<p>Parce que.</p>
</div>
<div class="section" id="quand">
<h2>Quand</h2>
<p>Jeudi 1er Septembre. De ~19h à dernier métro</p>
</div>
<div class="section" id="ou">
<h2>Où</h2>
<p>Café Chéri(e) (<a class="reference external" href="http://www.openstreetmap.org/?minlon=2.37511014938354&minlat=48.8738555908203&maxlon=2.37531042098999&maxlat=48.8740577697754">plan</a>)</p>
<p>44 bd de la Villette, 75019 Paris (FR).</p>
<p>M°: Belleville /Colonel Fabien</p>
</div>
</div>]]></description>
    <link><![CDATA[http://afpy.ro/dates/2011/2011_09_01]]></link>
    <pubDate>2011-09-01 00:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[j-mad] Django-Autocomplete, and all your requests will be complete, but  be careful with the horn]]></title>
    <description><![CDATA[Bon, je suis encore en retard pour la django app du mois de juillet, mais je m'amÃ©liore, je n'ai plus que 20 jours de retard.

EspÃ©rons que la django app du mois d'aout soit Ã  l'heure.... En attendant de voir si en aoÃ»t, Ã  l'heure je serais, je vous propose de dÃ©couvrir cette petite django-app ...]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/08/20/django-autocomplete-and-all-your-requests-will-be-complete-but-be-careful-with-the-horn/]]></link>
    <pubDate>2011-08-19 23:33:26</pubDate>
    <category>La Django-app du mois</category>
    <category>Django</category>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[j-mad] Impostor, aucun rapport avec le courrier, la poste ou les gens de petite taille]]></title>
    <description><![CDATA[Avec Ã©normÃ©ment de retard (non monsieur Daks, je ne vais pas renommer ma rubrique la django app du mois dernier) voici donc la django app du mois de juin.

Ce mois-ci, enfin le mois dernier, je vais vous prÃ©senter Impostor une application que j'ai dÃ©couvert au dÃ©tour d'un tweet (de dzen je crois )
1- OÃ¹ ...]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/07/28/impostor-aucun-rapport-avec-le-courrier-la-poste-ou-les-gens-de-petite-taille/]]></link>
    <pubDate>2011-07-28 19:54:25</pubDate>
    <category>La Django-app du mois</category>
    <category>Django</category>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[tshirtman] zine_social]]></title>
    <description><![CDATA[<p>
Juste pour annoncer un petit plugin zine que j’ai codé, permettant d’ajouter une barre de réseau sociaux en bas des posts de blogs, seuls google +1, le tweet this et le like de facebook sont géré pour l’instant, mais toute contribution est bienvenue, c’est vraiment juste ajouter le code du bouton avec la variable “url” à la bonne place, et zou…
</p>
<p>
Le <a href="https://github.com/tshirtman/zine_social">code est dispo sur github</a>, et vous pouvez normalement voir le résultat en dessous de ce post :)</p>]]></description>
    <link><![CDATA[http://blog.tshirtman.fr/2011/7/21/zine-social]]></link>
    <pubDate>2011-07-21 23:11:50</pubDate>
  </item>
  <item>
    <title><![CDATA[[afpyro] Juillet]]></title>
    <description><![CDATA[<div class="section" id="juillet">
 
<p><strong>Viendez, viendez nombreux au premier anniversaire des afpyros nationaux le 21 Juillet 2011 à 19h30</strong></p>
<div class="section" id="pau">
<h2>Pau</h2>
<p>au club d’échecs Henri IV</p>
<p>39 ter rue E. Guichenné 64000 PAU</p>
<p><a class="reference external" href="http://www.openstreetmap.org/?lat=43.29864&lon=-0.368015&zoom=16&layers=0B00FTFT">Plan OSM</a></p>
</div>
</div>]]></description>
    <link><![CDATA[http://afpy.ro/dates/2011/2011_07_21]]></link>
    <pubDate>2011-07-21 00:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[ascendances] Poésie en Python (3)]]></title>
    <description><![CDATA[Cet article termine la série de poésie en Python. L&#8217;objectif est de corriger les défauts signalés dans le second article pour enfin livrer une version finale de la poésie. Le premier article présentait les contraintes d&#8217;écriture et les poèmes créés. Le jury a validé globalement le poème mais reproche les lignes de code trop visibles [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ascendances.wordpress.com&blog=24442983&post=64&subd=ascendances&ref=&feed=1" width="1" height="1" />]]></description>
    <link><![CDATA[http://ascendances.wordpress.com/2011/07/07/poesie-en-python-3/]]></link>
    <pubDate>2011-07-07 21:14:16</pubDate>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[tshirtman] usage de pylint]]></title>
    <description><![CDATA[<h2>Pylint</h2>
<p>J’ai utilisé pas mal pylint ces dernières semaines, pour me rendre compte de l’état général d’<a href="http://usf.tuxfamily.org">USF</a>, et j’avoue, que c’était pas trop brillant, vu qu’il m’offrait une note généreuse de 2.5/10 environ… pour mes 11000 lignes de codes, ça promettait du boulot.</p>

<p>Et ben oui, d’où le “ces dernières semaines” mais je suis pas mécontent du résultat, beaucoup de namespaces ont été nettoyés, des logiques ont été simplifiées un peu partout, beaucoup de choses ont été documentés, et même certains refactoring conséquents ont été entrepris, et assez bien aboutis</p>

<h2>Comment?</h2>
<p>Et bien en lançant
</p><pre>pylint usf
</pre>
à la racine du projet, bien sur (vu que le plus gros de mon code est dans le module usf), voir des cibles plus précises quand on sait qu’on a beaucoup de boulot sur un endroit.
<p></p>
<p>Mais… il y a un mais, en effet, on peut, et on est en droit de ne pas être d’accord avec les opinions de pylint, sur ce qui est bon ou pas, si je suis d’accord sur le fait qu’il applique la pep8 aussi fortement que possible, le voir dénigrer map/filter/reduce, sous prétexte que Guido préfère écrire
</p><pre>[ x for x in S if P(x) ]</pre>
plutôt que
<pre>filter(P,S)</pre>
(parait que c’est “plus simple et plus lisible”…).<br />
ou m’engueuler par ce que mon “i” dans
<pre>for i in items:
    i.update()
</pre>
est une variable d’une lettre, je ne suis pas d’accord, il y a des endroit ou ça fais sens, et même
<pre>class Entity(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y
</pre>
Avoir des attributs d’une longueur de 1 caractère n’est pas un crime non plus…<p></p>

<p>
Heureusement, pylint est fortement configurable, et on peut fortement influencer ses messages remontés, ainsi que sa note (héhé) en lui faisant utiliser une configuration alternative… le plus simple pour cela, est de lui faire cracher sa configuration actuelle, de la sauvegarder, et de la modifier:
</p><pre>pylint --generate-rcfile &gt; pylintrc
vim pylintrc # oui, bon, le meilleur éditeur que vous avez sous la main quoi ;)
</pre>
Le nommer ainsi permet à pylint de le détecter automatiquement s’il est dans le dossier courant, on peut aussi le placer dans son dossier ~/ et le nommer “.pylintrc” si on veux que ce soit le fichier de configuration par défaut.
<p></p>

<p>
Qu’est ce que je change (moi, vous c’est vous qui voyez à l’usage ;) ?
</p><pre>disable=W0201
</pre>
(<a href="http://pylint-messages.wikidot.com/messages:w0201">Warning 0201</a>) Oui, ma classe n’est pas toujours complète au sortir du __init__, c’est notamment le cas pour toutes les classes d’un module, du fait de sa construction particulière, c’est vrai que plus d’utilisation de super() pourrait sans doute éviter ça… on verra si je réactive ce message un de ces 4, dans certains cas, cependant, c’est bien agréable de profiter du dynamisme de notre langage…
<pre>include-ids=yes</pre>
Je veux voir l’identifiant des erreurs remontées, pour pouvoir les black-lister si je ne suis pas d’accord ;) ou les comprendre en cherchant sur google, si le message n’est pas assez clair (ça n’arrive pas souvent :)).
<pre>attr-rgx=[a-z_][a-z0-9_]{0,30}$

argument-rgx=[a-z_][a-z0-9_]{0,30}$

variable-rgx=[a-z_][a-z0-9_]{0,30}$
</pre>
la regex qui valide les noms de variables locale, d’attribut ou d’argument passé à un callable, afin d’autoriser les noms d’une lettre, comme dit plus haut (à noter que connaître un peu les regexp, <a href="http://xkcd.com/208/">ça sert trèèèès souvent…</a> ;))
<pre>bad-functions=apply,input,exec,eval
</pre>
par ce que la prog fonctionnelle (filter/map/reduce) je ne vois pas de raisons de m’en priver…
<p></p>

<p>Voilà, je change pas grand chose en fait, c’est plutôt bon signe :).
</p>

<h2>Conclusion?</h2>
<p>
ma note actuelle? ;)
</p><pre>[SNIP]


Report
======
3763 statements analysed.

Messages by category
--------------------

+-----------+-------+---------+-----------+
|type       |number |previous |difference |
+===========+=======+=========+===========+
|convention |103    |103      |=          |
+-----------+-------+---------+-----------+
|refactor   |55     |55       |=          |
+-----------+-------+---------+-----------+
|warning    |58     |58       |=          |
+-----------+-------+---------+-----------+
|error      |6      |6        |=          |
+-----------+-------+---------+-----------+

[SNIP]


Global evaluation
-----------------
Your code has been rated at 9.35/10 (previous run: 9.35/10)

[SNIP]
</pre>
Et oui, il manque encore des docstrings, notamment en entête de fichiers, mais ça progresse…
<p></p>]]></description>
    <link><![CDATA[http://blog.tshirtman.fr/2011/7/4/usage-de-pylint]]></link>
    <pubDate>2011-07-04 01:31:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[carlchenet] Objectifs pour Debian Wheezy]]></title>
    <description><![CDATA[Suivez-moi sur Identi.ca : http://identi.ca/carlchenet Depuis le début du développement de Wheezy, la prochaine version stable du projet Debian, les objectifs sont peu à peu identifiés. Ce billet en évoque quelques-uns  sur lesquels travaillent les contributeurs au projet Debian que je trouve intéressant de présenter. Tout cela est bien sûr à prendre au conditionnel et [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=carlchenet.wordpress.com&blog=7722010&post=1180&subd=carlchenet&ref=&feed=1" width="1" height="1" />]]></description>
    <link><![CDATA[http://carlchenet.wordpress.com/2011/07/04/objectifs-pour-debian-wheezy/]]></link>
    <pubDate>2011-07-03 22:03:55</pubDate>
    <category>april</category>
    <category>debian-fr</category>
    <category>planet-libre</category>
    <category>python</category>
    <category>debian</category>
    <category>wheezy</category>
  </item>
  <item>
    <title><![CDATA[[ascendances] Poésie en Python (2)]]></title>
    <description><![CDATA[Après avoir livré la poésie en Python (cf. épisode précédent) au jury, celui-ci rend sa décision. Pour apprécier le poème et les pertinentes remarques du jury, il est nécessaire de comprendre le fonctionnement du programme : The art of poem programming À la lecture, le texte raconte l&#8217;histoire d&#8217;un amoureux déçu qui décide de se suicider. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ascendances.wordpress.com&blog=24442983&post=34&subd=ascendances&ref=&feed=1" width="1" height="1" />]]></description>
    <link><![CDATA[http://ascendances.wordpress.com/2011/06/30/poesie-en-python-2/]]></link>
    <pubDate>2011-06-30 09:55:12</pubDate>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[ascendances] Poésie en Python (1)]]></title>
    <description><![CDATA[Python est un langage très expressif. Python permet des styles variés de programmation (procédural, objet, fonctionnel). Python est livré avec de nombreuses bibliothèques qui simplifie la vie au quotidien. Python est&#8230; « Si c&#8217;est si puissant, tu pourrais écrire de la poésie en Python ? » La demande est plutôt inattendue mais ce n&#8217;est pas [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ascendances.wordpress.com&blog=24442983&post=5&subd=ascendances&ref=&feed=1" width="1" height="1" />]]></description>
    <link><![CDATA[http://ascendances.wordpress.com/2011/06/23/poesie-en-python-1/]]></link>
    <pubDate>2011-06-23 20:54:22</pubDate>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[Itaapy] Générer un document ODT à partir d'un document template]]></title>
    <description><![CDATA[<div class="actu-content">
    <div class="actu-date">15/06/2011 14h00</div>
    <div class="actu-title">
      <h1>Générer un document ODT à partir d'un document template</h1>
    </div>
    <p>Avec la librarie Python <a href="http://www.hforge.org/itools/">itools</a>, (Version 0.62) vous pouvez générer des documents ODT à partir d'un document ODT modèle et d'un language de template. Il est ainsi très simple de réaliser un script vous permettant de réaliser du publipostage.</p>
<p>Créez un modèle ODT et utilisez le language de template itools.STL.</p>
<p><a href="http://blog.itaapy.com/blog/images/office/;download"><img width="585" alt="" height="531" src="http://blog.itaapy.com/blog/images/office/;download" /></a></p>
<p>Voici le code Python permettant de réaliser du publipostage à partir de ce document modéle:</p>
<pre>from itools.fs import lfs<br />from itools.handlers import RWDatabase<br />from itools.odf.odf import stl_to_odt, ODTFile<br /><br />namespace = {'firstname': 'Jean',  'lastname': 'Dupond'}<br /># Load the model<br />rw_database = RWDatabase(fs=lfs)<br />handler = rw_database.get_handler('model.odt')<br /># Fill the odt file handler with the namespace dictionnary content.<br />document = stl_to_odt(handler, namespace)<br /># Save the letter<br />handler = ODTFile(string=document)<br />rw_database.set_handler('document.odt', handler)<br />rw_database.save_changes()<br /><br /></pre>
<p>Voilà pour la démonstration.</p>
  </div>]]></description>
    <link><![CDATA[http://blog.itaapy.com/blog/generer-un-document-odt-a-partir-d-un-document-template]]></link>
    <pubDate>2011-06-15 13:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[j-mad] Django-urlcrypt, aprÃ¨s les contes c’est l’url de la crypte.]]></title>
    <description><![CDATA[Voila, comme dit dans le billet prÃ©cÃ©dent, je vais donc faire deux billets de django app de mai, Ã§a m'apprendra Ã  Ãªtre en retard.

Donc la deuxiÃ¨me django app du mois sera django-urlcrypt. Une petite prÃ©cision avant d'aller plus loin, c'est une des toutes premiÃ¨res fois oÃ¹ je vais parler d'une app sans avoir fait ...]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/06/04/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte/]]></link>
    <pubDate>2011-06-04 15:26:46</pubDate>
    <category>La Django-app du mois</category>
  </item>
  <item>
    <title><![CDATA[[j-mad] Django-countries ,l’app garantie sans cowboy ni rodÃ©o. djangoApp de mai 1 sur 2]]></title>
    <description><![CDATA[Il va falloir que je me surveille .. parce qu'encore une fois je publie ma django app du mois un peu en retard. Pas grand chose, juste 4 jours.. Mais Ã§a commence comme Ã§a et aprÃ¨s on finit par ne plus tenir de rythme du tout.

Du coup, pour marquer, le coup, je publierais deux ...]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/06/04/django-countries-lapp-garantie-sans-cowboy-ni-rodeo-djangoapp-de-mai-1-sur-2/]]></link>
    <pubDate>2011-06-04 13:29:33</pubDate>
    <category>La Django-app du mois</category>
    <category>Django</category>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[tshirtman] usf 0.1.6]]></title>
    <description><![CDATA[<p>
L’équipe de développement d’ultimate-smash-friends, a la joie et le bonheur d’annoncer une nouvelle version du projet, apportant son lot d’améliorations :), et enfin depuis longtemps, une nouvelle version synchronisé entre les différentes plateformes supportées (Linux/Windows/MacOsX).</p>
<p>
Pour récapituler les changements depuis la dernière version, on pourras noter une sensible améliorations de l’intelligence artificielle (qui commence à me donner des difficulter pour gagner les parties, c’est bon signe :)), la correction d’un bug bloquant sous windows vista/seven (mauvaise placement du fichier de log), et un meilleur installeur pour windows (propose en option les installation de python/pygame/numpy, qui sont nécessaire pour jouer.</p>

<p>Sans plus attendre, les liens vers les différents packages!
</p><ul>
<li>Ubuntu: <a href="http://launchpad.net/ultimate-smash-friends/0.1/0.1.6/+download/ultimate-smash-friends_0.1.6-1_all.deb">natty narwal</a> (ou le PPA ppa:usf-team/usf)</li>
<li>Autres linux: <a href="http://launchpad.net/ultimate-smash-friends/0.1/0.1.6/+download/ultimate-smash-friends-0.1.6.tar.gz">version zip</a></li>
<li>Windows: <a href="http://launchpad.net/ultimate-smash-friends/0.1/0.1.6/+download/ultimate-smash-friends-0.1.6-deps-setup.exe">installeur ici</a> testé sous xp et seven</li>
<li>MacOSx: <a href="http://launchpad.net/ultimate-smash-friends/0.1/0.1.6/+download/ultimate-smash-friends_0.1.6.dmg">dmg</a> produit et testé sur snow leopard par Largiel</li>
</ul>
<p></p>

<p>
Bien sur, les rapports de bugs sont toujours les bienvenues ici: <a href="https://bugs.launchpad.net/ultimate-smash-friends">https://bugs.launchpad.net/ultimate-smash-friends</a>
</p>
<p><b>Mise à jours:</b> Correction du fichier tar.gz, correction de l’installeur windows, les raccourcis n’étaient pas fonctionnels.</p>]]></description>
    <link><![CDATA[http://blog.tshirtman.fr/2011/5/8/usf-0-1-6]]></link>
    <pubDate>2011-05-08 17:27:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[afpyro] Mai]]></title>
    <description><![CDATA[<div class="section" id="mai">
 
<p><strong>afpyro le mercredi 4 mai 2011 à 19h00</strong></p>
<div class="section" id="pourquoi">
<h2>Pourquoi</h2>
<p>En mai, fais ce qu’il te plait, the one best way.
The four of may, foremen.</p>
<p>Au programme, un ordre du soir très serré. Notamment, à Paris, on pourra prendre l’apéro, discuter de tout et de Solutions Linux.</p>
</div>
<div class="section" id="ou">
<h2>Où</h2>
<div class="section" id="paris">
<h3>Paris</h3>
<p>la grosse caisse (<a class="reference external" href="http://www.lesamisdelapero.fr/paris/bars/183-la-grosse-caisse">plan a</a>)</p>
<ul class="simple"><li>Happy hour de 17h à 20h.</li>
<li>Soirée Jam session le mercredi.</li>
</ul><dl class="docutils"><dt>Adresse :</dt>
<dd><div class="first last line-block">
<div class="line">160 rue Montmartre</div>
<div class="line">Paris IIe</div>
</div>
</dd>
</dl><p>Metro:</p>
<ul class="simple"><li>Grands Boulevards (ligne 8)</li>
<li>Bourse (ligne 3)</li>
</ul></div>
</div>
</div>]]></description>
    <link><![CDATA[http://afpy.ro/dates/2011/2011_05_04]]></link>
    <pubDate>2011-05-04 00:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[j-mad] Admin django, deux petits tips pour les change_list]]></title>
    <description><![CDATA[L'admin django est vraiment un bonheur pour la productivitÃ©. On peut faire plein de choses en moins de temps qu'il n'en faut pour Ã©crire le descriptif des choses en questions.

AprÃ¨s avoir passÃ© quelques heures Ã  farfouiller dans la doc et Ã  faire quelques tests, je me suis dit qu'il n'y avait pas de raisons ...]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/05/03/admin-django-deux-petits-tips-pour-les-change_list/]]></link>
    <pubDate>2011-05-03 21:57:40</pubDate>
    <category>Django</category>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[j-mad] Django-extended-choices, l’app qui te donne le choix (mais pas la date)]]></title>
    <description><![CDATA[J&#8217;avais plein d&#8217;app possible Ã  prÃ©senter pour ce billet du mois d&#8217;avril. Mais en rÃ©flÃ©chissant, je me suis dit que la meilleure app possible Ã  prÃ©senter ce moi-si c&#8217;Ã©tait celle qui a Ã©tÃ© libÃ©rÃ© pendant les DjangoCongs Ã  savoir Django-extended-choices. Et en plus, ce qui est bien, c&#8217;est que comme c&#8217;est une toute petite app, <a href="http://j-mad.com/blog/2011/04/30/django-extended-choices-lapp-qui-te-donne-le-choix-mais-pas-la-date/">[...]</a>]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/04/30/django-extended-choices-lapp-qui-te-donne-le-choix-mais-pas-la-date/]]></link>
    <pubDate>2011-04-30 16:24:00</pubDate>
    <category>La Django-app du mois</category>
    <category>Django</category>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[No] À quoi sert une conférence ?]]></title>
    <description><![CDATA[<p>La semaine dernière, j'ai participé à une conférence, intitulée <a href="http://rencontres.django-fr.org/2011/">Djangocong</a>, se déroulant à Marseille. J'aurais pu en faire un compte-rendu plus ou moins détaillé, mais j'ai constaté que d'autres l'avaient déjà fait, certainement mieux que j'aurais pu le faire. S'il avait fallu résumer proprement, on aurait pu dire "y'avait du monde et c'était bien cool".
</p>
<p>Je m'abstiens d'entrer dans les détails. Sauf qu'une vague - ou plutôt une série de vagues - agite le landernau du web et des professionnels qui en ont fait leur profession. Aucune envie d'en rajouter dans le domaine de la férocité et de l'agressivité qui accompagne tous les trolls. Alors posons calmement les bases d'une réflexion plus sereine, plus constructive.
</p>
<p>En gros, ça polémique à mort sur le prix de la journée de la conférence Sud Web. C'est vrai, 135 EUR, c'est cher. Il existe d'ailleurs un tarif préférentiel, à 90 EUR (à l'heure où j'écris, je ne sais pas s'il reste des places, d'ailleurs). On peut en effet s'interroger sur ce tarif. Pour ma part, connaissant personnellement une bonne partie du staff, je ne doute pas un seul instant que si c'est ce prix-là qui est indiqué, c'est qu'il correspond à peu de choses près au <strong>coût</strong> de cet événement. Et si tu n'as jamais participé à une conférence de ce genre, tu ne peux pas imaginer les coûts liés aux <strong>prestations</strong> offertes : le café / croissants<sup>1</sup> du matin / midi / soir / après-midi, la location de la salle, la sono, l'électricité, le wifi... (ah euh non, pardon, y'a pas ouifi, y'a "nonfi"), les impressions (en couleurs) des programmes, des badges, des affiches en 4x3 pour indiquer le chemin depuis la gare de Nîmes... j'en passe. Je recommande à ce propos l'article <a href="http://sudweb.fr/post/Organiser-une-conference-web-en-six-mois">"Organiser une conférence web en six mois, fastoche ?"</a>, qui détaille bon nombre de choses indiquant pourquoi on arrive à ce total de cent-trente-cinq EUR.
</p>
<p>Mais les râleux, les fâcheux, les pas-content de tous poils oublient une paire de choses qui n'ont pas de prix. Ou plutôt, qui <em>ont</em> un prix, mais que celui-ci ne se paie pas en espèces ou en chèque. Ces choses-là, on ne les voit pas apparaître sur la facture. Elles sont impalpables, immatérielles, intangibles. Et pourtant, elles ont une <strong>valeur</strong>. Je suis étonné que des gens habitués à travailler avec des concepts, des informations, des "bidules" <em>virtuels</em> ne sachent pas à quel point le temps qu'on peut passer dans ces conférences et la somme qu'on peut y mettre est remboursée, et largement. Et pour tout te dire, je suis assez sidéré de voir qu'en parlant de conférences autour de moi dans mon entourage professionnel, je rencontre beaucoup de gens qui haussent les épaules en se demandant à quoi ça peut bien servir<sup>2</sup>.
</p>
<p>Allez, je te dresse une liste, nécessairement non-exhaustive...
</p>
<ul>
 <li>
     <strong>apprendre pour soi</strong> : oui, dans notre profession - comme dans <strong>n'importe quelle autre</strong>, nous avons toujours quelque chose à apprendre. Tout le temps. Un an, cinq ans, dix ans de pratique ne peuvent pas se satisfaire de la léthargie habituelle, du train-train, des habitudes. Nous avons la chance de travailler dans un domaine dans lequel tout évolue à toute vitesse, que des nouveautés émergent en permanence. Si nous voulons maintenir notre niveau d'excellence, il nous <strong>faut</strong> nous former. Et l'orateur n'est là que pour nous, il est là pour transmettre son savoir. Et notre job, c'est de le recevoir. Et l'assimiler.
 </li>

 <li>
     <strong>apprendre pour ses clients</strong> : tout n'est pas forcément désintéressé chez l'auditeur. Il va à une conférence, il fraternise, tout ça... et durant les confs, il prend des notes. Et un jour, quelques temps après, un client le contacte et lui expose un problème... oh ! quel heureux hasard ! l'auditeur se souvient que justement il a vu une conf fort intéressante présentant une solution miraculeusement adaptée à sa problématique. Et paf !
 </li>

 <li>
     <strong>valoriser son savoir-faire</strong> : c'est un peu lié au point du dessus, partiellement. Certaines conférences ne participent pas du savoir-faire technique pur, mais d'une méthodologie, par exemple. Genre "en finir avec la technique <a href="http://roland.entierement.nu/blog/2008/01/22/cpold-la-poudre-verte-du-suivi-de-versions.html">CPOLD</a>". Tu ajoutes des cordes à ton arc, tu améliores ta productivité, la qualité intrinsèque de ton travail et tu peux même t'en vanter auprès de tes clients ! - <q>voyez, nous mettons en oeuvre des machins qui améliorent la qualité du blurb et du splang</q>
 </li>

 <li>
     <strong>contact humain</strong> : oui ! c'est possible ! des geeks, des internautes, des travailleurs du web peuvent se voir, en vrai, à cinq mètres ou moins, se serrer la main, se faire la bise, se taper dans le dos, se rencontrer, fraterniser. Ces conférences favorisent l'appartenance à une communauté (cf. <a href="http://blog.exirel.me/technique/djangocong-2011-marseille-cetait-le-16-et-17-avril-et-cetait-genial">ce post à propos de Djangocong</a>, par exemple), permettent de mettre des visages derrières les avatars ou les pseudos. Un effet induit immédiat, c'est l'impression d'entendre la voix d'une personne quand on lit ses écrits, après. C'est amusant.
 </li>

 <li>
     <strong>contact professionnel</strong> : un rendez-vous qui rassemble des professionnels, c'est bien entendu l'occasion de voir des pros, des vrais, des tatoués. Et ces gens-là sont accessibles ! Profite de la pause café pour aller leur parler, dire tout le bien que tu penses de leur travail, et pourquoi pas... échanger quelques mots décalés. Et ces contacts deviendront autre chose qu'un "following" / "ami sur facebook". Pourquoi tu ne ferais pas du business avec ? Est-ce que ça ne faciliterait pas les mises en relation de boulot ? hein ?
 </li>

 <li>
     <strong>tourisme</strong> : ben oui. Nîmes, moi, je connais pas. Et je gage qu'à tord, beaucoup ne connaissent pas non plus. Et la conférence a lieu un vendredi. Ça laisse deux bonnes journées pour visiter les environs, passer un bon moment de détente dans une très belle ville du sud. Voué !
 </li>
</ul>
<p>Oui, une conférence, ça sert à ça et à bien d'autres choses. <a href="http://sudweb.fr/pages/Inscription">Alors... qu'attends-tu pour t'inscrire ?</a>
</p>
<p>--
</p>
<p>1 : Je dis "croissants", mais j'aurais dû dire "chocolatines", bien sûr.
</p>
<p>2 : oh, pas tout le monde, hein, mais même si certains paraissent intéressés, peu, très peu, très très très peu manifestent l'envie d'aller à ces conférences
</p>
<p><small>Article écrit hier soir</small>
</p>]]></description>
    <link><![CDATA[http://jehaisleprintemps.net/blog/fr/2011/04/28/a-quoi-sert-une-conference/]]></link>
    <pubDate>2011-04-28 05:47:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[tshirtman] zine_ad_sense]]></title>
    <description><![CDATA[<p>
Juste par ce que je suis pas mécontent, je viens de coder un plugin ad_sense pour zine, et qu’il marche pas trop mal :) et ça ne m’a prit que la soirée, lol. <br />

Donc c’est <a href="https://github.com/tshirtman/zine_ad_sense">là</a>, et ça me rendra surement pas riche, mais ça peut pas franchement faire de mal :), et peut être que ça intéressera d’autres personnes
</p>
<p>Pour installer, c’est facile, aller dans “parts/zine/lib/zine/plugins/” et
</p><pre>git clone git://github.com/tshirtman/zine_ad_sense.git
</pre>
Relancer zine, vous devriez le trouver dans les plugins et pouvoir l’activer, ce qui fera apparaitre un onglet “Ad sense” dans la barre de menu des options, et vous permettra de donner les paramètres d’une bannière ad sense, précédemment créée, qui apparaitra alors sous environ 50% de vos postes (c’est aléatoire).
<p></p>]]></description>
    <link><![CDATA[http://blog.tshirtman.fr/2011/4/21/zine-ad-sense]]></link>
    <pubDate>2011-04-21 22:05:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[j-mad] Djangocong 2.0, le bilan]]></title>
    <description><![CDATA[4 jours aprÃ¨s la fin des Cong, il est temps pour moi de faire le bilan de cette deuxiÃ¨me est, en tout cas Ã  mon sens, excellente Ã©dition.
Les Congs en quelques chiffresÂ :

	11 confÃ©rences le matin
	12 slots de barcamp l'aprÃ¨s-midi
	1 app releasÃ©e durant les Congs
	1 doc de bonne pratique lancÃ©e
	75 personnes le samedi matin dans ...]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/04/21/djangocong-2-0-le-bilan/]]></link>
    <pubDate>2011-04-21 10:15:49</pubDate>
    <category>Django</category>
    <category>Python</category>
  </item>
  <item>
    <title><![CDATA[[tshirtman] recaptcha]]></title>
    <description><![CDATA[<h2>Pourquoi j’en viens à embéter mes rares commentateurs avec des mots difficiles à lire…</h2>
<p>Ce blog recevant actuellement beaucoup plus de spams que de commentaires réels, je m’étais codé un petit plugin permettant de placer automatiquement en spam, les messages y ressemblant, avec une grosse liste de mot clés, un systeme de points, bref, ça choppait environ 99% du spam, mais il entrait en base quand même, celle ci étant un tinysql, il valait donc mieux la vider régulièrement et bon, ça restait du boulot.
</p>
<p>
Du coup, j’ai finit par chercher et trouver, un <a href="https://bitbucket.org/arteme/zine-recaptcha/wiki/Home">plugin</a><a> </a><a href="http://www.google.com/recaptcha">recaptcha</a> pour zine, et à l’installer, manque de bol, par défaut, il ne marchait pas, vu qu’il dépends d’un patch remonté <a href="http://dev.pocoo.org/projects/zine/ticket/215">là</a> (par l’auteur du plugin recaptcha, comme c’est bizarre :]), qui corrige un bug tout bête.
</p>
<p>
donc, en se plaçant dans “parts/zine/lib/zine”
</p><pre>patch -p1 &lt; before-comment-created-2.patch</pre>
bon, un chunk du patch échoue, mais c’est pas trop grave, on ajoute à la main
<pre>from itertools import chain</pre>
dans “zine/forms.py”
<p></p>
<h2>Donc, pour installer zine-recaptcha</h2>
<p>C’est assez simple, je me suis placé dans “parts/zine/lib/zine/plugins” et j’ai fait un simple:
</p><pre>hg clone https://bitbucket.org/arteme/zine-recaptcha</pre>
<p></p>
redémarrer zine, activer le plugin, aller chercher une clée d’API sur recaptcha.net, et dire au plugin d’afficher une erreur si echec de validation du captcha (pour ne pas encombrer la base).
<p></p>

<p>
Et ce coup ci, je crois qu’ils s’en remettrons pas, les spams :D, bon, je laisse mon filtre borg en place, au cas ou, mais ça va mieux là :D
</p>]]></description>
    <link><![CDATA[http://blog.tshirtman.fr/2011/4/15/recaptcha]]></link>
    <pubDate>2011-04-15 12:14:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[MathieuAgopian] django et le handler500: retourner une erreur 503]]></title>
    <description><![CDATA[Une mise en production ratée ? Un (local) settings oublié ? Un bug inconnu jusqu&#8217;alors ? Dans les trois cas cités, il y a de fortes chances pour que vos utilisateurs voient une erreur 500 (internal server error : erreur interne du serveur). Il est facile, en peaufinant son template 500.html d&#8217;afficher un message d&#8217;erreur [...]]]></description>
    <link><![CDATA[http://mathieu.agopian.info/blog/2011/04/django-et-le-handler500-retourner-une-erreur-503/]]></link>
    <pubDate>2011-04-14 16:04:45</pubDate>
    <category>django</category>
    <category>Python</category>
    <category>technique</category>
    <category>web</category>
  </item>
  <item>
    <title><![CDATA[[tshirtman] multi.py]]></title>
    <description><![CDATA[<p>Juste un petit script réalisé aujourd’hui pour une demande, permet d’executer une commande dans tous les sous dossiers d’un dossier…
</p>
<p>
</p><pre>#!/usr/bin/env python
import sys
import os
import commands

def usage():
    print "usage:"
    print sys.argv[0], "command"
    print """
    will execute the command in every direct subdirectory of the current
    directory, and print the result
    """

def main(command):
    for i in os.listdir('.'):
        if os.path.isdir(i):
            os.chdir(i)
            print commands.getoutput(' '.join(command))
            os.chdir('..')

if __name__ == '__main__':
    if len(sys.argv) &lt; 2 or sys.argv[1] in ('-h', '--help'):
        usage()
    else:
        main(sys.argv[1:])
</pre>
<p></p>
<p>
Ça peut servir, j’avais un alias zsh pour faire ça, mais y’a toujours des cas un peu foireux, sh c’est un peu juste pour ce genre de choses, donc bon, autant sortir python et faire un truc propre. Et puis bon, ça peut servir d’exemple d’utilisation de commands, et des fonctions d’os.
</p>]]></description>
    <link><![CDATA[http://blog.tshirtman.fr/2011/4/11/multi-py]]></link>
    <pubDate>2011-04-11 16:02:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[tshirtman] usf 0.1.4]]></title>
    <description><![CDATA[<p>
Je viens de soumettre <a href="http://usf.tuxfamily.org/">ultimate-smash-friends</a> à <a href="http://pypi.python.org/pypi/ultimate-smash-friends">pypi</a> (mais l’archive, trop grosse, à été rejeté, on peut donc la trouver <a href="http://pub.tshirtman.fr/ultimate-smash-friends-0.1.4.tar.gz">là</a>), et de créer un <a href="http://pub.tshirtman.fr/ultimate-smash-friends_0.1.4-1_all.deb">deb</a> pour ubuntu, dans les nouveautés, on peut noter principalement de grosses optimisations, et une grosse amélioration de l’AI (qui devient enfin intéressante à affronter).
</p>
<p>
Bon, c’est toujours de l’alpha, mais, je pense que mon boulot sur l’ai va sérieusement simplifier le boulot pour le mode réseau, mais je promet pas que ça sera rapide, une IA correcte à quand même attendu 2ans pour voir le jour…
</p>
<p>
Voilà, si ça intéresse des gens de tester, et de faire des retours, c’est tout à fait bienvenu, en espérant que ça vous plaise.
</p>]]></description>
    <link><![CDATA[http://blog.tshirtman.fr/2011/4/10/usf-0-1-4]]></link>
    <pubDate>2011-04-10 19:19:41</pubDate>
  </item>
  <item>
    <title><![CDATA[[afpyro] Avril]]></title>
    <description><![CDATA[<div class="section" id="avril">
 
<p><strong>Python d’Avril: afpyro le vendredi 1er avril 2011 à 19h30</strong></p>
<div class="section" id="pourquoi">
<h2>Pourquoi</h2>
<p>Parce que.</p>
<p>...et puis aussi il faudra fêter la fin du
<a class="reference external" href="http://gael-varoquaux.info/blog/?p=149">sprint scikit-learn</a> à Logilab
où on aura appris plein de machines (le scikit-learn c’est fait pour faire
du “machine learning”).</p>
<p>Et puis il y a plein de monde sympa à Paris ce week end (comme d’hab).</p>
</div>
<div class="section" id="ou">
<h2>Où</h2>
<p>Café Chéri(e) (<a class="reference external" href="http://www.openstreetmap.org/?minlon=2.37511014938354&minlat=48.8738555908203&maxlon=2.37531042098999&maxlat=48.8740577697754">plan</a>)</p>
<p>44 bd de la Villette, 75019 Paris (FR).</p>
<p>M°: Belleville /Colonel Fabien</p>
</div>
</div>]]></description>
    <link><![CDATA[http://afpy.ro/dates/2011/2011_04_01]]></link>
    <pubDate>2011-04-01 00:00:00</pubDate>
  </item>
  <item>
    <title><![CDATA[[j-mad] Petites apps â€¦ petites mais costaudes]]></title>
    <description><![CDATA[Pour ce mois de mars, je vais parler non pas d&#8217;une seule mais de deux petites apps. Deux apps parce que les apps sont tellement petites que l&#8217;on va m&#8217;accuser de tirer au flanc si je ne parle que de l&#8217;une d&#8217;entre elles. Mais que d&#8217;un autre cotÃ©s, ce n&#8217;est pas parce qu&#8217;elles sont petites <a href="http://j-mad.com/blog/2011/03/30/petites-apps-%e2%80%a6-petites-mais-costaudes/">[...]</a>]]></description>
    <link><![CDATA[http://j-mad.com/blog/2011/03/30/petites-apps-%e2%80%a6-petites-mais-costaudes/]]></link>
    <pubDate>2011-03-30 20:25:55</pubDate>
    <category>La Django-app du mois</category>
    <category>Django</category>
    <category>Python</category>
  </item>
</channel>
</rss>


