<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Blog entries (Logilab.org) RSS Feed</title>
    <description></description>
    <link>http://www.logilab.org/view?rql=Any%20X%2CT%2CCD%20ORDERBY%20CD%20DESC%20WHERE%20X%20title%20T%2C%20X%20creation_date%20CD%2C%20X%20entry_of%20B%2C%20B%20eid%206724</link>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/113067</guid>
  <title>Retour OSDC 2012 - présentation mercurial DVCS</title>
  <link>http://www.logilab.org/blogentry/113067</link>
  <description>&lt;p&gt;À la mi-octobre, j&#39;ai participé à la &lt;a class=&quot;reference&quot; href=&quot;http://act.osdc.fr/osdc2012fr/&quot;&gt;conférence OSDC 2012&lt;/a&gt; à Paris. Le but de
cette conférence est de permettre à des développeurs de différentes communautés de se rencontrer dans une ambiance chaleureuse. De fait, j&#39;ai découvert un certain nombre de projets et de pratiques intéressants.&lt;/p&gt;
&lt;img alt=&quot;http://act.osdc.fr/osdc2012fr/css/logo.png&quot; class=&quot;align-center&quot; src=&quot;http://act.osdc.fr/osdc2012fr/css/logo.png&quot; /&gt;
&lt;p&gt;Le samedi, j&#39;ai découvert des outils javascript mettant l&#39;accent sur les
modèles de données comme &lt;a class=&quot;reference&quot; href=&quot;http://angularjs.org/&quot;&gt;AngularJS&lt;/a&gt; ou &lt;a class=&quot;reference&quot; href=&quot;http://backbonejs.org/&quot;&gt;BackBone&lt;/a&gt;, Une présentation rapide du
langage &lt;a class=&quot;reference&quot; href=&quot;http://blog.menfin.info/Presentations/20121012_Concurrency_patterns/#slide1&quot;&gt;Go&lt;/a&gt;, le très prometteur portage des outils GCC sur Windows nommé
&lt;a class=&quot;reference&quot; href=&quot;http://mingw-w64.sourceforge.net/&quot;&gt;MinGW&lt;/a&gt; ainsi que les nouveautés de &lt;a class=&quot;reference&quot; href=&quot;http://dodji.seketeli.net/talks/osdc-2012/osdc.pdf&quot;&gt;GCC 4.8&lt;/a&gt;. La journée s&#39;est conclut sur des
présentations éclairs dont je retiendrai surtout la perversité des &lt;a class=&quot;reference&quot; href=&quot;https://metacpan.org/module/perlsecret&quot;&gt;opérateurs
secrets en Perl&lt;/a&gt; et le livre &lt;a class=&quot;reference&quot; href=&quot;http://fr.eloquentjavascript.net/&quot;&gt;Javascript Éloquent&lt;/a&gt; intégralement en HTML qui en
profite donc pour inclure exemples et &lt;a class=&quot;reference&quot; href=&quot;http://fr.eloquentjavascript.net/chapter4.html#key3&quot;&gt;exercices interactifs&lt;/a&gt; au fil du
contenu.&lt;/p&gt;
&lt;p&gt;Le dimanche matin j&#39;ai ouvert le bal en présentant mes travaux actuels dans
le DVCS Mercurial: l&#39;&lt;a class=&quot;reference&quot; href=&quot;http://mercurial.selenic.com/wiki/ChangesetEvolution&quot;&gt;Évolution de Changeset&lt;/a&gt; (&lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/file/113065?vid=download&quot;&gt;PDF de la présentation&lt;/a&gt;). Ce concept permet aux développeurs de découvrir la réécriture d&#39;historique de manière
simple et sûre. Les utilisateurs avancés ont accès de leur côté à
des processus de travail et de revue encore inédits dans le monde des DVCS. Ma présentation fut suivie d&#39;une introduction à la
découverte automatique de bugs grâce à la &lt;a class=&quot;reference&quot; href=&quot;http://lwn.net/Articles/317154/&quot;&gt;bisection dans les DVCS&lt;/a&gt;.&lt;/p&gt;
&lt;object width=&quot;480&quot; height=&quot;270&quot;&gt;&lt;param name=&quot;movie&quot;
value=&quot;http://www.dailymotion.com/swf/video/xuh369&quot;&gt;&lt;/param&gt;&lt;param
name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowScriptAccess&quot;
value=&quot;always&quot;&gt;&lt;/param&gt;&lt;param name=&quot;wmode&quot;
value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot;
src=&quot;http://www.dailymotion.com/swf/video/xuh369&quot; width=&quot;480&quot; height=&quot;270&quot;
wmode=&quot;transparent&quot; allowfullscreen=&quot;true&quot;
allowscriptaccess=&quot;always&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a
href=&quot;http://www.dailymotion.com/video/xuh369_osdc-fr-2012-changesets-evolution-mercurial-secoue-le-monde-du-dvcs_tech&quot;
target=&quot;_blank&quot;&gt;Changesets Evolution : Mercurial secoue le
monde du dvcs&lt;/a&gt;
&lt;i&gt;par Pierre-Yves David&lt;/i&gt;&lt;p&gt;La journée s&#39;est poursuivie avec une présentation du langage &lt;a class=&quot;reference&quot; href=&quot;http://www.haskell.org/haskellwiki/Haskell&quot;&gt;Haskell&lt;/a&gt;, de la bibliothèque de visualisation &lt;a class=&quot;reference&quot; href=&quot;http://sigmajs.org/&quot;&gt;sigmajs&lt;/a&gt; et la spécification &lt;a class=&quot;reference&quot; href=&quot;https://github.com/SPORE/specifications&quot;&gt;SPORE&lt;/a&gt; apportant un peu d&#39;espoir dans les spécifications de services Web &lt;tt class=&quot;docutils literal&quot;&gt;REST&lt;/tt&gt;.&lt;/p&gt;
</description>
  <dc:date>2012-12-05T17:37-01:00</dc:date>
  <dc:creator>Pierre-Yves David</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/113043</guid>
  <title>Retour Agile Tour Nantes 2012 - présentation et pistes à explorer</title>
  <link>http://www.logilab.org/blogentry/113043</link>
  <description>&lt;p&gt;Nous utilisons les méthodes agiles depuis la création de Logilab.
Nous avons parfois pris des libertés avec le formalisme des méthodes connues, en adaptant nos pratiques à nos clients et nos particularités. Nous avons en chemin développé nos propres outils orientés vers notre activité de développement logiciel
(gestion de version, processus sur les tickets, intégration continue, etc).&lt;/p&gt;
&lt;img alt=&quot;https://www.logilab.org/file/113044?vid=download&quot; class=&quot;align-center&quot; src=&quot;https://www.logilab.org/file/113044?vid=download&quot; /&gt;
&lt;p&gt;Il est parfois bon de se replonger dans la théorie et d&#39;échanger
les bonnes pratiques en terme d&#39;agilité. C&#39;est pour cette raison que nous avons participé à l&#39;étape nantaise de l&#39;&lt;a class=&quot;reference&quot; href=&quot;http://at2012.agiletour.org/fr/nantes.html&quot;&gt;Agile Tour&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;logiciels-libres-et-agilite&quot;&gt;
&lt;h3&gt;&lt;a&gt;Logiciels libres et agilité&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Plutôt que d&#39;être simples spectateurs, nous avons présenté nos pratiques agiles, fortement liées au logiciel libre, dont un avantage indéniable est la possibilité offerte à chacun de le modifier pour l&#39;adapter à ses besoins.&lt;/p&gt;
&lt;p&gt;Premièrement, en utilisant la plate-forme web &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org&quot;&gt;CubicWeb&lt;/a&gt;, nous avons pu construire une forge dont nous contrôlons le modèle de données. Les processus de gestion peuvent donc être spécifiques et les données des applications peuvent être étroitement intégrées. Par exemple, bien que la base logicielle soit la même, le circuit de validation des tickets sur l&#39;extranet n&#39;est pas identique à celui de nos forges publiques. Autre exemple, les versions livrées sur l&#39;extranet apparaissent directement dans l&#39;outil intranet de suivi des affaires et de décompte du temps (CRM/ERP).&lt;/p&gt;
&lt;p&gt;Deuxièmement, nous avons choisi &lt;a class=&quot;reference&quot; href=&quot;http://mercurial.selenic.com/&quot;&gt;mercurial (hg)&lt;/a&gt; en grande partie car il est
écrit en &lt;a class=&quot;reference&quot; href=&quot;http://www.python.org/&quot;&gt;python&lt;/a&gt; ce qui nous a permis de l&#39;intégrer à nos autres outils, mais aussi d&#39;y
contribuer (cf &lt;a class=&quot;reference&quot; href=&quot;http://hg-lab.logilab.org/doc/mutable-history/html/&quot;&gt;evolve&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Notre présentation est visible sur slideshare :&lt;/p&gt;
&lt;a class=&quot;reference image-reference&quot; href=&quot;http://fr.slideshare.net/arthurlutz/prsentation-outils-agiles-revue-de-code-publication-continue&quot;&gt;&lt;img alt=&quot;http://www.logilab.org/file/113040?vid=download&quot; src=&quot;http://www.logilab.org/file/113040?vid=download&quot; /&gt;&lt;/a&gt;
&lt;p&gt;ou &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/file/111231?vid=download&quot;&gt;à télécharger en PDF&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;behaviour-driven-development&quot;&gt;
&lt;h3&gt;&lt;a&gt;Behaviour Driven Development&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Le &lt;a class=&quot;reference&quot; href=&quot;https://fr.wikipedia.org/wiki/Behavior_Driven_Development&quot;&gt;BDD (Behaviour Driven Development)&lt;/a&gt; se combine avec des tests
fonctionnels haut niveau qui peuvent être décrits grâce à un formalisme syntaxique souvent associé au
langage Gherkin. Ces scénarios de test peuvent ensuite être convertis en
code et exécutés. Coté Python, nous avons trouvé &lt;a class=&quot;reference&quot; href=&quot;http://packages.python.org/behave/&quot;&gt;behave&lt;/a&gt; et &lt;a class=&quot;reference&quot; href=&quot;http://packages.python.org/lettuce/&quot;&gt;lettuce&lt;/a&gt;. De manière similaire à &lt;a class=&quot;reference&quot; href=&quot;http://seleniumhq.org/&quot;&gt;Selenium&lt;/a&gt; (scénarios de test de
navigation Web), la difficulté de ce genre de tests est plutôt leur
maintenance que l&#39;écriture initiale.&lt;/p&gt;
&lt;img alt=&quot;https://www.logilab.org/file/113042?vid=download&quot; class=&quot;align-center&quot; src=&quot;https://www.logilab.org/file/113042?vid=download&quot; /&gt;
&lt;p&gt;Ce langage haut niveau peut néanmoins être un canal de communication
avec un client écrivant des tests. À ce jour, nous avons eu plusieurs
clients prenant le temps de faire des fiches de tests que nous
&amp;quot;traduisons&amp;quot; ensuite en tests unitaires. Si le client n&#39;est pas forcément prêt à apprendre le Python et leurs tests unitaires, il serait
peut-être prêt à écrire des tests selon ce formalisme.&lt;/p&gt;
&lt;/div&gt;
</description>
  <dc:date>2012-12-05T09:47-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/107686</guid>
  <title>Logilab à PyConFR 2012 - compte rendu</title>
  <link>http://www.logilab.org/blogentry/107686</link>
  <description>&lt;a class=&quot;reference image-reference&quot; href=&quot;http://tarek.openphoto.me/p/as/album-3&quot;&gt;&lt;img alt=&quot;http://awesomeness.openphoto.me/custom/201209/4ed140-pycon3--1-of-37-_870x550.jpg&quot; src=&quot;http://awesomeness.openphoto.me/custom/201209/4ed140-pycon3--1-of-37-_870x550.jpg&quot; style=&quot;width: 256px;&quot; /&gt;&lt;/a&gt;
&lt;p&gt;Logilab était à la conférence &lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/&quot;&gt;PyConFR&lt;/a&gt; qui a pris place à Paris il y a
deux semaines.&lt;/p&gt;
&lt;p&gt;Nous avons commencé par un sprint &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/project/pylint&quot;&gt;pylint&lt;/a&gt;, coordonné par &lt;a class=&quot;reference&quot; href=&quot;http://feldboris.alwaysdata.net/&quot;&gt;Boris
Feld&lt;/a&gt;, où pas mal de volontaires sont passés pour traquer des bogues
ou ajouter des nouvelles fonctionnalités. Merci à tous!&lt;/p&gt;
&lt;p&gt;Pour ceux qui ne connaissent pas encore, &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/project/pylint&quot;&gt;pylint&lt;/a&gt; est un utilitaire
pratique que nous avons dans notre &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org&quot;&gt;forge&lt;/a&gt;.  C&#39;est un outil très
puissant d&#39;analyse statique de scripts python qui aide à
améliorer/maintenir la qualité du code.&lt;/p&gt;
&lt;p&gt;Par la suite, après les &amp;quot;talks&amp;quot; des sponsors¸ où vous auriez pu voir &lt;a class=&quot;reference&quot; href=&quot;http://tarek.openphoto.me/p/bu/album-3&quot;&gt;Olivier&lt;/a&gt;,
vous avons pu participer à quelques tutoriels et présentations
vraiment excellentes. Il y avait des présentations pratiques avec,
entre autres, les &lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/schedule/presentation/27/&quot;&gt;tests&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/schedule/presentation/7/&quot;&gt;scikit-learn&lt;/a&gt; ou les outils pour gérer des services (&lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/schedule/presentation/51/&quot;&gt;Cornice&lt;/a&gt;,
&lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/schedule/presentation/2/&quot;&gt;Circus&lt;/a&gt;). Il y avait aussi des retours d&#39;information sur le processus de
&lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/schedule/presentation/49/&quot;&gt;développement de CPython&lt;/a&gt;, le &lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/schedule/presentation/7/&quot;&gt;développement communautaire&lt;/a&gt; ou un
&lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/schedule/presentation/46/&quot;&gt;supercalculateur&lt;/a&gt;.  Nous avons même pu faire de la
&lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/schedule/presentation/3/&quot;&gt;musique avec python&lt;/a&gt; et un peu d&#39;&amp;quot;embarqué&amp;quot; avec le
&lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/schedule/presentation/9/&quot;&gt;Raspberry Pi et Arduino&lt;/a&gt; !&lt;/p&gt;
&lt;p&gt;Nous avons, avec Pierre-Yves, proposé deux tutoriels d&#39;introduction au
gestionnaire de versions décentralisé &lt;a class=&quot;reference&quot; href=&quot;http://mercurial.selenic.com/&quot;&gt;Mercurial&lt;/a&gt;.  Le &lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/schedule/presentation/30/&quot;&gt;premier
tutoriel&lt;/a&gt; abordait les bases avec des cas pratiques.  Lors du second
tutoriel, que l&#39;on avait prévu initialement dans la continuité du
premier, nous avons finalement abordé des utilisations plus avancées
permettant de résoudre avec énormément d&#39;efficacité des problématiques quotidiennes, comme les &lt;a class=&quot;reference&quot; href=&quot;http://www.selenic.com/hg/help/revsets&quot;&gt;requêtes sur les dépôts&lt;/a&gt;, ou la recherche
automatique de régression par &lt;a class=&quot;reference&quot; href=&quot;http://mercurial.selenic.com/wiki/BisectExtension&quot;&gt;bissection&lt;/a&gt;. Vous pouvez retrouver le support avec les exercices &lt;a class=&quot;reference&quot; href=&quot;http://tuto.octopoid.net&quot;&gt;là&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pierre-Yves a présenté une nouvelle propriété importante de Mercurial:
l&#39;&lt;a class=&quot;reference&quot; href=&quot;http://hg-lab.logilab.org/doc/mutable-history/html/obs-concept.html&quot;&gt;obsolescence&lt;/a&gt;.  Elle permet de mettre en place des outils d&#39;édition
d&#39;historique en toute sécurité ! Parmi ces outils, Pierre-Yves a
écrit une extension &lt;a class=&quot;reference&quot; href=&quot;http://hg-lab.logilab.org/doc/mutable-history/html/&quot;&gt;mutable-history&lt;/a&gt; qui vous offre une multitude de
commandes très pratiques.&lt;/p&gt;
&lt;p&gt;La présentation est disponible en &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/file/107771?vid=download&quot;&gt;PDF&lt;/a&gt; et en consultation en ligne sur &lt;a class=&quot;reference&quot; href=&quot;http://fr.slideshare.net/logilab/historique-volutif-avec-mercurial-pyconfr-2012&quot;&gt;slideshare&lt;/a&gt;. Nous mettrons bientôt la vidéo en ligne.&lt;/p&gt;
&lt;a class=&quot;reference image-reference&quot; href=&quot;http://www.logilab.org/file/107771?vid=download&quot;&gt;&lt;img alt=&quot;http://www.logilab.org/file/107770?vid=download&quot; src=&quot;http://www.logilab.org/file/107770?vid=download&quot; /&gt;&lt;/a&gt;
&lt;!-- raw::html :

&lt;iframe src=&quot;http://www.slideshare.net/slideshow/embed_code/14665329&quot; width=&quot;427&quot; height=&quot;356&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px&quot; allowfullscreen&gt; &lt;/iframe&gt; &lt;div style=&quot;margin-bottom:5px&quot;&gt; &lt;strong&gt; &lt;a href=&quot;http://www.slideshare.net/logilab/historique-volutif-avec-mercurial-pyconfr-2012&quot; title=&quot;Historique évolutif avec Mercurial - Pyconfr 2012&quot; target=&quot;_blank&quot;&gt;Historique évolutif avec Mercurial - Pyconfr 2012&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;http://www.slideshare.net/logilab&quot; target=&quot;_blank&quot;&gt;Logilab&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt; --&gt;
&lt;!-- html --&gt;
&lt;!-- &lt;video controls src=&quot;http://public.octopoid.net/Mercurial_PyConFr_2012.mp4&quot;&gt;video de la présentation de l&#39;obsolescence dans Mercurial&lt;/video&gt; --&gt;
&lt;p&gt;Si le sujet vous intéresse et que vous avez raté cette présentation, Pierre-Yves reparlera de ce sujet à l&#39;&lt;a class=&quot;reference&quot; href=&quot;http://act.osdc.fr/osdc2012fr/&quot;&gt;OSDC&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour ceux qui en veulent plus, &lt;a class=&quot;reference&quot; href=&quot;http://ziade.org&quot;&gt;Tarek Ziadé&lt;/a&gt; à mis à disposition des photos de la conférence
&lt;a class=&quot;reference&quot; href=&quot;http://tarek.openphoto.me/photos/album-3/list&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;
</description>
  <dc:date>2012-10-10T14:44-01:00</dc:date>
  <dc:creator>Alain Leufroy</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/106255</guid>
  <title>Rencontre LLVM à l&#39;IRILL</title>
  <link>http://www.logilab.org/blogentry/106255</link>
  <description>&lt;!-- IRILL Logo --&gt;
&lt;img alt=&quot;IRILL-logo&quot; src=&quot;http://www.logilab.org/file/106196?vid=download&quot; /&gt;
&lt;!-- LLVM Logo --&gt;
&lt;img alt=&quot;LLVM-logo&quot; src=&quot;http://www.logilab.org/file/106197?vid=download&quot; /&gt;
&lt;p&gt;L&#39;&lt;a class=&quot;reference&quot; href=&quot;http://www.irill.org/&quot;&gt;IRILL&lt;/a&gt; , Initiative de Recherche et Innovation sur le Logiciel Libre,
organisait une rencontre &lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt; mardi 25 septembre à Paris dans les locaux de
l&#39;INRIA Place d&#39;Italie dans le 13e arrondissement. Les organisateurs, Arnaud de
Grandmaison, Duncan Sands, Sylvestre Ledru et Tobias Grosser ont chaleureusement
accueilli environ 8 personnes dont 3 de Logilab.&lt;/p&gt;
&lt;p&gt;L&#39;&lt;a class=&quot;reference&quot; href=&quot;http://www.irill.org/events/paris-llvm-meetup-26.-june-at-irill-with-clang-bug-squashing&quot;&gt;annonce&lt;/a&gt;
de l&#39;&lt;a class=&quot;reference&quot; href=&quot;http://www.irill.org/&quot;&gt;IRILL&lt;/a&gt; indiquait une rencontre informelle avec une potentielle &lt;em&gt;Bug
Squashing Party&lt;/em&gt; sur &lt;a class=&quot;reference&quot; href=&quot;http://clang.llvm.org/&quot;&gt;Clang&lt;/a&gt;. Nous n&#39;avons pas écrasé d&#39;insectes mais avons
plutôt discuté: discussions techniques, petits trolls, échanges de connaissances,
d&#39;outils et d&#39;expériences accompagnés de bières, sodas, gâteaux et pizzas (et une
salade solitaire et orpheline qui n&#39;a finie dans le ventre de personne
contrairement aux pizzas mexicaines ou quatre fromages).&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt; (&lt;em&gt;Low Level Virtual Machine&lt;/em&gt;) est un projet développé depuis une dizaine
d&#39;années qui propose une collection d&#39;outils et de modules facilement
réutilisables pour construire des &lt;em&gt;logiciels orientés langages&lt;/em&gt; :
interpréteurs, compilateurs, optimiseurs, convertisseurs source-to-source...&lt;/p&gt;
&lt;p&gt;Depuis l&#39;étage d&#39;entrée du code dans le compilateur (ou &lt;em&gt;frontend&lt;/em&gt;), en passant
par l&#39;optimiseur indépendant de la plate-forme, jusqu&#39;à la génération de code
machine (&lt;em&gt;backend&lt;/em&gt;) et ce, pour plusieurs architectures (X86, PowerPC, ARM,
etc.), le choix de son design en fait un outil tout à fait intéressant. Parmi
ces &lt;em&gt;frontends&lt;/em&gt;, il y a le fameux &lt;a class=&quot;reference&quot; href=&quot;http://clang.llvm.org/&quot;&gt;Clang&lt;/a&gt; (C/C++, Objective-C), &lt;a class=&quot;reference&quot; href=&quot;http://www.haskell.org/ghc/&quot;&gt;GHC&lt;/a&gt;
(Haskell).  Et le projet &lt;a class=&quot;reference&quot; href=&quot;http://dragonegg.llvm.org/&quot;&gt;dragonegg&lt;/a&gt; permet de l&#39;utiliser comme &lt;em&gt;plug-in&lt;/em&gt; à GCC
et donc de bénéficier des différents &lt;em&gt;frontends&lt;/em&gt; GCC (Ada, Fortran, etc.).&lt;/p&gt;
&lt;p&gt;De nombreux outils se sont construits autour
du &lt;em&gt;framework&lt;/em&gt; &lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt; : &lt;a class=&quot;reference&quot; href=&quot;http://lldb.llvm.org/&quot;&gt;LLDB&lt;/a&gt; un &lt;em&gt;débugger&lt;/em&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://vmkit.llvm.org/&quot;&gt;vmkit&lt;/a&gt; une implémentation de la
machine virtuelle Java et .NET ou encore &lt;a class=&quot;reference&quot; href=&quot;http://polly.llvm.org/&quot;&gt;polly&lt;/a&gt;, un projet de recherche dont
Tobias est l&#39;un des deux co-fondateurs, qui a pour objectif d&#39;optimiser un
programme indépendamment du langage via des &lt;em&gt;polyhedral optimizations&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Les principaux contributeurs à ce jour sont Apple, Google, des contributeurs
&amp;quot;individuels&amp;quot; dont Duncan Sands, suivis par des laboratoires de recherche et
autres. Voir l&#39;article de Sylvestre sur &amp;quot;&lt;a class=&quot;reference&quot; href=&quot;http://sylvestre.ledru.info/blog/sylvestre/2012/07/22/who_is_in_control_of_llvm_clang&quot;&gt;Who is in control of LLVM/Clang ?&lt;/a&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;La clef de voûte de &lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt; est sa représentation intermédiaire (IR pour
&lt;em&gt;Intermediate Representation&lt;/em&gt;). C&#39;est une structure de données qui représente
sous forme SSA (&lt;em&gt;Single Static Assignment&lt;/em&gt;) les flux de données et de contrôle.
Cette forme est plus &amp;quot;haut-niveau&amp;quot; et plus lisible que du code assembleur, elle
comporte certaines informations de type par exemple.  Elle constitue le pivot de
l&#39;infrastructure &lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt; : c&#39;est ce que produisent les &lt;em&gt;frontends&lt;/em&gt; comme
&lt;a class=&quot;reference&quot; href=&quot;http://clang.llvm.org/&quot;&gt;Clang&lt;/a&gt;, qui est ensuite passée aux optimiseurs de &lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt; et est ensuite
consommée par les &lt;em&gt;backends&lt;/em&gt; dont le rôle est de les transformer en code machine
natif.&lt;/p&gt;
&lt;p&gt;En voici un exemple en C:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La représentation intermédiaire est donnée via &lt;a class=&quot;reference&quot; href=&quot;http://clang.llvm.org/&quot;&gt;Clang&lt;/a&gt; :&lt;/p&gt;
&lt;p&gt;&lt;tt class=&quot;docutils literal&quot;&gt;$&amp;gt; clang &lt;span class=&quot;pre&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;-emit-llvm&lt;/span&gt; add_function.c &lt;span class=&quot;pre&quot;&gt;-o&lt;/span&gt; add_function.ll&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;L&#39;extension &lt;tt class=&quot;docutils literal&quot;&gt;*.ll&lt;/tt&gt; désigne des &amp;quot;fichiers IR&amp;quot; et le résultat donne:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;define i32 @add&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;i32 %a&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; nounwind uwtable &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
  %1 &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; alloca i32, align 4
  store i32 %a, i32* %1, align 4
  %2 &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; load i32* %1, align 4
  %3 &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; add nsw i32 %2, 42
  ret i32 %3
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cette représentation peut ensuite être &lt;em&gt;bitcodée&lt;/em&gt;, assemblée ou compilée. Voir
les &lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/docs/CommandGuide/&quot;&gt;différentes commandes LLVM&lt;/a&gt; pour
assembler, désassembler, optimiser, linker, exécuter, etc.&lt;/p&gt;
&lt;p&gt;Une autre utilisation intéressante de cette infrastructure est l&#39;utilisation de
la bibliothèque &lt;a class=&quot;reference&quot; href=&quot;http://clang.llvm.org/&quot;&gt;Clang&lt;/a&gt; pour &lt;em&gt;parser&lt;/em&gt; du code C/C++ afin de parcourir
l&#39;&lt;em&gt;Abstract Syntax Tree&lt;/em&gt; (AST).  Ceci offre notamment de belles possibilités
d&#39;introspection.  Google a d&#39;ailleurs rédigé un &lt;a class=&quot;reference&quot; href=&quot;http://code.google.com/p/chromium/wiki/WritingClangPlugins&quot;&gt;tutoriel sur les plugins Clang&lt;/a&gt; et ses
possibilités via l&#39;&lt;a class=&quot;reference&quot; href=&quot;http://clang.llvm.org/doxygen/modules.html&quot;&gt;API de Clang&lt;/a&gt;,
notamment la classe &lt;tt class=&quot;docutils literal&quot;&gt;ASTConsumer&lt;/tt&gt;. Il est possible de parcourir l&#39;ensemble des
constructeurs, de connaître la propriété d&#39;une classe (abstraite ou non),
parcourir les membres d&#39;une classe, etc. Avant de partir, nous parlions de la
possiblité de propager un changement d&#39;API à travers toutes les bibliothèques
qui en dépendent, soit la notion de &lt;em&gt;patch sémantique&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Nous avons aussi profité pour parler un peu du langage &lt;a class=&quot;reference&quot; href=&quot;http://julialang.org/&quot;&gt;Julia&lt;/a&gt; ou de &lt;a class=&quot;reference&quot; href=&quot;https://github.com/numba/numba&quot;&gt;Numba&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pythonistes convaincus, nous connaissions déjà un peu &lt;a class=&quot;reference&quot; href=&quot;https://github.com/numba/numba&quot;&gt;Numba&lt;/a&gt;, projet de Travis
Oliphant, contributeur &lt;a class=&quot;reference&quot; href=&quot;http://numpy.scipy.org/&quot;&gt;NumPy&lt;/a&gt; et papa de &lt;a class=&quot;reference&quot; href=&quot;http://www.scipy.org/&quot;&gt;SciPy&lt;/a&gt;. Ce projet utilise
l&#39;infrastructure &lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt; pour compiler du &lt;em&gt;byte-code&lt;/em&gt; Python en code machine
(&lt;em&gt;Just In Time compilation&lt;/em&gt;), en particulier pour &lt;a class=&quot;reference&quot; href=&quot;http://numpy.scipy.org/&quot;&gt;NumPy&lt;/a&gt; et &lt;a class=&quot;reference&quot; href=&quot;http://www.scipy.org/&quot;&gt;SciPy&lt;/a&gt;. Les
exemples montrent comment passer d&#39;une fonction Python qui traite un tableau
NumPy à une fonction compilée &lt;em&gt;Just In Time&lt;/em&gt;. Extrait issu d&#39;un des exemples
fournis par le projet &lt;a class=&quot;reference&quot; href=&quot;https://github.com/numba/numba&quot;&gt;Numba&lt;/a&gt; :&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;numba&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;d&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;numba.decorators&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;jit&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;jit&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;sum2d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;arr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;M&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;N&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;arr&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.0&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;M&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;N&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;arr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;csum2d&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;jit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ret_type&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;arg_types&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,:]])(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sum2d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Oui, la fonction &lt;tt class=&quot;docutils literal&quot;&gt;sum2d&lt;/tt&gt; n&#39;est pas optimale et très &amp;quot;naïve&amp;quot;. Néanmoins, la
fonction compilée va près de 250 fois plus vite ! &lt;a class=&quot;reference&quot; href=&quot;https://github.com/numba/numba&quot;&gt;Numba&lt;/a&gt; utilise les &lt;em&gt;bindings&lt;/em&gt;
&lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt; pour Python via &lt;a class=&quot;reference&quot; href=&quot;http://www.mdevan.org/llvm-py/&quot;&gt;llvm-py&lt;/a&gt; afin de passer du code Python, à
l&#39;&lt;em&gt;Intermediate Representation&lt;/em&gt; pour ensuite utiliser les fonctionnalités &lt;em&gt;JIT&lt;/em&gt;
d&#39;&lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Entre programmeurs de langages à typage statique, nous avons aussi parlé de C et
d&#39;Ocaml (dont il existe des &lt;em&gt;bindings&lt;/em&gt; pour LLVM) et mentionné de beaux projets
tels que &lt;a class=&quot;reference&quot; href=&quot;http://pips4u.org/&quot;&gt;PIPS&lt;/a&gt; et &lt;a class=&quot;reference&quot; href=&quot;http://coccinelle.lip6.fr/&quot;&gt;Coccinelle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour finir, nous savons maintenant prononcer Clang. On dit &amp;quot;klang&amp;quot; et non
&amp;quot;cilangue&amp;quot;. Nous avons appris que &lt;em&gt;gdb&lt;/em&gt; avait son propre &lt;em&gt;parser&lt;/em&gt; et n&#39;utilisait
pas le &lt;em&gt;parser&lt;/em&gt; de GCC. Rappelons-le, l&#39;un des grands
avantages de LLVM &amp;amp; Clang face à GCC est sa modularité et la possibilité
d&#39;utiliser une des pierres qui forme l&#39;édifice pour construire sa propre maison.&lt;/p&gt;
&lt;p&gt;Nous finissons ce billet par une citation. &lt;a class=&quot;reference&quot; href=&quot;http://www.dabeaz.com/&quot;&gt;David Beazley&lt;/a&gt; disait lors de sa présentation à &lt;a class=&quot;reference&quot; href=&quot;http://www.euroscipy.org/conference/euroscipy2012&quot;&gt;Eursoscipy 2012&lt;/a&gt; :&lt;/p&gt;
&lt;blockquote class=&quot;pull-quote&quot;&gt;
&lt;em&gt;The life is too short to write C++.&lt;/em&gt;&lt;/blockquote&gt;
&lt;p&gt;Certes. Mais qu&#39;on le veuille ou qu&#39;on le doive, autant se servir d&#39;outils biens
pensés pour nous faciliter la vie.&lt;/p&gt;
&lt;p&gt;Encore merci aux organisateurs pour cette rencontre et à la prochaine.&lt;/p&gt;
&lt;!-- Linkg to LLVM, Clang and LLVM projects. --&gt;
&lt;!-- Externel projects which use LLVM. --&gt;
&lt;!-- Projects for C. --&gt;
&lt;p&gt;&lt;strong&gt;Quelques références&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Le tutoriel LLVM propose d&#39;implémenter son propre langage, rien que ça !
&lt;a class=&quot;reference&quot; href=&quot;http://llvm.org/docs/tutorial/&quot;&gt;http://llvm.org/docs/tutorial/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Un &lt;a class=&quot;reference&quot; href=&quot;http://www.aosabook.org/en/llvm.html&quot;&gt;article&lt;/a&gt; de très bonne qualité à
propos du partie pris de l&#39;architecture d&#39;LLVM par le créateur du projet
&lt;a class=&quot;reference&quot; href=&quot;http://nondot.org/~sabre/&quot;&gt;Chris Lattner&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Les concepts d&#39;LLVM dans la &lt;a class=&quot;reference&quot; href=&quot;http://www.llvmpy.org/llvmpy-doc/dev/doc/llvm_concepts.html&quot;&gt;documentation de llvm-py&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
</description>
  <dc:date>2012-10-01T21:51-01:00</dc:date>
  <dc:creator>Damien Garaud</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/103678</guid>
  <title>Sprint PyLint @ PyConFr 2012</title>
  <link>http://www.logilab.org/blogentry/103678</link>
  <description>&lt;p&gt;Un sprint &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/projects/pylint/&quot;&gt;PyLint&lt;/a&gt; est organisé dans le cadre de la conférence &lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/2012/&quot;&gt;PyConFR&lt;/a&gt;, les 13 et 14 septembre à Paris. Si vous voulez améliorer PyLint, c&#39;est l&#39;occasion : venez avec vos bugs et repartez sans !&lt;/p&gt;
&lt;p&gt;Les débutants sont bienvenus, une introduction au code de Pylint sera réalisée en début de sprint. Une expérience avec le module &lt;tt class=&quot;docutils literal&quot;&gt;ast&lt;/tt&gt; de la librairie standard est un plus.&lt;/p&gt;
&lt;p&gt;Croissants et café offerts par l&#39;organisation, merci de vous &lt;a class=&quot;reference&quot; href=&quot;http://pylint-sprint-pyconfr2012.eventbrite.com/&quot;&gt;inscrire&lt;/a&gt; pour faciliter la logistique. Voir avec &lt;a class=&quot;reference&quot; href=&quot;mailto:lothiraldan&amp;#64;gmail.com&quot;&gt;Boris&lt;/a&gt; pour plus d&#39;informations (merci à lui !)&lt;/p&gt;
</description>
  <dc:date>2012-08-22T17:54-01:00</dc:date>
  <dc:creator>Sylvain Thenault</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/100436</guid>
  <title>Réseau social ouvert et distribué avec CubicWeb</title>
  <link>http://www.logilab.org/blogentry/100436</link>
  <description>&lt;div class=&quot;section&quot; id=&quot;qu-est-ce-qu-un-reseau-social&quot;&gt;
&lt;h3&gt;&lt;a&gt;Qu&#39;est-ce qu&#39;un réseau social ?&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;descriptions de personnes (profil, histoire, etc)&lt;/li&gt;
&lt;li&gt;liens avec les autres membres (carnet adresses, etc)&lt;/li&gt;
&lt;li&gt;création de groupes&lt;/li&gt;
&lt;li&gt;partage de contenu (photos, vidéos, présentations, etc)&lt;/li&gt;
&lt;li&gt;discussion (blog, commentaires, forums, messages, microblog)&lt;/li&gt;
&lt;li&gt;mise en relation (boulot, ludo, dodo, etc)&lt;/li&gt;
&lt;li&gt;recommandation (lien, livre, achat, film, music, etc)&lt;/li&gt;
&lt;li&gt;présence (fait quoi, avec qui, où, etc)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;et-l-interoperabilite&quot;&gt;
&lt;h3&gt;&lt;a&gt;Et l&#39;interopérabilité ?&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;nombreuses applications / plate-formes&lt;/li&gt;
&lt;li&gt;en majorité centralisées et fermées&lt;/li&gt;
&lt;li&gt;ouverture progressive: protocoles et API en cours de dév&lt;/li&gt;
&lt;li&gt;réseaux ouverts et distribués: &lt;a class=&quot;reference&quot; href=&quot;http://opensource.appleseedproject.org/&quot;&gt;appleseed&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;https://en.wikipedia.org/wiki/Diaspora_%28social_network%29&quot;&gt;diaspora&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://onesocialweb.org/&quot;&gt;onesocialweb&lt;/a&gt;, etc.&lt;/li&gt;
&lt;li&gt;pourrait-on faire autrement ?&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;api-openstack&quot;&gt;
&lt;h3&gt;&lt;a&gt;API: openstack&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;découverte / discovery = xrd&lt;/li&gt;
&lt;li&gt;identité / identity = &lt;a class=&quot;reference&quot; href=&quot;http://openid.net/&quot;&gt;openid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;contrôle d&#39;accès / access control = &lt;a class=&quot;reference&quot; href=&quot;http://oauth.net/&quot;&gt;oauth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;activités / streams = &lt;a class=&quot;reference&quot; href=&quot;http://activitystrea.ms/&quot;&gt;activity streams&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;personnes / people = portable contacts&lt;/li&gt;
&lt;li&gt;applications = &lt;a class=&quot;reference&quot; href=&quot;http://www.opensocial.org/&quot;&gt;opensocial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;et-en-utilisant-les-standards-du-web&quot;&gt;
&lt;h3&gt;&lt;a&gt;Et en utilisant les standards du Web ?&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;découverte = &lt;a class=&quot;reference&quot; href=&quot;http://sw.deri.org/2007/07/sitemapextension/&quot;&gt;semantic sitemap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;identité = foaf + ssl (&lt;a class=&quot;reference&quot; href=&quot;http://webid.info/&quot;&gt;WebID&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;contrôle accès = oauth?&lt;/li&gt;
&lt;li&gt;activités = &lt;a class=&quot;reference&quot; href=&quot;http://online-presence.net/&quot;&gt;OPO&lt;/a&gt; (online presence ontology)&lt;/li&gt;
&lt;li&gt;personnes = &lt;a class=&quot;reference&quot; href=&quot;http://www.foaf-project.org/&quot;&gt;foaf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;applications = &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Representational_state_transfer&quot;&gt;REST&lt;/a&gt; ?&lt;/li&gt;
&lt;li&gt;et aussi: &lt;a class=&quot;reference&quot; href=&quot;http://www.sioc-project.org/&quot;&gt;sioc&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Simple_Knowledge_Organization_System&quot;&gt;skos&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Description_of_a_Project&quot;&gt;doap&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Dublin_core&quot;&gt;dc&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://www.slideshare.net/terraces/smob-a-framework-for-semantic-microblogging&quot;&gt;smob&lt;/a&gt;, etc&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;architecture-ouverte-et-distribuee&quot;&gt;
&lt;h3&gt;&lt;a&gt;Architecture ouverte et distribuée&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;vocabulaires RDF et protocole HTTP + REST&lt;/li&gt;
&lt;li&gt;chacun son serveur&lt;/li&gt;
&lt;li&gt;GET et éventuellement copie locale&lt;/li&gt;
&lt;li&gt;abonnement si nécessaire (pubsub, xmpp, atom ?)&lt;/li&gt;
&lt;li&gt;permissions gérées localement&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;=&amp;gt; social semantic network&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;pourquoi-cubicweb&quot;&gt;
&lt;h3&gt;&lt;a&gt;Pourquoi CubicWeb ?&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;plate-forme pour web sémantique (semantic web framework)&lt;/li&gt;
&lt;li&gt;conçu pour avoir composants à assembler&lt;/li&gt;
&lt;li&gt;chacun peut définir son application sur mesure&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- à comparer aux autres cas qui vont fournir même appli partout --&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;fait pour publier html et rdf en parallèle&lt;/li&gt;
&lt;li&gt;fait pour exporter et importer données&lt;/li&gt;
&lt;li&gt;déjà foaf, skos, sioc, doap, rss, atom, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;exemple&quot;&gt;
&lt;h3&gt;&lt;a&gt;Exemple&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;(micro)blog + book + link + file&lt;/li&gt;
&lt;li&gt;pourrait ajouter: musique, photos, etc.&lt;/li&gt;
&lt;li&gt;mais aussi: journal, recherche appartement, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;et-ensuite&quot;&gt;
&lt;h3&gt;&lt;a&gt;Et ensuite ?&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&amp;quot;Pull the Semantic Web&amp;quot; prédit personnalisation&lt;/li&gt;
&lt;li&gt;espace numérique personnel = personal data locker&lt;/li&gt;
&lt;li&gt;actions, automatisation ? Narval est de retour !&lt;/li&gt;
&lt;li&gt;discussion sur &lt;a class=&quot;reference&quot; href=&quot;mailto:cubicweb&amp;#64;lists.cubicweb.org&quot;&gt;cubicweb&amp;#64;lists.cubicweb.org&lt;/a&gt; et avec &lt;a class=&quot;reference&quot; href=&quot;mailto:nicolas.chauvat&amp;#64;logilab.fr&quot;&gt;nicolas.chauvat&amp;#64;logilab.fr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;merci de votre attention :)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;il-y-a-bien-longtemps&quot;&gt;
&lt;h3&gt;&lt;a&gt;Il y a bien longtemps...&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;découverte = &lt;cite&gt;who&lt;/cite&gt; et &lt;cite&gt;cat /etc/passwd | cut -d: -f1&lt;/cite&gt;&lt;/li&gt;
&lt;li&gt;identité = login&lt;/li&gt;
&lt;li&gt;contrôle accès = &lt;cite&gt;chmod&lt;/cite&gt;, &lt;cite&gt;chgrp&lt;/cite&gt;, &lt;cite&gt;su&lt;/cite&gt;&lt;/li&gt;
&lt;li&gt;activités = &lt;cite&gt;.plan&lt;/cite&gt;&lt;/li&gt;
&lt;li&gt;personnes = &lt;cite&gt;.addressbook&lt;/cite&gt;&lt;/li&gt;
&lt;li&gt;applications = &lt;cite&gt;vim ~/public_html/me.html&lt;/cite&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;h3 class=&quot;first&quot;&gt;&lt;a&gt;Note&lt;/a&gt;&lt;/h3&gt;
&lt;p class=&quot;last&quot;&gt;Ce texte a été présenté en août 2010, lors de la conférence française des utilisateurs de Python (PyCon-Fr 2010)&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
  <dc:date>2012-07-18T13:49-01:00</dc:date>
  <dc:creator>Nicolas Chauvat</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/92695</guid>
  <title>Mêlée numérique 2012: État de l&#39;art Big Data</title>
  <link>http://www.logilab.org/blogentry/92695</link>
  <description>&lt;img alt=&quot;http://www.logilab.org/file/92705?vid=download&quot; src=&quot;http://www.logilab.org/file/92705?vid=download&quot; /&gt;
&lt;p&gt;J&#39;ai passé ce jeudi 26 avril à la &lt;a class=&quot;reference&quot; href=&quot;http://www.meleenumerique.com/&quot;&gt;Mêlée numérique&lt;/a&gt; à Toulouse.&lt;/p&gt;
&lt;p&gt;Après une &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/blogentry/92581&quot;&gt;mini-conf d&#39;une heure sur l&#39;état de l&#39;art de l&#39;Open Data&lt;/a&gt;, j&#39;ai suivi l&#39;après midi &amp;quot;état de l&#39;art Big Data&amp;quot; au même format.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;big-data-vu-par-sgi&quot;&gt;
&lt;h3&gt;&lt;a&gt;Big Data vu par SGI&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Ma première surprise a été d&#39;apprendre où était caché SGI (vous vous rappelez peut-être les postes Indigo qu&#39;on trouvait pour faire du graphisme et de l&#39;animation...) depuis tout ce temps : et bien non, ils ne sont pas morts mais montent des calculateurs pour des grands comptes. Le premier intervenant était donc M. Carsalade, responsable infrastructure chez SGI, qui a pris quelques exemples d&#39;applications et d&#39;infrastructures &amp;quot;Big Data&amp;quot; (petabytes de données) menées par SGI.&lt;/p&gt;
&lt;p&gt;Parmi les applications citées : calculateurs chez NOAA (sorte de Météo France aux US) ou Total (analyse des sols), Cosmos Project (15 tera de ram...), génomiques&lt;/p&gt;
&lt;p&gt;SGI déploie par ex. :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;500 000 serveurs SGI chez Amazon pour S3/eC2, site web, AWS...&lt;/li&gt;
&lt;li&gt;300 000 serveurs SGI chez Microsoft pour Live Search (Bing, Exchange, MSN, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La technologie est souvent basée sur &lt;a class=&quot;reference&quot; href=&quot;http://hadoop.apache.org&quot;&gt;HADOOP&lt;/a&gt;, qui permet la recherche en parallèle sur un &lt;em&gt;cloud&lt;/em&gt;, basée sur le principe &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/MapReduce&quot;&gt;map / reduce&lt;/a&gt; initiée par Google.&lt;/p&gt;
&lt;p&gt;On note l&#39;évolution des technologies dans le temps et par volume croissant:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Online_transaction_processing&quot;&gt;OLTP&lt;/a&gt; (données structurées),&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Data_warehouse&quot;&gt;data warehouse&lt;/a&gt; (données essentiellement structurées),&lt;/li&gt;
&lt;li&gt;Big Data (données essentiellement non structurées)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il conclut que &lt;em&gt;Big Data&lt;/em&gt;, c&#39;est :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;la &lt;strong&gt;capacité de stockage&lt;/strong&gt; de données, et celle de l&#39;&lt;strong&gt;agrandir au fur et à mesure du besoin&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;travailler sur ces données&lt;/strong&gt; (&lt;a class=&quot;reference&quot; href=&quot;http://hadoop.apache.org&quot;&gt;HADOOP&lt;/a&gt;), les analyser et les visualiser,&lt;/li&gt;
&lt;li&gt;mais aussi &lt;strong&gt;archiver&lt;/strong&gt; ces données, problématique souvent ignorée au premier abord mais pourtant nécessaire.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;big-data-vu-par-une-pme-specialisee&quot;&gt;
&lt;h3&gt;&lt;a&gt;Big Data vu par une PME spécialisée&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;La présentation suivante de M.Royer (Datasio) est un peu plus technique.&lt;/p&gt;
&lt;p&gt;Pour commencer, une liste des sources de données problématiques potentielles (i.e. la production ne s&#39;arrête pas) :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;production par des réseaux d&#39;observation autonome (capteurs météo, GPS, RFID, balises Argos...),&lt;/li&gt;
&lt;li&gt;données dépendantes d&#39;une communauté d&#39;utilisateurs et d&#39;individus instrumentés,&lt;/li&gt;
&lt;li&gt;données produites plus vite qu&#39;on ne les traite,&lt;/li&gt;
&lt;li&gt;&amp;quot;on verra le traitement plus tard&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Synthèse de ces problèmes : les &amp;quot;3 V&amp;quot; du Big Data: Volume / Variété / Vélocité.&lt;/p&gt;
&lt;p&gt;Les techniques autour de &lt;em&gt;Big Data&lt;/em&gt; promettent de :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;faciliter la collecte et l&#39;aggrégation (mesurer les opérations, acquérir tous les flux possibles, stocker les mesures brutes)&lt;/li&gt;
&lt;li&gt;valoriser le capital de données (découvrir après coup des opportunités inexploitées, outils de fouille adaptés aux gros volumes, extraire et distiller l&#39;information)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il revient sur &lt;a class=&quot;reference&quot; href=&quot;http://hadoop.apache.org&quot;&gt;HADOOP&lt;/a&gt; en quelques mots :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;solution Open Source, issu de la &lt;a class=&quot;reference&quot; href=&quot;http://www.apache.org/&quot;&gt;fondation Apache&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;à l&#39;initiative de &lt;a class=&quot;reference&quot; href=&quot;http://fr.yahoo.com/&quot;&gt;Yahoo&lt;/a&gt; via un essaimage &lt;a class=&quot;reference&quot; href=&quot;http://hortonworks.com/&quot;&gt;Hortonworks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;c&#39;est un projet en maturation, avec une communauté active, mais des branches de code variées,&lt;/li&gt;
&lt;li&gt;constitué d&#39;un système de fichier distribué avec redondance (parallélisation des données) et possibilité &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/MapReduce&quot;&gt;map / reduce&lt;/a&gt; (parallélisation des tâches à effectuer sur les données)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si &lt;em&gt;Big Data&lt;/em&gt; est un nouveau terme pour une problématique qui n&#39;est pas nouvelle, une différence liée à la technique &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/MapReduce&quot;&gt;map / reduce&lt;/a&gt; les traitements sont &lt;strong&gt;effectués sur les serveurs qui hébergent les données&lt;/strong&gt; au lieu de pousser les données vers un calculateur. Attention au fait cependant que pour fonctionner, les algorithmes doivent fonctionner de manière indépendante sur un sous-ensemble indéterminé de données (donc finalement indépendamment sur chaque &amp;quot;donnée&amp;quot;). Enfin, on se concentre sur l&#39;&lt;strong&gt;efficience de la création et de la lecture des données&lt;/strong&gt;, à l&#39;inverse des bases de données traditionnelles qui se concentrent également sur la mise à jour et la suppression.&lt;/p&gt;
&lt;p&gt;Je ne sais pas s&#39;il y avait une conclusion, la présentation a été abrégée faute de temps.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;big-data-vu-par-meteo-france&quot;&gt;
&lt;h3&gt;&lt;a&gt;Big Data vu par Météo France&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;La dernière présentation était celle de M.Beuraud de Météo France dont la problématique, pas simple mais à laquelle nous sommes tous sensibles, est la prévision numérique du temps.&lt;/p&gt;
&lt;p&gt;Il note tout d&#39;abord que la qualité des prévisions a augmenté : la qualité d&#39;une prévison à 48h aujourd&#39;hui vaut prévision à 24h il y a 15 ans en lien avec l&#39;augmentation des performances du centre de calcul HPC de Météo France à Toulouse (évolution matérielle tous les 3 ans) :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;2 GFlops en 1991 (date de l&#39;ouverture du centre), basé sur des machines Cray 2,&lt;/li&gt;
&lt;li&gt;100 TFlops en 2009, basé sur des machines NEC SX9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le volume de données étudiées est maintenant beaucoup plus important, principalement du fait de la constellation de satellites qui s&#39;est développée et qui produit un volume beaucoup plus important que les mesures conventionnelles (au sol). On a vu un &amp;quot;déluge de données&amp;quot; satellitaires depuis 2010. D&#39;un point de vue stockage, le site est passé de 20Go en 1991 à plusieurs pétaoctets aujourd&#39;hui.&lt;/p&gt;
&lt;p&gt;De par les différentes contraintes extérieures (données à fournir aux clients), une prévision à 24h doit être faite en 25 minutes. De plus, la puissance de calcul nécessaire augmente sans cesse notamment à cause des facteurs suivants (en plus du volume de données à analyser qui augmente) :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;maille de plus en plus petite,&lt;/li&gt;
&lt;li&gt;couplage de modèles de plus en plus nombreux,&lt;/li&gt;
&lt;li&gt;prévision ensembliste : on lance X fois le même modèle avec des entrées différentes pour voir la stabilité de la prédiction.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A noter qu&#39;ici, on n&#39;est pas dans des technos de type &lt;a class=&quot;reference&quot; href=&quot;http://hadoop.apache.org&quot;&gt;HADOOP&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Il conclut que le volume de données à traiter va continuer à grandir, et que &lt;strong&gt;la gestion des données est l&#39;enjeu majeur de la décennie qui s&#39;ouvre&lt;/strong&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;conclusion&quot;&gt;
&lt;h3&gt;&lt;a&gt;Conclusion&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;J&#39;ai été surpris de voir l&#39;angle d&#39;approche pour la présentation d&#39;une thématique &lt;em&gt;Big Data&lt;/em&gt;, qui était pour moi (novice je l&#39;avoue) plus liée aux technologies Web. J&#39;ai finalement trouvé que c&#39;était intéressant de remettre ça avec cette perspective, et ainsi de replacer ce que recouvrent finalement les mots &lt;em&gt;Big Data&lt;/em&gt;. Encore un grand mot qui veut tout et rien dire quoi :p&lt;/p&gt;
&lt;/div&gt;
</description>
  <dc:date>2012-05-03T12:22-01:00</dc:date>
  <dc:creator>Sylvain Thenault</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/92581</guid>
  <title>Mélée numérique 2012: État de l&#39;art Open Data</title>
  <link>http://www.logilab.org/blogentry/92581</link>
  <description>&lt;img alt=&quot;http://www.logilab.org/file/92705?vid=download&quot; src=&quot;http://www.logilab.org/file/92705?vid=download&quot; /&gt;
&lt;p&gt;J&#39;ai passé ce jeudi 26 avril à la &lt;a class=&quot;reference&quot; href=&quot;http://www.meleenumerique.com/&quot;&gt;Mélée numérique&lt;/a&gt; à Toulouse.&lt;/p&gt;
&lt;p&gt;J&#39;y ai assisté à une mini-conf d&#39;une heure sur l&#39;état de l&#39;art de l&#39;Open Data. Comme d&#39;habitude, je conseillerais plutôt, lors des salons de ce type, d&#39;aller voir les conférences sur des thèmes qui vous sont inconnus, sous peine de ne pas apprendre grand chose. C&#39;est resté pas trop mal, et voici ce que j&#39;ai retiré de cette présentation conjointe de Bluenove, et Inno3.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;data-c-est-quoi-exactement&quot;&gt;
&lt;h3&gt;&lt;a&gt;Data, c&#39;est quoi exactement ?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Dans le cadre de l&#39;Open Data la donnée est le matériaux brute. C&#39;est une valeur, une observation. Ce n&#39;est pas une &lt;em&gt;information&lt;/em&gt;, qui recoupe et interprète plusieurs données.&lt;/p&gt;
&lt;p&gt;Le recoupement de données permet de créer des informations de valeurs. Cependant certaines données n&#39;ont pas vocation à être ouvertes (ex. données stratégiques, personnelles, défense).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;qui-sont-les-acteurs-de-l-open-data&quot;&gt;
&lt;h3&gt;&lt;a&gt;Qui sont les acteurs de l&#39;Open Data ?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;On distingue :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;les producteurs&lt;ul&gt;
&lt;li&gt;administration publique (&lt;a class=&quot;reference&quot; href=&quot;http://www.etalab.gouv.fr/&quot;&gt;Étalab&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;collectivités locales (&lt;a class=&quot;reference&quot; href=&quot;http://opendata.paris.fr/&quot;&gt;Paris data&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;portail de données (&lt;a class=&quot;reference&quot; href=&quot;http://www.data-publica.com/&quot;&gt;Data publica&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;entreprises privées (&lt;cite&gt;Réseau ferré de France&lt;/cite&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;les réutilisateurs&lt;ul&gt;
&lt;li&gt;journalistes (&lt;a class=&quot;reference&quot; href=&quot;http://owni.fr/&quot;&gt;http://owni.fr/&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;graphistes (&lt;a class=&quot;reference&quot; href=&quot;http://fr.mapize.com/&quot;&gt;http://fr.mapize.com/&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;développeurs (&lt;a class=&quot;reference&quot; href=&quot;http://www.handimap.org/&quot;&gt;http://www.handimap.org/&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;entreprises (&lt;a class=&quot;reference&quot; href=&quot;http://homengo.com/&quot;&gt;http://homengo.com/&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;chercheurs (MIT)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;les citoyens / utilisateurs&lt;ul&gt;
&lt;li&gt;activités (&lt;a class=&quot;reference&quot; href=&quot;http://www.regardscitoyens.org/&quot;&gt;Regards citoyens&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;associations (&lt;cite&gt;Fing&lt;/cite&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;qui-a-ouvert-ses-donnees&quot;&gt;
&lt;h3&gt;&lt;a&gt;Qui a ouvert ses données ?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;En France : Étalab, 16 ministères, 5 administrations publiques, 2 régions, 5 départements, 11 métropoles, 7 municipalités, 3 grandes entreprises (réseau férré, sncf, la poste), 4 initiatives culturels, PS...&lt;/p&gt;
&lt;p&gt;Dans le monde: 28 pays, environ 120 localités de toutes tailles. On voit se former des initiatives continentales,&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;pour-quels-resultats&quot;&gt;
&lt;h3&gt;&lt;a&gt;Pour quels résultats ?&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Un nouveau type d&#39;information (NR issu d&#39;une collaboration journaliste/développeur/graphiste), plus ou moins couvert sous le terme &amp;quot;Data viz&amp;quot; (eg OWNI)&lt;/li&gt;
&lt;li&gt;Des applications diverses, parfois issues de concours (eg application téléphone Tourisme 71)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;quels-sont-les-freins-et-incitations&quot;&gt;
&lt;h3&gt;&lt;a&gt;Quels sont les freins et incitations ?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Il y a une incitation/obligation venant de l&#39;Europe (2003) et de l&#39;état (2006) pour les acteurs publics, les acteurs privés délégataires d&#39;un service public ou monopolistiques. On peut ajouter  les modèles économiques basés sur la société de l&#39;information (eg &lt;a class=&quot;reference&quot; href=&quot;http://www.openstreetmap.org/&quot;&gt;http://www.openstreetmap.org/&lt;/a&gt; qui crée des données ouvertes collaborativement depuis 2006)&lt;/p&gt;
&lt;p&gt;Les freins viennent :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;des données non diffusables,&lt;/li&gt;
&lt;li&gt;d&#39;une cohabitation parfois difficile avec Loi informatique et liberté / CNIL (le recoupement de plusieur sources peut finir par redonner des données &amp;quot;personnelles&amp;quot;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;De plus cette incitation à la transparence crée nouveaux rapport entre secteur public et privé (je ne m&#39;en plaindrai pas personnellement :p ).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;quels-droits-quelles-licences-sur-les-donnees&quot;&gt;
&lt;h3&gt;&lt;a&gt;Quels droits / quelles licences sur les  données ?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Rappel : la propriété intellectuelle recrée une notion similaire à la propriété matérielle mais sur des &lt;strong&gt;oeuvres&lt;/strong&gt;. Les données ne sont pas soumise à la propriété intellectuelle. Les &lt;strong&gt;données originelles&lt;/strong&gt;, ainsi qu&#39;une base de données à forte valeur ajoutée, ou encore les signes distinctifs (marque, nom de domaine, logo, etc) sont considérés ou considérables comme des oeuvres.&lt;/p&gt;
&lt;p&gt;Il faut donc une gestion stratégique des différents droits de propriété intellectuelle. Que faut-il partager ou retenir ? Quel est l&#39;encadrement souhaité ? Copyleft (eg GPL) ou non ? Compatibilité entre jeux de données ?&lt;/p&gt;
&lt;p&gt;Aujourd&#39;hui on a comme licenses pour les données :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;les licences basées sur le droit d&#39;auteur (&lt;em&gt;CC&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;les licences basées sur la loi de 1978 (droit public en france, uniquement pour collectivité, pas de propriété intellectuelle) (&lt;em&gt;LIP&lt;/em&gt; et &lt;em&gt;APIE&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;les licences spécialisées (&lt;em&gt;ODBL&lt;/em&gt;, &lt;em&gt;PDDL&lt;/em&gt;, &lt;em&gt;ODC-By&lt;/em&gt; créées par &lt;em&gt;Open knowledge foundation&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;les licences dédiées (&lt;em&gt;Licence Ouverte&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En France (dans l&#39;administration publique ?) l&#39;&lt;em&gt;ODBL&lt;/em&gt; et la &lt;em&gt;Licence Ouverte&lt;/em&gt; sont principalement utilisées.&lt;/p&gt;
&lt;p&gt;En Europe et à l&#39;étranger, on trouve plutôt l&#39;&lt;em&gt;ODBL&lt;/em&gt;, &lt;em&gt;CC-0&lt;/em&gt; et autres licences dédiées.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;et-l-open-data-dans-l-entreprise&quot;&gt;
&lt;h3&gt;&lt;a&gt;Et l&#39;Open Data dans l&#39;entreprise ?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Bluenove a mené une enquête auprès de grands groupes. Quelques résultats (l&#39;intégralité est publiée dans un petit livre blanc dont j&#39;ai un exemplaire) :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;les bénéfices attendus de l&#39;ouverture et de la réutilisation sont avant tout d&#39;améliorer la satisfaction des clients, et en dernier lieu de se différencier de ses concurrents&lt;/li&gt;
&lt;li&gt;les obstacles ressentis : le besoin de contrôler la réutilisation de ses données, la peur de donner l&#39;accés à ses données aux concurents ou encore la frilosité à la réutilisation de données des autres (problème potentiel de fraicheur et/ou qualité des données)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;43 % des entreprises sondées disent qu&#39;une réfléxion autour de l&#39;Open Data est en cours évolution.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;conclusion&quot;&gt;
&lt;h3&gt;&lt;a&gt;Conclusion&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Aujourd&#39;hui, les licences sont matures et ne posent plus vraiment problème. On peut espérer avoir rapidement plus de données et d&#39;acteurs dans l&#39;Open Data. Cependant dans le public comme dans le privé une difficulté est d&#39;encadrer la production : motiver la production de données, accueillir les résultats et gérer la diffusion (qui a dit CubicWeb ? En toute objectivité :p ).&lt;/p&gt;
&lt;p&gt;NR: On notera l&#39;absence de discussion autour des formats de publication de données notamment. Pour conclure, j&#39;aurais plutôt appelé ça état les lieux que état de l&#39;art, même si ça reste un effort de synthèse appréciable.&lt;/p&gt;
&lt;/div&gt;
</description>
  <dc:date>2012-05-03T10:01-01:00</dc:date>
  <dc:creator>Sylvain Thenault</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/84788</guid>
  <title>OpenData à Nantes: agrégateur des événements culturels</title>
  <link>http://www.logilab.org/blogentry/84788</link>
  <description>&lt;p&gt;Jeudi 8 décembre 2011 nous avons participé à la réunion de travail sur l&#39;&lt;a class=&quot;reference&quot; href=&quot;https://opendatanantesagreg-eorg.eventbrite.com/&quot;&gt;ouverture des données événementielles&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;problematique-des-licences&quot;&gt;
&lt;h3&gt;&lt;a&gt;Problématique des licences&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Un premier problème est que la licence proposée par LiberTIC est la CreativeCommons &lt;a class=&quot;reference&quot; href=&quot;(https://creativecommons.org/licenses/by/3.0/)&quot;&gt;CC-BY&lt;/a&gt;, alors que les producteurs de données n&#39;ont souvent pas les droits sur toutes  les données qu&#39;ils diffusent (par exemple la photo d&#39;illustration d&#39;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.&lt;/p&gt;
&lt;p&gt;Aujourd&#39;hui, l&#39;utilisation ressemble à du &lt;a class=&quot;reference&quot; href=&quot;https://fr.wikipedia.org/wiki/Fair_use&quot;&gt;Fair Use&lt;/a&gt;: on tolère la ré-utilisation de contenus protégés par le droit d&#39;auteur car cela sert la diffusion de l&#39;information.&lt;/p&gt;
&lt;p&gt;Nous nous sommes demandé s&#39;il est possible de mélanger deux licences dans un flux de données ou s&#39;il faut faire deux flux séparés mais liés.&lt;/p&gt;
&lt;img alt=&quot;https://creativecommons.org/images/license-layers.png&quot; src=&quot;https://creativecommons.org/images/license-layers.png&quot; /&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;problematique-d-utilisation&quot;&gt;
&lt;h3&gt;&lt;a&gt;Problématique d&#39;utilisation&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;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&#39;elles n&#39;incluent pas d&#39;image ou de vidéo. Il faut donc trouver un socle commun qui satisfasse les producteurs et les réutilisateurs.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;import-ou-gros-formulaires-qui-tachent&quot;&gt;
&lt;h3&gt;&lt;a&gt;Import ou gros formulaires qui tâchent ?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;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&#39;un événement. A notre avis, la saisie &amp;quot;manuelle&amp;quot; doit rester un cas exceptionnel (un acteur culturel n&#39;ayant pas de site pour publier par exemple), au risque de n&#39;être pour les producteurs qu&#39;un enième site à renseigner lors de la publication de son agenda.&lt;/p&gt;
&lt;p&gt;Un exemple de bonnes pratiques est le très populaire &lt;a class=&quot;reference&quot; href=&quot;http://www.heppnetz.de/projects/goodrelations/&quot;&gt;GoodRelations&lt;/a&gt;  qui offre un &lt;a class=&quot;reference&quot; href=&quot;http://www.ebusiness-unibw.org/tools/grsnippetgen/&quot;&gt;formulaire&lt;/a&gt; pour qu&#39;un utilisateur qui n&#39;a pas intégré le format à sa boutique en ligne puisse facilement  générer son fichier et l&#39;héberger chez lui, favorisant ainsi un modèle décentralisé calqué sur celui des moteurs de recherche.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;formats&quot;&gt;
&lt;h3&gt;&lt;a&gt;Formats&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Il nous semble donc important de se concentrer sur les formats standards qui pourraient être importés et exportés par la plateforme.&lt;/p&gt;
&lt;p&gt;En voici une liste non exhaustive:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;https://en.wikipedia.org/wiki/ICalendar&quot;&gt;ical&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;https://en.wikipedia.org/wiki/XCal&quot;&gt;xcal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;https://en.wikipedia.org/wiki/Vcal&quot;&gt;vcal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;schema.org / &lt;a class=&quot;reference&quot; href=&quot;http://schema.org/Event&quot;&gt;Event&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://motools.sourceforge.net/event/event.html&quot;&gt;Event Ontology&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;lectures-supplementaires&quot;&gt;
&lt;h3&gt;&lt;a&gt;Lectures supplémentaires&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;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 :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;le &lt;a class=&quot;reference&quot; href=&quot;http://mashupguide.net/1.0/html/ch15s03.xhtml&quot;&gt;chapitre 15 du Mashup Guide&lt;/a&gt;  explique comment du DublinCore peut être ajouté au sein de xcal. Il fournit aussi un exemple d&#39;utilisation d&#39;une API de requêtes sur un site populaire aux USA : &lt;a class=&quot;reference&quot; href=&quot;http://upcoming.yahoo.com/&quot;&gt;http://upcoming.yahoo.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;La question de la licence &amp;quot;Machine readable&amp;quot; a été abordée &lt;a class=&quot;reference&quot; href=&quot;http://wiki.creativecommons.org/Frequently_Asked_Questions#What_does_it_mean_that_Creative_Commons_licenses_are_.22machine-readable.22.3F&quot;&gt;http://wiki.creativecommons.org/Frequently_Asked_Questions#What_does_it_mean_that_Creative_Commons_licenses_are_.22machine-readable.22.3F&lt;/a&gt; et &lt;a class=&quot;reference&quot; href=&quot;http://wiki.creativecommons.org/RDFa&quot;&gt;http://wiki.creativecommons.org/RDFa&lt;/a&gt; et &lt;a class=&quot;reference&quot; href=&quot;http://wiki.creativecommons.org/XMP&quot;&gt;http://wiki.creativecommons.org/XMP&lt;/a&gt; (property=&amp;quot;cc:attributionName&amp;quot; rel=&amp;quot;cc:attributionURL&amp;quot;)&lt;/li&gt;
&lt;li&gt;LODE: An ontology for Linking Open Descriptions of Events &lt;a class=&quot;reference&quot; href=&quot;http://linkedevents.org/ontology/&quot;&gt;http://linkedevents.org/ontology/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img alt=&quot;http://cdn1.iconfinder.com/data/icons/transformers/network-connections.png&quot; src=&quot;http://cdn1.iconfinder.com/data/icons/transformers/network-connections.png&quot; /&gt;
&lt;img alt=&quot;http://cdn1.iconfinder.com/data/icons/transformers/Internet-Explorer.png&quot; src=&quot;http://cdn1.iconfinder.com/data/icons/transformers/Internet-Explorer.png&quot; /&gt;
&lt;img alt=&quot;http://cdn1.iconfinder.com/data/icons/transformers/entire-network.png&quot; src=&quot;http://cdn1.iconfinder.com/data/icons/transformers/entire-network.png&quot; /&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;conclusion&quot;&gt;
&lt;h3&gt;&lt;a&gt;Conclusion&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Il  nous paraît important de ne pas se tromper dans les orientations choisies:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;utiliser des formats standards et combiner l&#39;utilisation de &lt;em&gt;namespaces&lt;/em&gt; existants plutôt que d&#39;inventer un nouveau format&lt;/li&gt;
&lt;li&gt;proposer plusieurs formats d&#39;export pour différentes utilisations (json, ical, etc) quitte à ne pas inclure tout le contenu disponible si le format ne s&#39;y prête pas&lt;/li&gt;
&lt;li&gt;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&lt;/li&gt;
&lt;li&gt;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&#39;attendre des producteurs qu&#39;ils remplissent un formulaire de plus.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nous attendons avec impatience la suite des travaux. Selon &lt;a class=&quot;reference&quot; href=&quot;https://libertic.wordpress.com/&quot;&gt;LiberTIC&lt;/a&gt; la plateforme sera developpée en logiciel libre avec des outils collaboratifs pour piloter le projet.&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org/&quot;&gt;CubicWeb&lt;/a&gt; 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&#39;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&#39;agrégateur choisiront  &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org/&quot;&gt;CubicWeb&lt;/a&gt; comme base technique pour ce projet.&lt;/p&gt;
&lt;/div&gt;
</description>
  <dc:date>2011-12-12T15:28-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/83223</guid>
  <title>Rencontre Open Data à Nantes: Enjeux et opportunités pour le secteur culturel</title>
  <link>http://www.logilab.org/blogentry/83223</link>
  <description>&lt;p&gt;Nous étions présents à l&#39;&lt;a class=&quot;reference&quot; href=&quot;https://opendatanantesculture.eventbrite.com/&quot;&gt;évenement&lt;/a&gt; organisé par Stereolux et &lt;a class=&quot;reference&quot; href=&quot;http://www.liber-tic.com/&quot;&gt;Libertic&lt;/a&gt; consacré à l&#39;OpenData dans le domaine de la culture à Nantes. Voici un court compte rendu des points que nous avons retenus de ces présentations.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;presentation-generale-de-l-opendata-par-libertic&quot;&gt;
&lt;h3&gt;&lt;a&gt;Présentation générale de l&#39;OpenData par Libertic&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Il existe sur la toile assez d&#39;articles sur l&#39;&lt;a class=&quot;reference&quot; href=&quot;http://fr.wikipedia.org/wiki/OpenData&quot;&gt;Opendata&lt;/a&gt; pour qu&#39;il ne nous semble pas nécessaire d&#39;en donner une description, mais nous tenons à souligner que l&#39;OpenData n&#39;est pas simplement une mise à disposition des informations. Pour que des données puissent être qualifiées d&#39;ouvertes, il faut qu&#39;elles respectent une dizaine de principes parmi lesquels l&#39;accessiblité, l&#39;exploitabilité (données brutes), et la la réutilisablitié (licence).&lt;/p&gt;
&lt;img alt=&quot;https://libertic.files.wordpress.com/2010/02/logo-libertic.png?w=300&amp;amp;h=180&quot; class=&quot;align-right&quot; src=&quot;https://libertic.files.wordpress.com/2010/02/logo-libertic.png?w=300&amp;amp;h=180&quot; /&gt;
&lt;p&gt;Claire Gallon a cité plusieurs exemples d&#39;OpenData dans le domaine culturel :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;la mise à disposition de données sur la fréquentation d&#39;un musée permet de développer un service qui donnera la meilleure heure pour visiter ce musée. Voir &lt;a class=&quot;reference&quot; href=&quot;http://whenshouldivisit.iamdanw.com/&quot;&gt;When Should I visit Tate Modern&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Marseille-Provence 2013 (capitale culturelle européenne) &lt;a class=&quot;reference&quot; href=&quot;http://www.marseille-provence2013.fr/le-projet/evenements-structurants/ouverture/&quot;&gt;ouvre ses données et attend&lt;/a&gt; que les acteurs écrivent des applications (mobiles notamment).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un idée importante est que le service public doit s&#39;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&#39;occuper ces niches.&lt;/p&gt;
&lt;p&gt;En conclusion, Claire Gallon insiste sur la nécessité d&#39;inclure la gestion de la communauté dans les démarches d&#39;ouverture des données. La prochaine priorité des acteurs de l&#39;OpenData sera la coproduction, à la fois pour l&#39;écriture des applications et pour l&#39;amélioration des données.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;presentation-du-projet-data-bnf-fr-par-romain-wenz&quot;&gt;
&lt;h3&gt;&lt;a&gt;Présentation du projet data.bnf.fr par Romain Wenz&lt;/a&gt;&lt;/h3&gt;
&lt;img alt=&quot;http://data.bnf.fr/data/logo-bnf.gif&quot; src=&quot;http://data.bnf.fr/data/logo-bnf.gif&quot; /&gt;
&lt;img alt=&quot;http://data.bnf.fr/data/logo-data.gif&quot; src=&quot;http://data.bnf.fr/data/logo-data.gif&quot; /&gt;
&lt;p&gt;Romain Wenz de la &lt;a class=&quot;reference&quot; href=&quot;http://www.bnf.fr/&quot;&gt;Bibliothèque nationale de France&lt;/a&gt; a présenté &lt;a class=&quot;reference&quot; href=&quot;http://data.bnf.fr&quot;&gt;http://data.bnf.fr&lt;/a&gt; sous l&#39;angle de l&#39;ouverture : l&#39;ouverture à un public différent, l&#39;ouverture à un mode de recherche différent (on cherche sur internet avant d&#39;aller en bibliothèque) et l&#39;ouverture sur les reseaux sociaux où le public partage des références à des contenus qu&#39;il apprécie (twitter, facebook, etc.).
Cette ouverture passe forcément par un web indexable, où l&#39;on peut communiquer facilement une URL d&#39;un contenu (exit les portails de recherche avec des sessions et variable http). Si un site n&#39;est pas indexable, son contenu pourra être trouvé en s&#39;y connectant directement, mais celui-ci restera dans le web &amp;quot;invisible&amp;quot; ou &amp;quot;profond&amp;quot;.&lt;/p&gt;
&lt;p&gt;Romain Wenz a insisté sur l&#39;Importance des technologies utilisées : d&#39;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&#39;autre l&#39;utilité de s&#39;appuyer sur du logiciel libre. Dans le cas de &lt;a class=&quot;reference&quot; href=&quot;http://data.bnf.fr&quot;&gt;http://data.bnf.fr&lt;/a&gt; il s&#39;agit de &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org.&quot;&gt;CubicWeb&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;presentation-des-collaborations-entre-wikimedia-france-et-des-institutions-publiques-a-toulouse&quot;&gt;
&lt;h3&gt;&lt;a&gt;Présentation des collaborations entre Wikimedia France et des institutions publiques à Toulouse&lt;/a&gt;&lt;/h3&gt;
&lt;img alt=&quot;https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Commons-logo-en.svg/75px-Commons-logo-en.svg.png&quot; src=&quot;https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Commons-logo-en.svg/75px-Commons-logo-en.svg.png&quot; /&gt;
&lt;p&gt;La transition entre la BnF et Wikimedia est facile : Wikisource (bibliothèque de livres libres de droits) a signé un partenariat avec &lt;a class=&quot;reference&quot; href=&quot;http://gallica.bnf.fr/&quot;&gt;Gallica&lt;/a&gt; qui lui &lt;a class=&quot;reference&quot; href=&quot;https://fr.wikisource.org/wiki/Wikisource:Gallica&quot;&gt;a fourni des numérisations&lt;/a&gt; de livres tombés dans le domaine public.&lt;/p&gt;
&lt;p&gt;Wikimedia France a présenté deux projets réussis en coproduction avec des institutions Toulousaines :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;le projet &lt;a class=&quot;reference&quot; href=&quot;https://secure.wikimedia.org/wikipedia/commons/wiki/Commons:Projet_Phoebus&quot;&gt;Phoebus&lt;/a&gt; a donné accès aux archives du Muséum de Toulouse à des bénévoles&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;la communauté Wikimedia Commons a participé à l&#39;enrichissement des metadonnées du fond consacré au photographe Eugène Trutat.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;presentation-opendata-par-la-mairie-de-nantes-metropole&quot;&gt;
&lt;h3&gt;&lt;a&gt;Présentation OpenData par la mairie de Nantes Métropole&lt;/a&gt;&lt;/h3&gt;
&lt;img alt=&quot;http://nantes.fr/webdav/site/nantesfr/shared/fileadmin/images/Puces/autrespuces/logo64_queue.png&quot; src=&quot;http://nantes.fr/webdav/site/nantesfr/shared/fileadmin/images/Puces/autrespuces/logo64_queue.png&quot; /&gt;
&lt;p&gt;Frédéric Vasse a briévement présenté la démarche de la Ville de Nantes en matière d&#39;OpenData. Le lancement de la plateforme aura lieu lundi prochain à la &lt;a class=&quot;reference&quot; href=&quot;http://www.cantine-nantes.org&quot;&gt;Cantine Numérique de Nantes&lt;/a&gt;. Selon lui, l&#39;objectif de Nantes est de réussir la coproduction avec les acteurs du territoire.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;conclusion-et-ouverture-sur-un-projet-concret-d-opendata-pour-les-acteurs-culturels&quot;&gt;
&lt;h3&gt;&lt;a&gt;Conclusion et ouverture sur un projet concret d&#39;OpenData pour les acteurs culturels&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Libertic a conclu en proposant aux acteurs culturels un projet d&#39;aggrégateur d&#39;informations sur les événements culturels à Nantes. Nous espérons pouvoir vous donner prochainement plus d&#39;informations sur ce projet.&lt;/p&gt;
&lt;p&gt;Autre compte rendu (prises de notes) : &lt;a class=&quot;reference&quot; href=&quot;http://www.scribd.com/doc/72810587/Opendata-Culture&quot;&gt;http://www.scribd.com/doc/72810587/Opendata-Culture&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</description>
  <dc:date>2011-11-17T15:25-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/49935</guid>
  <title>Pourquoi il faudrait faire du Javascript coté serveur</title>
  <link>http://www.logilab.org/blogentry/49935</link>
  <description>&lt;p&gt;Description de la présentation sur le site de Paris Web 2010: &lt;a class=&quot;reference&quot; href=&quot;http://www.paris-web.fr/2010/programme/le-javascript-server-side-faire-un-point.php&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Quentin Adam voudrait que l&#39;on fasse plus de javascript coté
serveur. Un des principaux avantages du javascript server side est que
il n&#39;est pas nécessaire de traduire ces structures de données entre
plusieurs languages de programmation.&lt;/p&gt;
&lt;img alt=&quot;http://www.bewebmaster.com/bewebmaster/icons/JavaScript.png&quot; class=&quot;align-right&quot; src=&quot;http://www.bewebmaster.com/bewebmaster/icons/JavaScript.png&quot; /&gt;
&lt;img alt=&quot;http://a3.twimg.com/profile_images/90410047/clouds2_normal.jpg&quot; class=&quot;align-right&quot; src=&quot;http://a3.twimg.com/profile_images/90410047/clouds2_normal.jpg&quot; /&gt;
&lt;p&gt;Une des limites à cette adoption est que les moteurs de javascripts ne
font pas de DOM (ca c&#39;est le boulot du navigateur), du coup pas de
&lt;a class=&quot;reference&quot; href=&quot;http://jquery.com/&quot;&gt;jquery&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://mootools.net/&quot;&gt;mootools&lt;/a&gt; ou &lt;a class=&quot;reference&quot; href=&quot;http://www.dojotoolkit.org/&quot;&gt;dojo&lt;/a&gt; (high level javascript)&amp;gt;. Par conséquent
les développeurs javascript vont avoir des difficultés pour coder en
server side. Certaines librairies sont en train de prendre en compte
cet environnement limité.&lt;/p&gt;
&lt;p&gt;Quand on fait du javascript coté serveur, on peut considérer les
requêtes comme des websockets, ce qui va être avantageux en terme de
performances (par exemple lorsque le serveur reçoit deux requêtes
identiques, quand la réponse est prête on renvoie deux fois la même
chose).&lt;/p&gt;
&lt;p&gt;Voici quelques outils que Quentin Adam recommande ou mentionne :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Ape - Ajax Push Engine - &lt;a class=&quot;reference&quot; href=&quot;http://www.ape-project.org&quot;&gt;http://www.ape-project.org&lt;/a&gt; Mettre du
javascript dans un module apache. Coté client on a du mootols pour
faire du développement.&lt;/li&gt;
&lt;li&gt;Node.js &lt;a class=&quot;reference&quot; href=&quot;http://www.nodejs.org&quot;&gt;http://www.nodejs.org&lt;/a&gt; très adopté par la communauté
ruby. Node.js es apparu au moment de l&#39;émergence de v8. Par contre
celui-ci n&#39;est pas très stable, la documentation n&#39;est pas très
complète, mais il y a beaucoup de &amp;quot;recettes&amp;quot; sur le web.&lt;/li&gt;
&lt;li&gt;CommonJS &lt;a class=&quot;reference&quot; href=&quot;http://www.commonjs.org/&quot;&gt;http://www.commonjs.org/&lt;/a&gt; est une librairie qui a l&#39;avantage
d&#39;être en cours de standardisation.&lt;/li&gt;
&lt;li&gt;Jaxer &lt;a class=&quot;reference&quot; href=&quot;http://jaxer.org/&quot;&gt;http://jaxer.org/&lt;/a&gt; est une sorte de firefox embarqué dans un
module apache, ce qui est un peu trop lourd mais son existence
mérite d&#39;être mentionnée.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;À Logilab, pour le développement de &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org&quot;&gt;CubicWeb&lt;/a&gt;, nous penchons plutôt pour les développements des mécanismes
asyncrones dans &lt;a class=&quot;reference&quot; href=&quot;http://twistedmatrix.com/trac/&quot;&gt;Twisted&lt;/a&gt;, mais cette présentation a le mérite de
mettre en avant que d&#39;utiliser javascript ne concerne pas uniquement
les tweaks dans le navigateur.&lt;/p&gt;
&lt;img alt=&quot;http://twistedmatrix.com/trac/chrome/common/trac_banner.png&quot; class=&quot;align-center&quot; src=&quot;http://twistedmatrix.com/trac/chrome/common/trac_banner.png&quot; /&gt;
</description>
  <dc:date>2010-11-03T19:01-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/49933</guid>
  <title>Paris Web 2010 - Spécial typographie</title>
  <link>http://www.logilab.org/blogentry/49933</link>
  <description>&lt;p&gt;Suite de la &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/blogentry/49921&quot;&gt;première journée&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Le lendemain, j&#39;ai pu assister à &lt;em&gt;La typographie comme outil de design&lt;/em&gt; (par David Rault) qui me semble être une sensibilisation indispensable à tout développeur web. Une introduction efficace et complète sur les familles de polices (classification &lt;a class=&quot;reference&quot; href=&quot;&amp;lt;http://en.wikipedia.org/wiki/VOX-ATypI_classification&amp;gt;&quot;&gt;VOX-ATypI&lt;/a&gt;) et les types d&#39;effets produits sur le lecteur. Il faut voir la typographie comme l&#39;équivalent de l&#39;intonation à l&#39;oral. La police apporte un autre contexte à la compréhension du texte. Pour finir, David Rault a parcouru les &amp;quot;web fonts&amp;quot; les plus connues tout en prenant soin de donner son avis d&#39;expert ainsi que des détails historiques croustillants.&lt;/p&gt;
&lt;p&gt;Les organisateurs de Paris Web avaient ensuite judicieusement programmé &lt;em&gt;La macrotypographie de la page Web&lt;/em&gt; (par Anne-Sophie Fradier). Après quelques explications historiques sur l&#39;importance du support sur le format, plusieurs techniques de bases ont été présentées, comme par exemple l&#39;usage des grilles pour la construction des pages. Celles-ci fixent un cadre à la créativité et permettent de respecter plus facilement des pauses visuelles pour retrouver un confort de lecture indispensable. L&#39;interlignage doit être important (140% du corps), le fer à gauche et le drapeau à droite et un corps de texte suffisamment gros pour éviter des changements de taille de police intempestifs (qui risquent de &amp;quot;casser&amp;quot; la mise en page).&lt;/p&gt;
&lt;p&gt;Un des sujets intéressants mais souvent méconnu est le respect de la ligne de base dans la construction du flux vertical du texte dans un document. C&#39;est justement sur ce principe et en se basant sur cet &lt;a class=&quot;reference&quot; href=&quot;http://lamb.cc/typograph/&quot;&gt;article&lt;/a&gt; que plusieurs personnes à Logilab ont commencé à implanter des &amp;quot;règles de rythmes&amp;quot; dans le framework CubicWeb lors d&#39;un &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org/blogentry/931633&quot;&gt;sprint&lt;/a&gt; en mai dernier. Dernier conseil à retenir d&#39;une typographe, il faut donc toujours essayer de &amp;quot;retomber sur ses pattes&amp;quot; :-)&lt;/p&gt;
&lt;p&gt;Une question pertinente fut posée à la fin de la présentation sur la mode des &amp;quot;design fluides&amp;quot;; c&#39;est-à-dire des mises en page calculées tout en proportion plutôt que fixées en pixels. La réponse donnée ne peut être absolue car ceci dépend essentiellement de la créativité et de l&#39;originalité de l&#39;auteur du site ; même si Anne-Sophie Fradier préconise quand même de garder le contrôle sur la largeur (la hauteur étant souvent imposée par le navigateur).&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;conclusion&quot;&gt;
&lt;h3&gt;&lt;a&gt;Conclusion&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;L&#39;usage de &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Web_Open_Font_Format&quot;&gt;WOFF&lt;/a&gt;, les nouveautés apportées par CSS3 et les effets rendus possibles par javascript vont permettre de créer un nouvel univers au texte et à sa mise en forme. Nous pouvons espérer que le confort de lecture et la lisibilité des textes vont devenir de véritables critères de qualité. Il me paraît aujourd&#39;hui évident à l&#39;issu de ces présentations que la typographie va petit à petit s&#39;imposer comme une nouvelle compétence du web designer de demain.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;quelques-sites-donnes-en-reference&quot;&gt;
&lt;h3&gt;&lt;a&gt;Quelques sites donnés en référence&lt;/a&gt;&lt;/h3&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://www.typographe.com&quot;&gt;http://www.typographe.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://typographisme.net&quot;&gt;http://typographisme.net&lt;/a&gt; (à venir)&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://retinart.net/graphic-design/secret-law-of-page-harmony&quot;&gt;http://retinart.net/graphic-design/secret-law-of-page-harmony&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sur l&#39;usage des grilles pour la construction d&#39;un design de site :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://960.gs/&quot;&gt;http://960.gs/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://www.thegridsystem.org/&quot;&gt;http://www.thegridsystem.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://www.amazon.fr/Grid-Systems-Principles-Organizing-Type/dp/1568984650&quot;&gt;http://www.amazon.fr/Grid-Systems-Principles-Organizing-Type/dp/1568984650&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</description>
  <dc:date>2010-10-20T12:28-01:00</dc:date>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/49921</guid>
  <title>Paris Web 2010 - Le texte et le web</title>
  <link>http://www.logilab.org/blogentry/49921</link>
  <description>&lt;p&gt;J&#39;ai eu la chance d&#39;assister à l&#39;ensemble des conférences données à Paris Web sur le rôle du texte et de la typographie dans le web d&#39;aujourd&#39;hui.&lt;/p&gt;
&lt;p&gt;La présentation &lt;a class=&quot;reference&quot; href=&quot;http://www.paris-web.fr/2010/programme/a-lheure-de-youtube-et-de-google-earth-le-texte-est-il-le-parent-pauvre-du-web.php&quot;&gt;Le texte: parent pauvre du web ?&lt;/a&gt; (par Jean-Marc Hardy) rappela les points les plus pertinents sur l&#39;usage des éléments textuels par rapport à l&#39;image.&lt;/p&gt;
&lt;p&gt;Outre l&#39;exemple classique sur les outils de référencement qui ne savent aujourd&#39;hui utiliser que le texte brut d&#39;une page (au grand dam des &amp;quot;flasheurs&amp;quot;), D&#39;autres résultats d&#39;études furent donnés:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;le taux de suivi des liens publicitaires textuels (ceux de Google par exemple sont 10 fois plus efficaces que les bannières classiques qui ont un taux de suivi de 2‰).&lt;/li&gt;
&lt;li&gt;des &lt;a class=&quot;reference&quot; href=&quot;http://www.iceranking.com/referencement/conseils-pour-ameliorer-vos-conversions-sur-vos-pages-de-destination/&quot;&gt;cartes de température&lt;/a&gt; montrent que les titres (surtout si ceux-ci sont inférieurs à 11 caractères) restent très structurants pour la lecture et le prise d&#39;informations à la différence des images qui restent floues pour le cerveau pendant les premiers dixièmes de secondes&lt;/li&gt;
&lt;li&gt;l&#39;usage de phrases explicatives plutôt que des infinitifs vagues dans les boutons de formulaires rassurent l&#39;utilisateur ѕur des étapes cruciales d&#39;enregistrement.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un dernier contre-exemple étonnant fut donné au sujet d&#39;une boutique en ligne qui en voulant mettre en valeur la corbeille d&#39;achats par une image très colorée a provoqué l&#39;effet inverse: un sentiment de rejet des utilisateurs qui croyaient voir alors une publicité ;-)&lt;/p&gt;
&lt;p&gt;Jean-Marc Hardy a évoqué brièvement le rôle du texte dans l&#39;accessibilité mais a préféré laisser cette partie à d&#39;autres orateurs de Paris Web (l&#39;accessibilité étant à l&#39;honneur cette année).&lt;/p&gt;
&lt;p&gt;J&#39;aurais bien aimé avoir son avis sur l&#39;esthétique souvent utilisée pour les sites dits &lt;a class=&quot;reference&quot; href=&quot;http://www.webdesignfromscratch.com/web-design/web-2-0-design-style-guide/&quot;&gt;Web2.0&lt;/a&gt; qui se rapprochent finalement assez bien de ses recommandations.&lt;/p&gt;
&lt;p&gt;Le deuxième jour, j&#39;ai particulièrement apprécié les sujets autour de  &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/blogentry/49933&quot;&gt;la typographie et le rhythme des pages&lt;/a&gt;...&lt;/p&gt;
</description>
  <dc:date>2010-10-20T12:28-01:00</dc:date>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/49746</guid>
  <title>Retour sur paris-web 2010</title>
  <link>http://www.logilab.org/blogentry/49746</link>
  <description>&lt;img alt=&quot;http://www.paris-web.fr/telechargements/logotype-paris-web.png&quot; class=&quot;align-left&quot; src=&quot;http://www.paris-web.fr/telechargements/logotype-paris-web.png&quot; style=&quot;width: 180px; height: 125px;&quot; /&gt;
&lt;p&gt;La semaine passée avait lieu &lt;a class=&quot;reference&quot; href=&quot;http://www.paris-web.fr/&quot;&gt;Paris-Web 2010&lt;/a&gt;. C&#39;était la 5ème édition de cet événement mais je n&#39;avais pas eu l&#39;occasion d&#39;y assister les années précédentes.&lt;/p&gt;
&lt;p&gt;Tout d&#39;abord, félicitations aux organisateurs pour l&#39;organisation, notamment pour les sessions du grand amphithéâtre avec la traduction simultanée pour les
conférences en anglais (j&#39;avoue ne pas avoir testé le casque audio), les interprètes en langue des signes ainsi que la vélotypie. Un petit bémol toutefois :
il n&#39;y avait pas assez de prises de courant pour que les personnes présentes puissent recharger leur ordinateur !&lt;/p&gt;
&lt;p&gt;Quant aux conférences elles-mêmes, pas mal de choses orientées &lt;em&gt;utilisabilité&lt;/em&gt;, &lt;em&gt;design&lt;/em&gt;, &lt;em&gt;accessibilité&lt;/em&gt; et &lt;em&gt;HTML5&lt;/em&gt;. Bien que je n&#39;aie pas eu le sentiment
d&#39;apprendre beaucoup de choses techniquement, en particulier sur HTML5 où le contenu des présentations se recoupait trop
et n&#39;apportait de mon point de vue pas grand chose de nouveau, les orateurs ont su animer et rendre vivante leur présentation. Je retiendrai
en particulier trois présentations :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;em&gt;Let’s interface - how to make people as excited about tech as we are&lt;/em&gt; de &lt;a class=&quot;reference&quot; href=&quot;http://www.wait-till-i.com/&quot;&gt;Christian Heilmann&lt;/a&gt; que je résumerai (très)
rapidement en disant : réutiliser les outils et les données qui sont disponibles, ne pas repartir de zéro et
rajouter une petite couche qui offre une réelle valeur ajoutée, ce n&#39;est pas forcément très compliqué.
Parmi les exemples cités : &lt;a class=&quot;reference&quot; href=&quot;http://isithackday.com/hacks/geo/addmap.html&quot;&gt;http://isithackday.com/hacks/geo/addmap.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Innover de 9 à 5&lt;/em&gt; par Olivier Thereaux : ou comment créer des espaces d&#39;échange pour faire émerger de nouvelles idées puis les transformer en projets.
Au final, aucune solution concrète ou miracle évidemment, et il me semble que c&#39;était un des buts (&amp;quot;pas de recette de cuisine&amp;quot;),
mais je retiens que d&#39;après son expérience, il faut des gens avec l&#39;esprit &lt;em&gt;hacker&lt;/em&gt;, entendre &lt;em&gt;bidouilleur&lt;/em&gt;. Ensuite, toutes les idées qui émergent
ne sont pas bonnes, toutes les bonnes idées n&#39;aboutissent pas et si celui qui a l&#39;idée n&#39;est pas directement
celui qui s&#39;occupe de la concrétiser, il y a peu de chances que ça fonctionne. Enfin, il faut ne pas avoir
les yeux plus gros que le ventre et tempérer ses envies en fonction du temps (ou moyens) que l&#39;on pourra y accorder
et y aller petit pas par petit pas.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;HTML5 et ses amis&lt;/em&gt; par &lt;a class=&quot;reference&quot; href=&quot;http://paulrouget.com/&quot;&gt;Paul Rouget&lt;/a&gt; : une très belle présentation avec des démonstrations HTML5 (version Firefox4)
très bien choisies : utilisation des &lt;a class=&quot;reference&quot; href=&quot;http://dev.w3.org/html5/websockets/&quot;&gt;websockets&lt;/a&gt; pour diffuser les slides sur ordinateurs clients, utilisation de
&lt;a class=&quot;reference&quot; href=&quot;https://developer.mozilla.org/en/Using_files_from_web_applications&quot;&gt;FileReader&lt;/a&gt; pour la prévisualisation d&#39;images côté client et une belle démonstration des capacités WebGL !&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je n&#39;ai entendu que des retours positifs sur &lt;a class=&quot;reference&quot; href=&quot;http://www.paris-web.fr/2010/programme/macrotypographie-page-web.php&quot;&gt;la macrographie de la page Web&lt;/a&gt; à laquelle je n&#39;ai malheureusement pas assisté personnellement mais d&#39;autres logilabiens y étaient.
J&#39;ai également noté l&#39;absence du web sémantique, ou alors je n&#39;étais pas dans le bon amphi.
En tout cas, tout ça m&#39;a remotivé pour jouer avec HTML5 dans &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org&quot;&gt;cubicweb&lt;/a&gt;. J&#39;ai d&#39;ailleurs commencé à faire une démo websocket dans cubicweb, affaire à suvire...&lt;/p&gt;
</description>
  <dc:date>2010-10-20T09:36-01:00</dc:date>
  <dc:creator>Adrien Di Mascio</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/47890</guid>
  <title>AgileFrance 2010: retour d&#39;expérience sur la gestion agile du projet Pylos</title>
  <link>http://www.logilab.org/blogentry/47890</link>
  <description>&lt;p&gt;J&#39;ai présenté au printemps dernier à l&#39;occasion de la conférence AgileFrance2010 un retour d&#39;expérience sur la gestion agile du projet Pylos. Mon &amp;quot;client&amp;quot; m&#39;a fait la gentillesse de participer à l&#39;élaboration de cette présentation et de venir co-présenter.&lt;/p&gt;
&lt;p&gt;Après avoir longtemps tardé, voici le &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/file/47892?vid=download&quot;&gt;support de la présentation&lt;/a&gt; (le texte se trouve à la fin, avec les notes pour les orateurs). Bonne lecture.&lt;/p&gt;
&lt;p&gt;Merci à Christine, et aux organisateurs de la conférence.&lt;/p&gt;
&lt;img alt=&quot;http://blog.xebia.fr/wp-content/uploads/2010/05/speaker-2010.png&quot; class=&quot;align-center&quot; src=&quot;http://blog.xebia.fr/wp-content/uploads/2010/05/speaker-2010.png&quot; /&gt;
</description>
  <dc:date>2010-10-07T10:40-01:00</dc:date>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/38529</guid>
  <title>MiniDebConf Paris 2010</title>
  <link>http://www.logilab.org/blogentry/38529</link>
  <description>&lt;img alt=&quot;http://france.debian.net/debian-france.png&quot; class=&quot;align-left&quot; src=&quot;http://france.debian.net/debian-france.png&quot; /&gt;
&lt;p&gt;&lt;a class=&quot;reference&quot; href=&quot;http://france.debian.net/&quot;&gt;Debian France&lt;/a&gt; organise le 30 et 31 octobre prochain une &lt;a class=&quot;reference&quot; href=&quot;http://fr2010.mini.debconf.org/&quot;&gt;minidebconf&lt;/a&gt; à Paris. Le &lt;a class=&quot;reference&quot; href=&quot;http://wiki.debconf.org/wiki/Miniconf-Paris/2010&quot;&gt;wiki de la conférence&lt;/a&gt; est en train de s&#39;étoffer, et pour le moment c&#39;est là qu&#39;il faut s&#39;inscrire. À Logilab nous sommes utilisateurs et contributeurs de Debian, c&#39;est donc naturellement que nous allons essayer d&#39;aller participer à cette conférence. &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/blogentry/afayolle&quot;&gt;Alexandre Fayolle&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://qa.debian.org/developer.php?login=afayolle&amp;#64;debian.org&quot;&gt;développeur Debian&lt;/a&gt; ira assister (entre autres) à la présentation de &lt;a class=&quot;reference&quot; href=&quot;http://carlchenet.wordpress.com/&quot;&gt;Carl Chenet&lt;/a&gt; sur l&#39;état de Python dans Debian.&lt;/p&gt;
</description>
  <dc:date>2010-09-09T11:48-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/32522</guid>
  <title>Une mise en place de l’eXtreme Programming - ce que j&#39;en retiens</title>
  <link>http://www.logilab.org/blogentry/32522</link>
  <description>&lt;img alt=&quot;http://rubyonrails.org/images/rails.png&quot; class=&quot;align-right&quot; src=&quot;http://rubyonrails.org/images/rails.png&quot; /&gt;
&lt;p&gt;Je suis allé à la présentation de &amp;quot;Une mise en place de l’eXtreme Programming&amp;quot; présenté par &lt;a class=&quot;reference&quot; href=&quot;http://www.karinesabatier.net/&quot;&gt;Karine Sabatier&lt;/a&gt; dans le cadre d&#39;&lt;a class=&quot;reference&quot; href=&quot;http://www.agilenantes.org/&quot;&gt;Agile Nantes&lt;/a&gt;. On y a parlé plutôt &lt;a class=&quot;reference&quot; href=&quot;http://rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt; que python, mais surtout de méthodes agiles et XP.&lt;/p&gt;
&lt;p&gt;Voici quelques points que j&#39;ai retenu de cette présentation tout à fait pragmatique d&#39;une mise en pratique des principes XP :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Le principe de &amp;quot;Convention over configuration&amp;quot; : préférer la convention (notamment pour la programmation) plutôt que la contrainte par la configuration. Dans Ruby On Rails, les conventions sont très fortes, pour faire une application on ne peut pas s&#39;éloigner du modèle MVC : les modèles sont dans &amp;quot;model&amp;quot;, les views sont dans &amp;quot;views&amp;quot; etc... À ce sujet, la conférencière a fait référence à deux types de designs que je ne connaissait pas : le DDD &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Domain-driven_design&quot;&gt;Domain-driven Design&lt;/a&gt; et &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Behavior_Driven_Development&quot;&gt;Behavior Driven Development&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Utilisation de métaphores : trouver un langage commun avec le client mais aussi avec les utilisateurs&lt;/li&gt;
&lt;li&gt;Application de déploiement ruby on rails : &lt;a class=&quot;reference&quot; href=&quot;http://www.capify.org/index.php/Capistrano&quot;&gt;Capistrano&lt;/a&gt;, bien qu&#39;à Logilab nous privilégions le déploiement par paquets et dépôts debian, en python on pourra jeter un coup d&#39;œil à &lt;a class=&quot;reference&quot; href=&quot;http://docs.fabfile.org/0.9.0/&quot;&gt;Fabric&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;img alt=&quot;http://retrospectiva.org/extensions/overview/images/product_backlog.png?1265550417&quot; class=&quot;align-right&quot; src=&quot;http://retrospectiva.org/extensions/overview/images/product_backlog.png?1265550417&quot; /&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Leur projet XP utilisait le logiciel de gestion de projet &lt;a class=&quot;reference&quot; href=&quot;http://retrospectiva.org/overview&quot;&gt;Retrospectiva&lt;/a&gt;. Celui-ci ressemble sur bien des points à &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org/project/jpl&quot;&gt;JPL&lt;/a&gt; (Jeux de Planification Logiciel) disponible sur le framework CubicWeb (&lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org&quot;&gt;http://www.cubicweb.org&lt;/a&gt;). Coté intégration continue : &lt;a class=&quot;reference&quot; href=&quot;http://cruisecontrol.sourceforge.net/&quot;&gt;CruiseControl&lt;/a&gt; , en python nous privilégions &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/project/apycot&quot;&gt;apycot&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Ce projet a essayé l&#39;utilisation de &lt;a class=&quot;reference&quot; href=&quot;http://seleniumhq.org/&quot;&gt;Selenium&lt;/a&gt; pour ces tests web. Le constat est le même que chez Logilab : la première fois que ca marche c&#39;est utile et apporte une grande satisfaction, dans un deuxième temps ca reste très difficile à maintenir. Nous regardons à présent plutôt du coté de &lt;a class=&quot;reference&quot; href=&quot;http://www.getwindmill.com/&quot;&gt;Windmill&lt;/a&gt; qui a été intégré à la version &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org/project/cubicweb/3.9.0&quot;&gt;3.9 de cubicweb&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Une mention a été fait d&#39;une société fonctionnement uniquement en mode agile &lt;a class=&quot;reference&quot; href=&quot;http://pyxis-tech.com/&quot;&gt;Pyxis&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
</description>
  <dc:date>2010-05-20T14:42-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/24354</guid>
  <title>Sprint CubicWeb chez Logilab - annonce de dernière minute</title>
  <link>http://www.logilab.org/blogentry/24354</link>
  <description>&lt;p&gt;Logilab est en ce moment en train d&#39;acceuillir un &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Sprint_%28software_development%29&quot;&gt;sprint&lt;/a&gt; autour de la plateforme &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org&quot;&gt;CubicWeb&lt;/a&gt;. L&#39;objectif principal de ce sprint de 5 jours est d&#39;améliorer l&#39;usage de javascript et des css dans CubicWeb :&lt;/p&gt;
&lt;img alt=&quot;http://www.logilab.org/image/28586?vid=download&quot; class=&quot;align-right&quot; src=&quot;http://www.logilab.org/image/28586?vid=download&quot; /&gt;
&lt;img alt=&quot;http://codesnip.net/wp-content/uploads/javascript.png&quot; class=&quot;align-right&quot; src=&quot;http://codesnip.net/wp-content/uploads/javascript.png&quot; /&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;avoir une API javascript propre, testée et documentée&lt;/li&gt;
&lt;li&gt;pouvoir facilement changer le style d&#39;une application cubicweb&lt;/li&gt;
&lt;li&gt;gestion de bundle pour javascript et CSS&lt;/li&gt;
&lt;li&gt;une documentation sur les standards d&#39;écriture des fichiers JS et CSS pour cubicweb&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ce sprint aura lieu du jeudi 29 avril 2010 au 5 mai 2010 (weekend exlus - les bureaux seront fermés). Vous êtes les bienvenus pour contribuer, filer un coup de main, faire du pair programming... ou simplement rencontrer des développeurs cubicweb. Vous pouvez même venir une après-midi ou une seule journée. Pour ceux avec des portables, il y aura du réseau disponible pour être connecté.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adresse&lt;/strong&gt; : 104 Boulevard Auguste-Blanqui, Paris. Sonnez à &amp;quot;Logilab&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Métro&lt;/strong&gt; : St Jacques or Corvisart (Glacière est la station la plus proche mais sera fermée à partir de lundi)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Contact&lt;/strong&gt; : &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.fr/contact&quot;&gt;http://www.logilab.fr/contact&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dates&lt;/strong&gt; : du 29/04/2010 au 30/04/2010 et du 03/05/2010 au 05/05/2010&lt;/p&gt;
</description>
  <dc:date>2010-04-29T18:54-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/22007</guid>
  <title>L&#39;intégration continue présenté par Agiles Nantes</title>
  <link>http://www.logilab.org/blogentry/22007</link>
  <description>&lt;p&gt;Hier, Logilab était à nouveau présent aux rencontres organisées par
&lt;a class=&quot;reference&quot; href=&quot;http://www.agilenantes.org/&quot;&gt;Agiles Nantes&lt;/a&gt;, il s&#39;agissait d&#39;une présentation très fournie sur
l&#39;&lt;a class=&quot;reference&quot; href=&quot;http://www.agilenantes.org/2010/02/22/lintegration-continue-mercredi-17-mars-2010/&quot;&gt;intégration continue&lt;/a&gt; (présenté par la société
&lt;a class=&quot;reference&quot; href=&quot;http://www.netapsys.fr/&quot;&gt;Netapsys&lt;/a&gt;). Malheureusement, la principale technologie utilisée
était Java dont nous ne sommes pas des grands fans, préférant
python. Néanmoins cela donne une bonne idée des possibilités
qu&#39;offrent les outils autour du développement java, notamment en terme
d&#39;intégration continue (voir &lt;a class=&quot;reference&quot; href=&quot;http://maven.apache.org/&quot;&gt;Maven&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://hudson-ci.org/&quot;&gt;Hudson&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://sonar.codehaus.org/&quot;&gt;Sonar&lt;/a&gt;, etc.).&lt;/p&gt;
&lt;img alt=&quot;http://hudson-ci.org/images/butler.png&quot; class=&quot;align-right&quot; src=&quot;http://hudson-ci.org/images/butler.png&quot; /&gt;
&lt;p&gt;On retrouve donc un certain nombre de similarités avec le monde
python, notamment avec &lt;a class=&quot;reference&quot; href=&quot;http://www.jfrog.org/products.php&quot;&gt;Artifactory&lt;/a&gt; qui reproduit en partie les
fonctionnalités de &lt;a class=&quot;reference&quot; href=&quot;http://pypi.python.org/pypi&quot;&gt;pypi&lt;/a&gt; avec &lt;a class=&quot;reference&quot; href=&quot;http://pypi.python.org/pypi/setuptools&quot;&gt;easy_install&lt;/a&gt; ou &lt;a class=&quot;reference&quot; href=&quot;http://www.buildout.org/&quot;&gt;buildout&lt;/a&gt; ou
apt-cacher-ng dans son coté proxy. A Logilab, nous privilégions
l&#39;utilisation de paquets &lt;a class=&quot;reference&quot; href=&quot;http://www.debian.org/&quot;&gt;debian&lt;/a&gt; pour distribuer nos logiciels, ce
qui permet, notamment, de ne pas réinventer la roue pour chaque
langage de programmation.&lt;/p&gt;
&lt;p&gt;Voici quelques une des notions avancées lors de la présentation qui
nous semblent intéressantes sur l&#39;intégration continue :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;celle-ci permet de mettre en place des environnements de test mis à
disposition du client tout le long du projet.&lt;/li&gt;
&lt;li&gt;cette notion de prototype utilisable en continu doit être présente
le plus tôt possible dans un projet.&lt;/li&gt;
&lt;li&gt;idéalement, un serveur de déploiement/intégration doit être
quasiment à l&#39;identique de l&#39;environnement client (utilisation de
machines virtuelles)&lt;/li&gt;
&lt;li&gt;l&#39;intégration continue est souvent plus utilisées par les
développeurs et les chefs de projets que par les clients. Mettre en
place des rapports utiles au client requiert un soin particulier&lt;/li&gt;
&lt;li&gt;pour une émulation collective, certaines notations des développeurs
sont possible. Par exemple un &lt;a class=&quot;reference&quot; href=&quot;http://wiki.hudson-ci.org/display/HUDSON/The+Continuous+Integration+Game+plugin&quot;&gt;plugin&lt;/a&gt; &lt;a class=&quot;reference&quot; href=&quot;http://hudson-ci.org/&quot;&gt;Hudson&lt;/a&gt; donne un point par
build réussi, un point par test ajouté, moins dix points pour un build
cassé.&lt;/li&gt;
&lt;li&gt;la visualisation des données peut motiver les développeurs, l&#39;outil
Sonar semble être très complet et propose des visualisation assez
léchées. A noter, des graphes sur la complexité du code, par classe,
par méthode etc. Voir aussi la visualisation de l&#39;arbre des
dépendances des librairies avec &lt;a class=&quot;reference&quot; href=&quot;http://docs.codehaus.org/display/SONAR/Radiator+Plugin&quot;&gt;Radiator&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;img alt=&quot;http://sonar.codehaus.org/wp-content/themes/sonar/images/dashboard.png&quot; class=&quot;align-center&quot; src=&quot;http://sonar.codehaus.org/wp-content/themes/sonar/images/dashboard.png&quot; /&gt;
&lt;p&gt;J&#39;y ai mentionné &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/project/apycot&quot;&gt;apycot&lt;/a&gt; et &lt;a class=&quot;reference&quot; href=&quot;http://buildbot.net/trac&quot;&gt;buildbot&lt;/a&gt; qui sont tous les deux des outils plutôt orientés python (mais pas seulement).&lt;/p&gt;
&lt;p&gt;Pour conclure, tout ça m&#39;a fait penser au concept plus poussé de
&lt;a class=&quot;reference&quot; href=&quot;http://www.martinfowler.com/bliki/BlueGreenDeployment.html&quot;&gt;&amp;quot;Continuous Delivery - BlueGreenDelivery&amp;quot;&lt;/a&gt; développé par Martin Fowler,
une lecture recommandée pour ceux qui ont déjà pris le pas de
l&#39;intégration continue.&lt;/p&gt;
&lt;img alt=&quot;http://www.martinfowler.com/bliki/images/blueGreenDeployment/blue_green_deployments.png&quot; class=&quot;align-center&quot; src=&quot;http://www.martinfowler.com/bliki/images/blueGreenDeployment/blue_green_deployments.png&quot; /&gt;
</description>
  <dc:date>2010-03-22T14:29-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/20770</guid>
  <title>On a fait un tour au Coding Dojo à Nantes</title>
  <link>http://www.logilab.org/blogentry/20770</link>
  <description>&lt;p&gt;L&#39;association de promotion des méthodes Agiles sur Nantes et sa région [&lt;a class=&quot;reference&quot; href=&quot;http://www.agilenantes.org/&quot;&gt;1&lt;/a&gt;] organisait hier soir un &amp;quot;Coding Dojo&amp;quot;. C&#39;est une session de codage en public avec des créneaux de 15 minutes par codeur (&lt;a class=&quot;reference&quot; href=&quot;http://codingdojo.org/cgi-bin/wiki.pl?back=WhatIsCodingDojo&quot;&gt;explication sur codingdojo.org&lt;/a&gt;). Le focus de la session était le &lt;a class=&quot;reference&quot; href=&quot;http://fr.wikipedia.org/wiki/Test_Driven_Development&quot;&gt;TDD&lt;/a&gt; (Test Driven Developpement).&lt;/p&gt;
&lt;img alt=&quot;http://farm3.static.flickr.com/2509/3947717979_34e5a68d3d_m.jpg&quot; class=&quot;align-center&quot; src=&quot;http://farm3.static.flickr.com/2509/3947717979_34e5a68d3d_m.jpg&quot; /&gt;
&lt;p&gt;Annonce de l&#39;événement sur leur site : &lt;a class=&quot;reference&quot; href=&quot;http://www.agilenantes.org/2010/01/25/coding-dojo-mercredi-17-fevrier-2010/&quot;&gt;http://www.agilenantes.org/2010/01/25/coding-dojo-mercredi-17-fevrier-2010/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;reference&quot; href=&quot;http://www.flickr.com/photos/rstiller/3947717979/&quot;&gt;Photo&lt;/a&gt; par &lt;a class=&quot;reference&quot; href=&quot;http://www.flickr.com/people/rstiller/&quot;&gt;yepyep&lt;/a&gt; sous licence &lt;a class=&quot;reference&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/&quot;&gt;creative commons&lt;/a&gt;&lt;/p&gt;
</description>
  <dc:date>2010-02-18T12:34-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/18020</guid>
  <title>Pylint a besoin de vous</title>
  <link>http://www.logilab.org/blogentry/18020</link>
  <description>&lt;p&gt;Après plusieurs mois au point mort ou presque, Sylvain a pu hier soir
publier des versions corrigeant un certain nombre de bogues dans
pylint et astng ([&lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/project/pylint/0.18.1&quot;&gt;1&lt;/a&gt;] et [&lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/project/logilab-astng/0.19.1&quot;&gt;2&lt;/a&gt;]).&lt;/p&gt;
&lt;p&gt;Il n&#39;en demeure pas moins qu&#39;à Logilab, nous manquons de temps pour
faire baisser la pile de tickets ouverts dans le &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/project/pylint/&quot;&gt;tracker&lt;/a&gt; de
pylint. Si vous jetez un œuil dans l&#39;onglet Tickets, vous y trouverez
un grand nombre de bogues en souffrance et de fonctionalités
indispensables (certaines peut-être un peu moins que d&#39;autres...) Il
est déjà possible de contribuer en utilisant &lt;a class=&quot;reference&quot; href=&quot;http://www.selenic.com/mercurial/&quot;&gt;mercurial&lt;/a&gt; pour fournir
des patches, ou en signalant des bogues (aaaaaaaaaarg ! encore des
tickets !) et certains s&#39;y sont mis, qu&#39;ils en soient remerciés.&lt;/p&gt;
&lt;p&gt;Maintenant, nous nous demandions ce que nous pourrions faire pour
faire avance Pylint, et nos premières idées sont :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;organiser un petit sprint de 3 jours environ&lt;/li&gt;
&lt;li&gt;organiser des jours de &amp;quot;tuage de ticket&amp;quot;, comme ça se pratique sur
différents projets OSS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mais pour que ça soit utile, nous avons besoin de votre aide. Voici donc
quelques questions :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;est-ce que vous participeriez à un sprint à Logilab (à Paris,
France), ce qui nous permettrait de nous rencontrer, de vous
apprendre plein de choses sur le fonctionnement de Pylint et de
travailler ensemble sur des tickets qui vous aideraient dans votre
travail ?&lt;/li&gt;
&lt;li&gt;si la France c&#39;est trop loin, où est-ce que ça vous arrangerait ?&lt;/li&gt;
&lt;li&gt;seriez-vous prêt à vous joindre à nous sur le serveur jabber de
Logilab ou sur IRC, pour participer à une chasse au ticket (à une
date à déterminer). Si oui, quel est votre degré de connaissance du
fonctionnement interne de Pylint et astng ?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Vous pouvez répondre en commentant sur ce blog (pensez à vous
enregistrer en utilisant le lien en haut à droite sur cette page) ou
en écrivant à &lt;a class=&quot;reference&quot; href=&quot;mailto:sylvain.thenault&amp;#64;logilab.fr&quot;&gt;sylvain.thenault&amp;#64;logilab.fr&lt;/a&gt;. Si nous avons suffisamment
de réponses positives nous organiserons quelque chose.&lt;/p&gt;
</description>
  <dc:date>2009-09-17T09:20-01:00</dc:date>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/9209</guid>
  <title>Nous allons à PyConFr 2009</title>
  <link>http://www.logilab.org/blogentry/9209</link>
  <description>&lt;p&gt;Le 30 et 31 mai prochain (samedi et dimanche prochain) nous allons être présents à &lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/&quot;&gt;PyConFr&lt;/a&gt; édition 2009, nous sommes &lt;a class=&quot;reference&quot; href=&quot;http://www.pycon.fr/partenaires.html&quot;&gt;partenaire&lt;/a&gt; de l&#39;évènement et allons y parler de &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org&quot;&gt;CubicWeb&lt;/a&gt;. Pour être plus précis, Nicolas Chauvat y présentera &lt;a class=&quot;reference&quot; href=&quot;http://pycon.fr/sessions/seances/cubicweb_pour_publier_dbpedia_et_openlibrary&quot;&gt;&amp;quot;CubicWeb pour publier DBpedia et OpenLibrary&amp;quot;&lt;/a&gt;. Il avait déjà évoqué ces sujets sur ce site : &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/blogentry/9138&quot;&gt;Fetching book descriptions and covers&lt;/a&gt; et  &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/blogentry/6679&quot;&gt;DBpedia 3.2 released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si vous comptez y aller, n&#39;hésitez pas à venir nous dire bonjour.&lt;/p&gt;
&lt;img alt=&quot;http://pycon.fr/images/logo_pyconfr_small.png&quot; class=&quot;align-center&quot; src=&quot;http://pycon.fr/images/logo_pyconfr_small.png&quot; /&gt;
</description>
  <dc:date>2009-05-25T15:05-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/8862</guid>
  <title>12 ans de l&#39;April: bilan et objectifs</title>
  <link>http://www.logilab.org/blogentry/8862</link>
  <description>&lt;img alt=&quot;http://www.april.org/themes/zen/zen_april/images/logo.png&quot; class=&quot;align-right&quot; src=&quot;http://www.april.org/themes/zen/zen_april/images/logo.png&quot; /&gt;
&lt;p&gt;L&#39;April fête cette année ses douze ans. L&#39;association de promotion et de défense du logiciel libre approche maintenant les 5000 membres, toutes catégories confondues: personnes physiques, entreprises commerciales, collectivités, associations. Elle vient de publier son &lt;a class=&quot;reference&quot; href=&quot;http://www.april.org/fr/lapril-publie-son-rapport-moral-2008&quot;&gt;rapport moral 2008&lt;/a&gt;  et sa &lt;a class=&quot;reference&quot; href=&quot;http://www.april.org/fr/feuille-de-route-2009-2014&quot;&gt;feuille de route 2014&lt;/a&gt; qui fixe des objectis pour les cinq années à venir. On notera en particulier la lutte contre les quatre dangers que sont les brevets sur les algorithmes, les dispositifs de contrôle d&#39;usage, la vente liée et l&#39;informatique déloyale. Consultez le site de l&#39;&lt;a class=&quot;reference&quot; href=&quot;http://www.april.org/&quot;&gt;April&lt;/a&gt; pour en savoir plus sur ses actions et n&#39;hésitez pas à &lt;a class=&quot;reference&quot; href=&quot;http://www.april.org/adherer&quot;&gt;adhérer&lt;/a&gt; ou à &lt;a class=&quot;reference&quot; href=&quot;http://www.april.org/fr/benevolat-valorise&quot;&gt;donner quelques heures&lt;/a&gt; de votre temps.&lt;/p&gt;
</description>
  <dc:date>2009-04-05T18:45-01:00</dc:date>
  <dc:creator>Nicolas Chauvat</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/8815</guid>
  <title>Venez nous rendre visite à Solution Linux 2009</title>
  <link>http://www.logilab.org/blogentry/8815</link>
  <description>&lt;img alt=&quot;http://www.solutionslinux.fr/images/index_07.jpg&quot; class=&quot;align-left&quot; src=&quot;http://www.solutionslinux.fr/images/index_07.jpg&quot; /&gt;
&lt;p&gt;Nous sommes dès ce matin, pendant 3 jours, présents au salon &lt;a class=&quot;reference&quot; href=&quot;http://www.solutionslinux.fr/&quot;&gt;Solutions Linux 2009&lt;/a&gt; au stand du pôle de compétition &lt;a class=&quot;reference&quot; href=&quot;http://www.systematic-paris-region.org/&quot;&gt;System&amp;#64;tic&lt;/a&gt; dont nous faisons parti. C&#39;est le stand B4/B8, assez prêt de l&#39;entrée sur la gauche (&lt;a class=&quot;reference&quot; href=&quot;http://www.solutionslinux.fr/exposant_fiche.php?id=804&amp;amp;pg=2_4&quot;&gt;détails&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Nous allons présenter &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org&quot;&gt;CubicWeb&lt;/a&gt; à plusieurs reprises sur le stand, ainsi que lors des conférences sur le Web2 ce mardi 31 mars de 14h à 17h30 :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Adrien présentera &amp;quot;Simile Widgets, des composants de haut niveau pour IHM web&amp;quot;&lt;/li&gt;
&lt;li&gt;Sylvain présentera &amp;quot;Cubic 3.0 - une plateforme pour les applications web sémantique&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;pour plus de détails consultez le &lt;a class=&quot;reference&quot; href=&quot;http://www.confsolutionslinuxparis.com/programme/&quot;&gt;programme&lt;/a&gt;.&lt;/p&gt;
</description>
  <dc:date>2009-03-31T10:00-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/8048</guid>
  <title>Belier - le ssh par hops</title>
  <link>http://www.logilab.org/blogentry/8048</link>
  <description>&lt;p&gt;On vient de découvrir &lt;a class=&quot;reference&quot; href=&quot;http://www.ohmytux.com/belier/&quot;&gt;belier&lt;/a&gt; qui permet de se connecter facilement à des machines auquelles on doit accéder par des machines ssh intermédiaires. Ca peut s&#39;avérer utile. En plus, c&#39;est en &lt;a class=&quot;reference&quot; href=&quot;http://www.python.org&quot;&gt;python&lt;/a&gt;. En plus, il a fait des paquets &lt;a class=&quot;reference&quot; href=&quot;http://www.debian.org&quot;&gt;debian&lt;/a&gt;... et en plus il mentionne &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/project/pylint&quot;&gt;pylint&lt;/a&gt;. Du coup il mérite mention ici.&lt;/p&gt;
&lt;img alt=&quot;http://www.ohmytux.com/belier/images/schema_belier.png&quot; class=&quot;align-center&quot; src=&quot;http://www.ohmytux.com/belier/images/schema_belier.png&quot; /&gt;
</description>
  <dc:date>2009-02-17T16:54-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/7831</guid>
  <title>Résumé de la rencontre francophone autour des forges du 21 janvier 2009</title>
  <link>http://www.logilab.org/blogentry/7831</link>
  <description>&lt;div class=&quot;section&quot; id=&quot;definition-d-une-forge&quot;&gt;
&lt;h3&gt;&lt;a&gt;Définition d&#39;une forge&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Je vous propose tout d&#39;abord une définition assez complète d&#39;une forge logicielle.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;« Une forge ou plate-forme d&#39;hébergement de projets logiciels est un ensemble réunissant les technologies du travail coopératif et du génie logiciel pour permettre le développement coordonné de logiciels en équipe. Les services de base d&#39;une telle plate-forme sont axés sur le partage de fichiers (code source, données et exécutables) et l&#39;animation du groupe. Ils permettent la rédaction et la programmation collaborative, et facilitent la communication dans le groupe grâce à des outils associés aux projets tels que des gestionnaires de listes de messagerie, des logiciels de suivi des tâches et de gestion des rapports d&#39;anomalies. L&#39;utilisation d&#39;une plate-forme de ce type améliore la qualité des réalisations en accélérant les processus d&#39;échange entre développeurs et les cycles de version des logiciels, tout en facilitant l&#39;implication des utilisateurs dans la détection des erreurs ou la mise en lumière des fonctionnalités pertinentes des logiciels.»&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tirée de http://overcrowded.anoptique.org/ForgesEtatArt (licence Art Libre, créateur initial Benoît Sibaud, diffusable sous LAL, CC By, CC By-SA et GFDL).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Voir:&lt;/em&gt;&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://wiki.planetforge.org&quot;&gt;http://wiki.planetforge.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://fr.wikipedia.org/wiki/Forge_(informatique&quot;&gt;http://fr.wikipedia.org/wiki/Forge_(informatique&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://qsos.org/o3s/set_weighting.php?family=forge&quot;&gt;http://qsos.org/o3s/set_weighting.php?family=forge&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;problemes-recenses&quot;&gt;
&lt;h3&gt;&lt;a&gt;Problèmes recensés&lt;/a&gt;&lt;/h3&gt;
&lt;img alt=&quot;image by http://flickr.com/photos/fastjack/ under creative commons&quot; class=&quot;align-right&quot; src=&quot;http://farm1.static.flickr.com/113/282707058_02305d3cce_t.jpg&quot; /&gt;
&lt;p&gt;Je liste ici quelques problèmes qui m&#39;ont semblé émerger pendant les discussions de la journée.&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;forks nombreux du projet GForge avec peu de collaboration entre les projets&lt;/li&gt;
&lt;li&gt;périmètre technique souvent imposé dans le débat; ce qui gêne la définition fonctionnelle d&#39;une forge&lt;/li&gt;
&lt;li&gt;forte hiérarchie des responsabilités avec un rôle &#39;développeur&#39; limité au profit de celui du &#39;chef de projet&#39;&lt;/li&gt;
&lt;li&gt;très orienté web avec une stratégie d&#39;intégration de produits tiers; d&#39;où une situation délicate pour l&#39;homogénéité des solutions à cause des limitations du protocole HTTP&lt;/li&gt;
&lt;li&gt;la méthodologie de conception des logiciels n&#39;est pas évoquée dans le choix d&#39;une solution (et pas d&#39;approche Agile en général).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;presentations&quot;&gt;
&lt;h3&gt;&lt;a&gt;Présentations&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;section&quot; id=&quot;alm-cycle-de-vie-des-logiciels-et-poste-client&quot;&gt;
&lt;h4&gt;&lt;a&gt;ALM, cycle de vie des logiciels et poste client&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Voir:&lt;/em&gt;&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Application_Lifecycle_Management&quot;&gt;http://en.wikipedia.org/wiki/Application_Lifecycle_Management&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img alt=&quot;http://gforge.org/themes/gforgegroup/images/logo.jpg&quot; class=&quot;align-right&quot; src=&quot;http://gforge.org/themes/gforgegroup/images/logo.jpg&quot; /&gt;
&lt;div class=&quot;section&quot; id=&quot;projet-novaforge&quot;&gt;
&lt;h5&gt;&lt;a&gt;Projet NovaForge&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Forge très aboutie où une approche MDA a été mise en oeuvre pour la génération de cas de tests à partir des cas d&#39;utilisation décrits en UML.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;integration-continue&quot;&gt;
&lt;h5&gt;&lt;a&gt;Intégration continue&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Plusieurs outils ont été nommés. J&#39;ai placé la liste sur la page du &lt;a class=&quot;reference&quot; href=&quot;http://wiki.planetforge.org/index.php/Intégration_continue&quot;&gt;wiki&lt;/a&gt; dédiée.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;interoperabilite-semantique&quot;&gt;
&lt;h4&gt;&lt;a&gt;Interopérabilité sémantique&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;section&quot; id=&quot;projet-xfmigration&quot;&gt;
&lt;h5&gt;&lt;a&gt;Projet xfmigration&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Ce projet vise à migrer le contenu d&#39;une forge (BerliOS) vers GForge sans passer par le backend SGBD.
L&#39;idée est alors d&#39;utiliser différentes ontologies pour &#39;mapper&#39; les concepts des 2 forges.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Cross-Forge Migration Tool is a concept for facilitating the migration process of project metadata between forge platforms. It uses SWRL rules for mapping and OWL-S standard for exporting mapping results.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Voir:&lt;/em&gt;&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;https://developer.berlios.de/projects/xfmigration/&quot;&gt;https://developer.berlios.de/projects/xfmigration/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://www.qualipso.org/sites/default/files/QUALIPSO_A3_WP32_XFMigration_Paris2009.pdf&quot;&gt;http://www.qualipso.org/sites/default/files/QUALIPSO_A3_WP32_XFMigration_Paris2009.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;https://developer.berlios.de/projects/a3-a4-xfsearch/&quot;&gt;https://developer.berlios.de/projects/a3-a4-xfsearch/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://www-public.it-sudparis.eu/~berger_o/A3_WP32_XFSearch.odp&quot;&gt;http://www-public.it-sudparis.eu/~berger_o/A3_WP32_XFSearch.odp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://qualipso.org/next_generation_forge&quot;&gt;http://qualipso.org/next_generation_forge&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;projet-helios&quot;&gt;
&lt;h5&gt;&lt;a&gt;Projet HELIOS&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;L&#39;exposé présentait un cas d&#39;utilisation du web sémantique pour la recherche et le tri de rapport d&#39;anomalies sur des forges séparées. L&#39;exemple utilisé a été de pouvoir rapatrier; puis sélectionner des tickets relatifs au projet Konqueror à travers le bugzilla de Debian et celui du projet lui-même. Il est ainsi possible de détecter certains doublons ou incohérences de versions.&lt;/p&gt;
&lt;img alt=&quot;http://www.cubicweb.org/index-cubicweb.png&quot; class=&quot;align-right&quot; src=&quot;http://www.cubicweb.org/index-cubicweb.png&quot; /&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;projet-cubicweb-forge&quot;&gt;
&lt;h5&gt;&lt;a&gt;Projet CubicWeb forge&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;J&#39;ai pu présenter le framework &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org/&quot;&gt;CubicWeb&lt;/a&gt; et son architecture de &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org/project/&quot;&gt;composants&lt;/a&gt;. La présentation n&#39;étant pas prévue initialement mais j&#39;ai pû faire une démonstration à partir de la &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/&quot;&gt;forge publique de Logilab&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;À partir d&#39;un &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/schema&quot;&gt;schéma&lt;/a&gt; enrichi des &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org/project/&quot;&gt;composants&lt;/a&gt; installés, il est possible de faire des requêtes RQL (similaire à SPARQL) sur des entités et des sources distantes (Base de données, LDAP, subversion, ...). Logilab travaille aujourd&#39;hui à l&#39;ajout d&#39;&lt;a class=&quot;reference&quot; href=&quot;http://wiki.planetforge.org/index.php/Ontologies&quot;&gt;ontologies&lt;/a&gt; dans la manipulation de ce &lt;a class=&quot;reference&quot; href=&quot;http://www.logilab.org/schema&quot;&gt;schéma&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;remerciements&quot;&gt;
&lt;h3&gt;&lt;a&gt;Remerciements&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Je remercie les organisateurs de cette rencontre édition 2009 ainsi que l&#39;ensemble des intervenants propices à l&#39;échange de points de vue.&lt;/p&gt;
&lt;/div&gt;
</description>
  <dc:date>2009-01-27T20:02-01:00</dc:date>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/7189</guid>
  <title>Rencontre francophone autour des forges</title>
  <link>http://www.logilab.org/blogentry/7189</link>
  <description>&lt;img alt=&quot;http://farm1.static.flickr.com/25/61448490_5f9a023307_m.jpg&quot; class=&quot;align-right&quot; src=&quot;http://farm1.static.flickr.com/25/61448490_5f9a023307_m.jpg&quot; /&gt;
&lt;p&gt;Logilab sera présent le Mercredi 21 janvier à la rencontre francophone autour des forges.
Les présentations et les discussions porteront sur :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;échange de données entre forges, interopérabilité&lt;/li&gt;
&lt;li&gt;définition d’un modèle d’intégration ouvert&lt;/li&gt;
&lt;li&gt;recherche multi-forges&lt;/li&gt;
&lt;li&gt;gestion des permissions et partage d’identités&lt;/li&gt;
&lt;li&gt;interaction entre la forge et le poste client&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Logilab espère ainsi bénéficier de l&#39;expérience de chacun et des pistes d&#39;évolutions pour, à terme, les intégrer dans son projet de forge basé sur &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org&quot;&gt;CubicWeb&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Toutes les informations de l&#39;événement sont disponibles &lt;a class=&quot;reference&quot; href=&quot;http://wiki.planetforge.org/index.php/Rencontre_forges_2009_01&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;photo par&lt;/em&gt; &lt;a class=&quot;reference&quot; href=&quot;http://flickr.com/photos/the-lees/&quot;&gt;StormyDog&lt;/a&gt; &lt;em&gt;sous licence&lt;/em&gt; &lt;a class=&quot;reference&quot; href=&quot;http://creativecommons.org/licenses/by/2.0/&quot;&gt;Creative Commons&lt;/a&gt;.&lt;/p&gt;
</description>
  <dc:date>2009-01-19T12:12-01:00</dc:date>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/6732</guid>
  <title>Fusionner dans le bon sens avec mercurial</title>
  <link>http://www.logilab.org/blogentry/6732</link>
  <description>&lt;img alt=&quot;http://www.selenic.com/hg-logo/logo-droplets-50.png&quot; class=&quot;align-right&quot; src=&quot;http://www.selenic.com/hg-logo/logo-droplets-50.png&quot; /&gt;
&lt;p&gt;Contrairement à ce que l&#39;on pourrait penser a priori, il y a un bon et un mauvais sens pour fusionner deux têtes dans en entrepôt mercurial.&lt;/p&gt;
&lt;p&gt;Prenons un exemple et admettons que l&#39;on parte d&#39;une révision 123. Alfred, Barnabé et Coruscant
font des changements qui produisent l&#39;arbre suivant:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
123 -&amp;gt; 124 -&amp;gt; 125 ---&amp;gt; 126 -&amp;gt; 129 --&amp;gt; 130
                   \-&amp;gt; 127 -&amp;gt; 128 /
&lt;/pre&gt;
&lt;p&gt;Si dans le même temps, Zoé part de la révision 123 et produit l&#39;arbre:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
123 -&amp;gt; 131
&lt;/pre&gt;
&lt;p&gt;quand Zoé va vouloir faire son &lt;cite&gt;hg push&lt;/cite&gt; sur l&#39;entrepôt partagé, elle va avoir le message &amp;quot;ça crée des têtes, est-ce que vous
êtes sûr de vouloir faire ce push&amp;quot;. Zoé va se dire qu&#39;il vaut mieux
commencer par un &#39;pull&#39; et un &#39;merge&#39;, mais c&#39;est là qu&#39;il faut se
méfier.&lt;/p&gt;
&lt;p&gt;En effet, si Zoé est sur la révision 131 et qu&#39;elle fusionne avec 130, le
changeset sera énorme car il contiendra tous les changements qui
permettent de passer de 123 à 130. En revanche, si Zoé passe sur la 130
et fusionne avec la 131, elle n&#39;aura que les changements qu&#39;elle vient
d&#39;apporter. Dans le premier cas, le &#39;merge&#39; sera difficile à comprendre, alors qu&#39;il sera bien plus simple dans le second.&lt;/p&gt;
&lt;p&gt;Au final, comment faire la fusion dans le &amp;quot;bon&amp;quot; sens ?&lt;/p&gt;
&lt;p&gt;1/ &lt;cite&gt;hg push&lt;/cite&gt; -&amp;gt; ah tient, ça crée des têtes, donc je ne le fais pas&lt;/p&gt;
&lt;p&gt;2/ &lt;cite&gt;hg pull -u&lt;/cite&gt; ou &lt;cite&gt;hg pull&lt;/cite&gt; suivi de &lt;cite&gt;hg merge&lt;/cite&gt; -&amp;gt; y&#39;a eu un merge&lt;/p&gt;
&lt;p&gt;3/ &lt;cite&gt;hg status&lt;/cite&gt; -&amp;gt; beaucoup de fichiers modifiés... oulàlà, c&#39;est bizarre je vais regarder&lt;/p&gt;
&lt;p&gt;4/ &lt;cite&gt;hgview&lt;/cite&gt; -&amp;gt; ah oui, sur l&#39;autre tête y&#39;a beaucoup plus de changements,
donc je vais plutôt faire le &#39;merge&#39; dans l&#39;autre sens&lt;/p&gt;
&lt;p&gt;5/ &lt;cite&gt;hg up -C ab123_autre_tete&lt;/cite&gt; -&amp;gt; je me retrouve sur l&#39;autre tête&lt;/p&gt;
&lt;p&gt;6/ &lt;cite&gt;hg merge cd456_ma_tete&lt;/cite&gt; -&amp;gt; un joli &#39;merge&#39;&lt;/p&gt;
&lt;p&gt;7/ &lt;cite&gt;hg status&lt;/cite&gt; -&amp;gt; seulement quelques fichiers modifés, voilà qui est mieux&lt;/p&gt;
&lt;p&gt;8/ &lt;cite&gt;hg ci -m merge&lt;/cite&gt; -&amp;gt; youpi, je valide cette fusion&lt;/p&gt;
&lt;p&gt;9/ &lt;cite&gt;hg push&lt;/cite&gt; -&amp;gt; tagada, je partage avec mes voisins&lt;/p&gt;
&lt;p&gt;Moralité: faites des &lt;cite&gt;hg status&lt;/cite&gt; et des &lt;cite&gt;hgview&lt;/cite&gt; aussi souvent que nécessaire pour préparer vos commits et parvenir à un historique facile à comprendre.&lt;/p&gt;
&lt;p&gt;Remarque: on peut aussi remplacer les étapes 5, 6 et 7 par &lt;cite&gt;hg diff -r ab123_autre_tete -r cd456_ma_tete&lt;/cite&gt; pour afficher le diff de ma_tete par rapport à autre_tete, car l&#39;opération de fusion doit être symétrique et donner le même résultat qu&#39;on la lance depuis l&#39;une ou l&#39;autre tête, même si l&#39;affichage par défaut de &lt;cite&gt;hg status&lt;/cite&gt; et &lt;cite&gt;hg diff&lt;/cite&gt; dépend de la tête qui constitue le premier parent (l&#39;étape 5 ayant justement pour effet de changer ce premier parent).&lt;/p&gt;
</description>
  <dc:date>2008-11-27T14:16-01:00</dc:date>
  <dc:creator>Nicolas Chauvat</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/6547</guid>
  <title>Semantic Roundup - infos glanées au NextMediaCamp</title>
  <link>http://www.logilab.org/blogentry/6547</link>
  <description>&lt;img alt=&quot;http://barcamp.org/f/NMC.PNG&quot; src=&quot;http://barcamp.org/f/NMC.PNG&quot; /&gt;
&lt;p&gt;Par manque de temps voici les infos en brut glanées jeudi soir dernier au &lt;a class=&quot;reference&quot; href=&quot;http://barcamp.org/NextMediaCamp1&quot;&gt;NextMediaBarCamp&lt;/a&gt; :&lt;/p&gt;
&lt;p&gt;Un &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Barcamp&quot;&gt;BarCamp&lt;/a&gt; c&#39;est assez rigolo, un peu trop de jeune cadres dynamiques en cravate à mon goût, mais bon. Parmi les trois mini-conférences auxquelles j&#39;ai participé, il y avait une sur le web sémantique. Animée en partie par &lt;a class=&quot;reference&quot; href=&quot;http://www.networking-social.com/&quot;&gt;Fabrice Epelboin&lt;/a&gt; qui écrit pour la version française de &lt;a class=&quot;reference&quot; href=&quot;http://fr.readwriteweb.com/&quot;&gt;ReadWriteWeb&lt;/a&gt;, j&#39;ai appris des choses. Pour résumer ce que j&#39;y ai compris : le web sémantique il y a deux approches :&lt;/p&gt;
&lt;ol class=&quot;arabic simple&quot;&gt;
&lt;li&gt;soit on pompe le contenu existant et on le transforme en contenu lisible par les machines avec des algorithmes de la mort, comme &lt;a class=&quot;reference&quot; href=&quot;http://www.opencalais.com/&quot;&gt;opencalais&lt;/a&gt; le fait (top-down)&lt;/li&gt;
&lt;li&gt;soit on écrit nous même en web sémantique avec des &lt;a class=&quot;reference&quot; href=&quot;http://en.wikipedia.org/wiki/Microformats&quot;&gt;microformats&lt;/a&gt; ensuite les machines liront de plus en plus le web (bottom-up)&lt;/li&gt;
&lt;/ol&gt;
&lt;img alt=&quot;http://microformats.org/wordpress/wp-content/themes/microformats/img/logo.gif&quot; class=&quot;align-right&quot; src=&quot;http://microformats.org/wordpress/wp-content/themes/microformats/img/logo.gif&quot; /&gt;
&lt;p&gt;Dans le deuxième cas la difficulté est de faciliter la tache des rédacteurs du web pour qu&#39;ils puissent facilement publier du contenu en web sémantique. Pour cela ces outils sont mentionnés : &lt;a class=&quot;reference&quot; href=&quot;http://www.zemanta.com/&quot;&gt;Zemanta&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;https://addons.mozilla.org/en-US/firefox/addon/3481&quot;&gt;Glue&lt;/a&gt; (de la société &lt;a class=&quot;reference&quot; href=&quot;http://www.adaptiveblue.com/&quot;&gt;AdaptiveBlue&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Tout ça m&#39;a fait penser au fait que si &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org&quot;&gt;CubicWeb&lt;/a&gt; publie déjà en microformats, il lui manque une interface d&#39;édition à la hauteur des enjeux. Par exemple lorsque l&#39;on tape un article et que l&#39;application a les coordonnées d&#39;une personne metionnée, il fait automagiquement une relation à cet élément. A creuser...&lt;/p&gt;
&lt;p&gt;Sinon sur les autres confs et le futur des médias, selon les personnes présentes, c&#39;est assez glauque : des medias publicitaires, custom-made pour le bonheur de l&#39;individu, où l&#39;on met des sous dans les agrégateurs de contenu plutôt sur des journalistes de terrain. Pour ceux que ça intéresse, j&#39;ai aussi découvert lors de ce BarCamp un &lt;a class=&quot;reference&quot; href=&quot;http://robinsloan.com/epic/&quot;&gt;petit film&lt;/a&gt; &amp;quot;rigolo&amp;quot; qui traite ce sujet préoccupant.&lt;/p&gt;
</description>
  <dc:date>2008-11-12T12:42-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/5619</guid>
  <title>Windows, fichiers ouverts et tests unitaires</title>
  <link>http://www.logilab.org/blogentry/5619</link>
  <description>&lt;p&gt;Un problème rencontré hier : un test unitaire plante sous Windows, après avoir créé un objet qui garde des fichiers ouverts. le &lt;tt class=&quot;docutils literal&quot;&gt;tearDown&lt;/tt&gt; du test est appelé, mais il plante car Windows refuse de supprimer des fichiers ouverts, et le &lt;em&gt;framework&lt;/em&gt; de test garde une référence sur la fonction de test pour qu&#39;on puisse examiner la pile d&#39;appels. Sous Linux, pas de problème (on a le droit du supprimer du disque un fichier ouvert, et donc pas de soucis dans le teardown).&lt;/p&gt;
&lt;p&gt;Quelques pistes pour contourner le problème:&lt;/p&gt;
&lt;ol class=&quot;arabic simple&quot;&gt;
&lt;li&gt;mettre le test dans un &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;try...finally&lt;/span&gt;&lt;/tt&gt; avec un &lt;tt class=&quot;docutils literal&quot;&gt;del&lt;/tt&gt; sur l&#39;objet qui garde les fichiers ouverts dans le &lt;tt class=&quot;docutils literal&quot;&gt;finally&lt;/tt&gt;. Inconvénient : quand le test ne passe pas, &lt;tt class=&quot;docutils literal&quot;&gt;pdb&lt;/tt&gt; ne permet plus de voir grand chose&lt;/li&gt;
&lt;li&gt;au lieu de nettoyer dans le &lt;tt class=&quot;docutils literal&quot;&gt;tearDown&lt;/tt&gt;, nettoyer plus tard dans un &lt;tt class=&quot;docutils literal&quot;&gt;atexit&lt;/tt&gt; par exemple. Il faut voir comment ça se passe si plusieurs tests veulent écrire dans les mêmes fichiers (je pense qu&#39;il faudrait un répertoire temporaire par test, si on veut pouvoir avoir plusieurs tests qui foirent et examiner leurs données, mais il faut tester pour être sûr)&lt;/li&gt;
&lt;li&gt;coller un &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;try...except&lt;/span&gt;&lt;/tt&gt; dans le &lt;tt class=&quot;docutils literal&quot;&gt;tearDown&lt;/tt&gt; autour de la suppression de chaque fichier, et mettre les fichiers qui  posent problème dans une liste qui sera traitée à la sortie du programme (avec &lt;tt class=&quot;docutils literal&quot;&gt;atexit&lt;/tt&gt; par exemple).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ça ressemble à du bricolage, mais on a un comportement de windows sur lequel on n&#39;a pas de contrôle (même avec des privilèges Administrateur ou System, on ne peut pas contourner cette impossibilité de supprimer un fichier ouvert, à ma connaissance).&lt;/p&gt;
&lt;p&gt;Une autre approche, nettement plus lourde, serait de virtualiser la création de fichiers pour travailler en mémoire (au minimum surcharger &lt;tt class=&quot;docutils literal&quot;&gt;os.mkdir&lt;/tt&gt; et le &lt;em&gt;builtin&lt;/em&gt; &lt;tt class=&quot;docutils literal&quot;&gt;open&lt;/tt&gt;, voire dans le cas qui nous intéresse les modules qui travaillent avec des fichiers zip). Il y a peut-être des choses comme ça en circulation. Poser la question sur la liste TIP apportera peut-être des réponses (une rapide recherche dans les archives n&#39;a rien donné).&lt;/p&gt;
&lt;p&gt;Voir aussi ces enfilades de &lt;a class=&quot;reference&quot; href=&quot;http://mail.python.org/pipermail/python-list/2004-March/251897.html&quot;&gt;mars 2004&lt;/a&gt; et &lt;a class=&quot;reference&quot; href=&quot;http://mail.python.org/pipermail/python-list/2004-November/290864.html&quot;&gt;novembre 2004&lt;/a&gt; sur comp.lang.python.&lt;/p&gt;
</description>
  <dc:date>2008-07-22T10:51-01:00</dc:date>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/5288</guid>
  <title>SciLab passe en logiciel libre</title>
  <link>http://www.logilab.org/blogentry/5288</link>
  <description>&lt;img alt=&quot;http://www.scilab.org/images/homepage/scilab_logo.png&quot; class=&quot;align-right&quot; src=&quot;http://www.scilab.org/images/homepage/scilab_logo.png&quot; /&gt;
&lt;p&gt;Bienvenue à SciLab version 5.0 dans le monde du logiciel libre. SciLab 5.0, plateforme open source de calcul scientifique sous licence &lt;a class=&quot;reference&quot; href=&quot;http://www.cecill.info&quot;&gt;CeCill&lt;/a&gt;, est une alternative crédible et maintenant reconnue comme telle à Matlab. Pour assurer le développement pérenne de Scilab, le consortium &lt;a class=&quot;reference&quot; href=&quot;http://www.scilab.org/fr/&quot;&gt;Scilab&lt;/a&gt; rejoint &lt;a class=&quot;reference&quot; href=&quot;http://www.digiteo.fr/accueil_fr.html&quot;&gt;DIGITEO&lt;/a&gt;, parc de recherche d&#39;envergure mondiale dans le domaine des sciences et
technologies de l&#39;information en Île-de-France.&lt;/p&gt;
</description>
  <dc:date>2008-06-16T17:33-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/5207</guid>
  <title>Nouvelle version de LAX - Logilab Appengine eXtension</title>
  <link>http://www.logilab.org/blogentry/5207</link>
  <description>&lt;img alt=&quot;http://code.google.com/appengine/images/appengine_lowres.jpg&quot; class=&quot;align-left&quot; src=&quot;http://code.google.com/appengine/images/appengine_lowres.jpg&quot; /&gt;
&lt;p&gt;La version 0.3.0 de LAX est sortie aujourd&#39;hui voir : &lt;a class=&quot;reference&quot; href=&quot;http://lax.logilab.org/&quot;&gt;http://lax.logilab.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Il suffit de 10 petites minutes pour avoir une application qui tourne, suivez le guide :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://lax.logilab.org/INSTALL&quot;&gt;http://lax.logilab.org/INSTALL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference&quot; href=&quot;http://lax.logilab.org/tutorial&quot;&gt;http://lax.logilab.org/tutorial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mise à jour: LAX est maintenant inclus dans &lt;a class=&quot;reference&quot; href=&quot;http://www.cubicweb.org&quot;&gt;CubicWeb&lt;/a&gt;.&lt;/p&gt;
</description>
  <dc:date>2008-06-09T10:27-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/5094</guid>
  <title>Présentation PyCON FR 2008 - Assurance qualité</title>
  <link>http://www.logilab.org/blogentry/5094</link>
  <description>&lt;img alt=&quot;Photo sous licence creative commons `By-Nc-Nd`&quot; class=&quot;align-right&quot; src=&quot;http://yota.smugmug.com/photos/415225057_eEtQ3-M.jpg&quot; style=&quot;width: 300px; height: 200px;&quot; /&gt;
&lt;p&gt;Une présentation sur l&#39;assurance-qualité a été présentée le 17 mai 2008 pour les journées Python organisées par l&#39;Association Francophone Python (&lt;a class=&quot;reference&quot; href=&quot;http://www.afpy.org/&quot;&gt;AFPy&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Le but visé est de décrire quelques notions et pratiques simples pour améliorer la lisibilité et la maintenabilité de votre code python.&lt;/p&gt;
&lt;p&gt;Quelques outils standards de python sont décrits en première partie; pour finir par une revue de projets plus ambitieux mais indispensables pour la création de code de qualité.&lt;/p&gt;
&lt;p&gt;Photo sous licence creative commons &lt;a class=&quot;reference&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/fr/&quot;&gt;By-Nc-Nd&lt;/a&gt; par : &lt;a class=&quot;reference&quot; href=&quot;http://yota.smugmug.com&quot;&gt;yota&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pour accéder au diaporama :&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;reference&quot; href=&quot;http://fr.pycon.org/presentations_2008/julien-jehannet-assurance-qualite/slides.html&quot;&gt;http://fr.pycon.org/presentations_2008/julien-jehannet-assurance-qualite/slides.html&lt;/a&gt;&lt;/p&gt;
</description>
  <dc:date>2008-05-27T14:55-01:00</dc:date>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/5091</guid>
  <title>Présentation de Gendb à PyconFR</title>
  <link>http://www.logilab.org/blogentry/5091</link>
  <description>&lt;p&gt;Ma présentation de 30 minutes est disponible à l&#39;adresse suivante :&lt;/p&gt;
&lt;blockquote&gt;
&lt;a class=&quot;reference&quot; href=&quot;http://fr.pycon.org/presentations_2008/andre-espaze-recherche-de-gene.pdf&quot;&gt;http://fr.pycon.org/presentations_2008/andre-espaze-recherche-de-gene.pdf&lt;/a&gt;&lt;/blockquote&gt;
&lt;img alt=&quot;http://www.logilab.org/image/5136?vid=download&quot; class=&quot;align-left&quot; src=&quot;http://www.logilab.org/image/5136?vid=download&quot; /&gt;
&lt;p&gt;La journée s&#39;est bien passée, j&#39;ai eu quelques questions. Un chercheur
en génétique a demandé si le projet serait continué sur la recherche
des peptides (car ce sont les gènes qui codent les peptides d&#39;après
ce que j&#39;ai compris). J&#39;ai transféré cette demande à Eric Eveno,
je n&#39;ai pas de réponse pour l&#39;instant. Normalement, la vidéo devrait
être disponible sur :&lt;/p&gt;
&lt;blockquote&gt;
&lt;a class=&quot;reference&quot; href=&quot;http://fr.pycon.org/&quot;&gt;http://fr.pycon.org/&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;Vous pouvez me contactez si vous avez des questions : &lt;a class=&quot;reference&quot; href=&quot;mailto:andre.espaze&amp;#64;logilab.fr&quot;&gt;andre.espaze&amp;#64;logilab.fr&lt;/a&gt;&lt;/p&gt;
</description>
  <dc:date>2008-05-27T14:44-01:00</dc:date>
  <dc:creator>Andre Espaze</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/5080</guid>
  <title>Profiter pleinement des CPUs avec Zope/Zeo/Debian</title>
  <link>http://www.logilab.org/blogentry/5080</link>
  <description>&lt;p&gt;Voici vite fait comment on profite du quad-core bi-proc multicoeurs avec zope/zeo/pound ... le tout en commandes debian.&lt;/p&gt;
&lt;p&gt;Inspiré de : &lt;a class=&quot;reference&quot; href=&quot;http://plone.org/documentation/how-to/simple-zope-clustering-with-squid-and-pound&quot;&gt;http://plone.org/documentation/how-to/simple-zope-clustering-with-squid-and-pound&lt;/a&gt;&lt;/p&gt;
&lt;img alt=&quot;http://plone.org/documentation/tutorial/introduction-to-the-zodb/zeo%20diagram.png&quot; src=&quot;http://plone.org/documentation/tutorial/introduction-to-the-zodb/zeo%20diagram.png&quot; /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;apt-get -uVf install plone-site pound&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle -z 2.10 make-zeoinstance sgel_zeo&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle -z 2.10 make-instance sgel2 --zeo-server=localhost:8100 -m all&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle -z 2.10 make-instance sgel3 --zeo-server=localhost:8100 -m all&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle -z 2.10 make-instance sgel1 --zeo-server=localhost:8100 -m all&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle -z 2.10 make-instance sgel4 --zeo-server=localhost:8100 -m all&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;modifiez les ports de chaque instance (par exemple 9673, 9674, 9675, 9676)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;vim ~/zope/instances/sgel*/etc/zope.conf&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle add-product sgel1 CMFPlone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle add-product sgel2 CMFPlone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle add-product sgel3 CMFPlone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle add-product sgel4 CMFPlone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle zeoctl sgel_zeo start&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle zopectl sgel1 start&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle zopectl sgel2 start&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle zopectl sgel3 start&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;dzhandle zopectl sgel4 start&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;vim /etc/pound/pound.cfg pour remplacer&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
BackEnd
        Address 127.0.0.1
        Port    8080
End
&lt;/pre&gt;
&lt;p&gt;par&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
Service
        BackEnd
                Address 127.0.0.1
                Port    9673
        End
        BackEnd
                Address 127.0.0.1
                Port    9674
        End
        BackEnd
                Address 127.0.0.1
                Port    9675
        End
        BackEnd
                Address 127.0.0.1
                Port    9676
        End
End
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;/etc/init.d/pound restart&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;tapez sur &lt;a class=&quot;reference&quot; href=&quot;http://localhost:8080&quot;&gt;http://localhost:8080&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class=&quot;first&quot;&gt;ajoutez un site plone&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;pour tester, lancez htop pour voir l&#39;activité et regardez la différence entre :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;apt-get -uVf install apache2-utils&lt;/li&gt;
&lt;li&gt;/usr/sbin/ab -n 100 -c 100 localhost:8080/plone&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;et&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;/usr/sbin/ab -n 100 -c 100 localhost:9673/plone&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;nice!&lt;/p&gt;
</description>
  <dc:date>2008-05-27T09:52-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/5078</guid>
  <title>Reinteract: un outil intéressant pour faire du numpy/scipy</title>
  <link>http://www.logilab.org/blogentry/5078</link>
  <description>&lt;p&gt;Il existe un outil, &lt;a class=&quot;reference&quot; href=&quot;http://fishsoup.net/software/reinteract&quot;&gt;Reinteract&lt;/a&gt;, qui permet d&#39;avoir une sorte de d&#39;éditeur/shell Python, où l&#39;on peut aisément modifier et réinterpreter une ligne de code.&lt;/p&gt;
&lt;p&gt;Sachant qu&#39;il sait aussi afficher des plots, etc, il est possible de s&#39;en servir avantageusement pour faire des sessions Matlab-like.&lt;/p&gt;
&lt;p&gt;Je pense donc que c&#39;est un outil à présenter à nos chers apprenants qui sont intéressés par le couple python/numpy comme substitut à Matlab ©®.&lt;/p&gt;
&lt;p&gt;Ex:&lt;/p&gt;
&lt;img alt=&quot;http://fishsoup.net/software/reinteract/reinteract-demo.png&quot; src=&quot;http://fishsoup.net/software/reinteract/reinteract-demo.png&quot; /&gt;
&lt;p&gt;&lt;strong&gt;écrit par David Douard&lt;/strong&gt;&lt;/p&gt;
</description>
  <dc:date>2008-05-27T09:48-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/5076</guid>
  <title>Petit raccourci pratique avec ion3</title>
  <link>http://www.logilab.org/blogentry/5076</link>
  <description>&lt;p&gt;Un petit raccourci pratique pour ion3, qui permet, sur la combinaison de touches de son choix, de prendre le texte actuellement sélectionné (surligné) dans sa session X11, et, en fonction de son contenu :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;d&#39;ouvrir un onglet Firefox avec l&#39;url sélectionnée,&lt;/li&gt;
&lt;li&gt;d&#39;ouvrir un xpdf si c&#39;est une URL de fichier PDF,&lt;/li&gt;
&lt;li&gt;lancer OpenOffice.org si c&#39;est un fichier OOo,&lt;/li&gt;
&lt;li&gt;ouvrir le fichier dans emacs si c&#39;est un &lt;cite&gt;.py&lt;/cite&gt;, &lt;cite&gt;.po&lt;/cite&gt;, etc.&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour cela, il faut le script magique ci-dessous, et configurer ion pour appeler ce script sur la bonne combinaison  de touches. Par ex. ajouter dans votre  &lt;cite&gt;~/.ion3/cfg_ion.lua&lt;/cite&gt; les lignes&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
defbindings(&amp;quot;WMPlex.toplevel&amp;quot;, {
  bdoc(&amp;quot;Automagically view the selected string&amp;quot;),
  kpress(META..&amp;quot;F7&amp;quot;,
         &amp;quot;ioncore.exec_on(_, &#39;/home/user/bin/view&#39;)&amp;quot;),
})
&lt;/pre&gt;
&lt;p&gt;Ici, j&#39;ai mappé &amp;quot;Meta+F7&amp;quot;, et le script est &lt;cite&gt;/home/user/bin/view&lt;/cite&gt;&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;c&quot;&gt;#!/usr/bin/env python&lt;/span&gt;

&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;mimetypes&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;guess_type&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sys&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os.path&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;abspath&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;system&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;popen&lt;/span&gt;

&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;re&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;RGX&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;re&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;compile&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;EMACS&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;emacsclient --no-wait &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;EMACS_WITH_LINE&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;emacsclient --no-wait +&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(lineno)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;FIREFOX&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;firefox -remote &amp;quot;openURL(&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;, new-tab)&amp;quot;&amp;#39;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;WGET&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;cd /home/adim/tmp &amp;amp;&amp;amp; wget &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; &amp;amp; &amp;#39;&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;commands&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;text/html&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;FIREFOX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;application/xml&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EMACS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;text&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EMACS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;image&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;display &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; &amp;amp;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;application/pdf&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;xpdf &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; &amp;amp;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;application/postcript&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;gv &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; &amp;amp;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;application/vnd.sun.xml&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;ooffice &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; &amp;amp;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# matches writer, impress, etc.&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;application/vnd.oasis.opendocument&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;ooffice &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; &amp;amp;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;application/msword&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;ooffice &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; &amp;amp;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;application/vnd.ms-&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;ooffice &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%(uri)s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; &amp;amp;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;patterns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RGX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;r&amp;#39;https?://.*?(zip|gz|pdf|ods|doc|odt|ppt|sxw|sxi)$&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;WGET&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RGX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;r&amp;#39;.*(?P&amp;lt;uri&amp;gt;https?://[^ ()]*)( .*)?&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;FIREFOX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RGX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;.*?\.conf$&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EMACS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RGX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;.*?\.po$&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EMACS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RGX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;.*?\.xslt$&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EMACS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RGX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;.*?\.pot$&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EMACS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RGX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;r&amp;#39;\s*F?i?l?e? ?&amp;quot;?(?P&amp;lt;uri&amp;gt;.*?\.py)&amp;quot;, line (?P&amp;lt;lineno&amp;gt;\d+)[a-zA-Z_:-]*&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EMACS_WITH_LINE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RGX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;.*?(readme|changelog|depends|manifest|makefile)(\.in|\.gz|\.bz2)?$&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;re&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;I&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EMACS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;c&quot;&gt;# others might come here ...&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;find_command&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;selection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rgx&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cmd&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;patterns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;m&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rgx&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;selection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;m&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;args&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;m&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;groupdict&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;uri&amp;#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;selection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cmd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;args&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mimetype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;encoding&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;guess_type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;selection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;c&quot;&gt;# XXX: encodings like zip, or gz could be handled&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mimetype&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;selection&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;abspath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;selection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;registered_type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cmd&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;commands&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mimetype&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;startswith&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;registered_type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
                &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cmd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;uri&amp;#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;selection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ne&quot;&gt;ValueError&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;nothing matched&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;selected&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:])&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;selected&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;popen&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;xclip -o&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;cmd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;args&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;find_command&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;ne&quot;&gt;ValueError&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;c&quot;&gt;# system(&amp;#39;wmiijabber error viewing %s&amp;#39; % &amp;#39; &amp;#39;.join(sys.argv[1:]))&lt;/span&gt;
        &lt;span class=&quot;c&quot;&gt;# XXX print a message in wmii status bar ?&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;pass&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;c&quot;&gt;#print &amp;quot;yooo =&amp;gt;&amp;quot;, repr(cmd), repr(args)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;system&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cmd&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;args&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour que cela fonctionne, il ne faut pas oublier d&#39;installer &lt;cite&gt;xclip&lt;/cite&gt; (sous debian, &lt;cite&gt;apt-get install xclip&lt;/cite&gt;).&lt;/p&gt;
&lt;p&gt;-- écrit par David Douard sur un script de Adrien diMascio&lt;/p&gt;
</description>
  <dc:date>2008-05-27T09:45-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
<item>
<guid isPermaLink="true">http://www.logilab.org/blogentry/5070</guid>
  <title>Petites astuces de vim</title>
  <link>http://www.logilab.org/blogentry/5070</link>
  <description>&lt;p&gt;J&#39;ai découvert vim-addons (qui est apparu dans debian récement) et ce petit outil permet de faire d&#39;etendre les fonctionnalités de vim assez facilement. Voici une utilisation parmi tant d&#39;autres :&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;mode-gnupg&quot;&gt;
&lt;h3&gt;&lt;a&gt;mode gnupg&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;pour installer le mode gnupg faites&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
vim-addons install gnupg
&lt;/pre&gt;
&lt;p&gt;Ensuite vim pourra ouvrir directement des fichiers encryptés et les réncrypter lorsque vous sauvez. Donc simplement&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
vim mot-de-passe-envoyé-par-client.gpg
&lt;/pre&gt;
&lt;p&gt;Voilà, le tour est joué.&lt;/p&gt;
&lt;p&gt;J&#39;avoue que je reste avec emacs pour le code, mais ce genre de petit raccourcis est bien pratique.&lt;/p&gt;
&lt;/div&gt;
</description>
  <dc:date>2008-05-27T09:37-01:00</dc:date>
  <dc:creator>Arthur Lutz</dc:creator>
</item>
  </channel>
</rss>