<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.cafeaumiel.com/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Café au Miel</title>
  <link>http://blog.cafeaumiel.com/</link>
  <atom:link href="http://blog.cafeaumiel.com/feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Hey ! C'est mon blag \o/</description>
  <language>fr</language>
  <pubDate>Thu, 15 Apr 2010 19:06:34 +0200</pubDate>
  <copyright>T.C</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>How to install dbus-python in a virtualenv ?</title>
    <link>http://blog.cafeaumiel.com/post/2010/04/How-to-install-dbus-python-in-a-virtualenv</link>
    <guid isPermaLink="false">urn:md5:4b81f348bcce2207e0145607853cc227</guid>
    <pubDate>Thu, 15 Apr 2010 20:54:00 +0200</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>Python</category>
        <category>dbus</category><category>HowTo</category><category>Python</category><category>QuickPost</category>    
    <description>    &lt;p&gt;It's simple ! But hey, I haven't post for months...&lt;/p&gt;
&lt;p&gt;Grab the sources' last version (0.83.1 at the moment) from the &lt;a href=&quot;http://dbus.freedesktop.org/releases/dbus-python/&quot; hreflang=&quot;en&quot;&gt;freedesktop
site&lt;/a&gt; :&lt;/p&gt;
&lt;pre&gt;
$ wget http://dbus.freedesktop.org/releases/dbus-python/dbus-python-0.83.1.tar.gz
&lt;/pre&gt;
&lt;p&gt;Then extract the archive and cd into the extracted folder :&lt;/p&gt;
&lt;pre&gt;
$ tar -xvzf dbus-python-0.83.1.tar.gz
$ cd dbus-python-0.83.1/
&lt;/pre&gt;
&lt;p&gt;Run the configure script with the &lt;em&gt;prefix&lt;/em&gt; option set to virtualenv
folder, e.g for my testenv virtual environment it would be
/home/myself/.virtualenvs/testenv :&lt;/p&gt;
&lt;pre&gt;
$ ./configure --prefix /path/to/your/virtualenv
&lt;/pre&gt;
&lt;p&gt;Finally, compile&amp;amp;install with the classic combo make; make install :&lt;/p&gt;
&lt;pre&gt;
$ make
$ make install
&lt;/pre&gt;
&lt;p&gt;You can test if the installation was successful but I have no doubts !&lt;/p&gt;
&lt;pre&gt;
$ python
&amp;gt;&amp;gt;&amp;gt; import dbus
&amp;gt;&amp;gt;&amp;gt; dbus.__version__
'0.83.1'
&lt;/pre&gt;
&lt;p&gt;However, if you get the following, something didn't happen properly...&lt;/p&gt;
&lt;pre&gt;
&amp;gt;&amp;gt;&amp;gt; import dbus
Traceback (most recent call last):
  File &amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;
ImportError: No module named dbus
&lt;/pre&gt;
&lt;p&gt;Note that due to the use of a virtual environment it's not necessary to run
make install as a privileged user.&lt;/p&gt;
&lt;p&gt;Resources :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tutorial : &lt;a href=&quot;http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html&quot; hreflang=&quot;en&quot;&gt;http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;API reference : &lt;a href=&quot;http://dbus.freedesktop.org/doc/dbus-python/api/&quot; hreflang=&quot;fr&quot;&gt;http://dbus.freedesktop.org/doc/dbus-python/api/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The end.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Configuration de mod_wsgi pour Python 3.1</title>
    <link>http://blog.cafeaumiel.com/post/2009/11/Apache-pour-les-nuls-par-un-nul-%3A-l-installation</link>
    <guid isPermaLink="false">urn:md5:cad8f8810dfdcdbe94c25f34953ea60f</guid>
    <pubDate>Sun, 06 Dec 2009 14:52:00 +0100</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>Apache</category>
        <category>Apache</category><category>Linux</category><category>mod_wsgi</category><category>Python</category>    
    <description>&lt;p&gt;Je suis actuellement en train de &lt;del&gt;travailler&lt;/del&gt; jouer avec un
framework web pour python3. Mis à part Bottle, qui fonctionne sur les version
2.x et 3.1 de Python, aucun des frameworks web majeurs actuels (Pylons, Django,
TurboGears...) n'a fait la transition, même si celle-ci est déjà entamée ne
serait-ce que dans la mesure où Python 2.6 est supporté.&lt;/p&gt;
&lt;p&gt;Tout récemment mod_wsgi, le module Apache conçut pour les applications
python wsgi est sorti en version 3.0 (puis rapidement en version 3.1 pour
corriger quelques bugs). Cette version apporte le support de Python 3.1 en plus
des versions suivantes : 2.3, 2.4, 2.5 et 2.6 (rappelons au passage que
Python 3.0 a été abandonné par la PSF au profit de Python 3.1).&lt;/p&gt;
&lt;p&gt;Je me suis donc penché sur l'installation de mod_wsgi pour Python 3.1. Les
explications suivantes sont tirées de celles que j'ai rédigées pour le wiki
d'Archlinux.&lt;/p&gt;    &lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Je pars du principe que Python, Apache et les outils de la chaîne de
compilation, sont déjà installés. Par ailleurs les chemins qui sont indiqués
sont ceux propres à ArchLinux, il est possible que pour d'autres distributions
cela change. Les outils utilisés sont ceux proposés par toutes les
distributions (ou presque ?), il ne devrait donc pas y avoir de changements à
faire à ce niveau là.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Téléchargez les sources depuis le site du projet : &lt;a href=&quot;http://code.google.com/p/modwsgi/downloads/list&quot; hreflang=&quot;en&quot;&gt;http://code.google.com/p/modwsgi/downloads/list&lt;/a&gt;, il vous faudra la
version 3.1 au minimum.&lt;/p&gt;
&lt;p&gt;Décompressons tout ça : &lt;code&gt;~ $ tar -xvf
mod_wsgi-3.1.tar.gz&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Puis : &lt;code&gt;~ $ cd mod_wsgi&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Il faut ensuite configurer mod_wsgi pour la compilation :&lt;/p&gt;
&lt;pre&gt;
~/mod_wsgi $ ./configure --prefix=/usr --with-apxs=/usr/sbin/apxs --with-python=/usr/bin/python3
&lt;/pre&gt;
&lt;p&gt;Les paramètres que je passe à ./configure me permette de lui indiquer où se
situent les exécutables qu'il faudra utiliser. En particulier
&lt;code&gt;--with-python&lt;/code&gt; est très important car si je ne le spécifie pas
mod_wsgi se contentera du programme python qui réside dans
&lt;code&gt;/usr/bin/&lt;/code&gt; et qui est en fait Python 2.6, je doit donc le forcer à
utiliser python3.&lt;/p&gt;
&lt;p&gt;On lance la compilation : &lt;code&gt;~/mod_wsgi $ make&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Puis l'installation (avec l'utilisateur root): &lt;code&gt;~/mod_wsgi # make
install&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Activation dans Apache&lt;/h2&gt;
&lt;h3&gt;Configuration d'Apache&lt;/h3&gt;
&lt;p&gt;Il faut ensuite ajouter la ligne suivante au fichier de configuration
d'Apache (&lt;code&gt;/etc/httpd/conf/httpd.conf&lt;/code&gt; en ce qui me concerne) :
&lt;code&gt;LoadModule wsgi_module modules/mod_wsgi.so&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Redémarrez Apache pour qu'il prenne en compte les changements :
&lt;code&gt;~# /etc/rc.d/httpd restart&lt;/code&gt; Si une erreur se produit ici, c'est
qu'il y a probablement une erreur dans le fichier de configuration, par
exemple, que le module est mal installé. Le fichier log d'Apache devrait dans
ce cas contenir un message d'erreur détaillé.&lt;/p&gt;
&lt;h3&gt;Test&lt;/h3&gt;
&lt;p&gt;Ajoutons encore quelques directives au fichier de configuration d'Apache.
Ceci nous permettra de tester notre installation avec une petite application
WSGI. Pour plus de détails sur la configuration d'Apache ou de mod_wsgi
reportez vous à leur documentation respective. A la fin de celui-ci copier ce
qui suit :&lt;/p&gt;
&lt;pre&gt;
WSGIScriptAlias /wsgi_app /home/www/wsgi-scripts/wsgi_app.py
&amp;lt;Directory /home/www/wsgi-scripts&amp;gt;
    Order allow,deny
    Allow from all
&amp;lt;/Directory&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Redémarrer à nouveau Apache.&lt;/p&gt;
&lt;p&gt;Créer le dossier &lt;code&gt;www/wsgi-scripts&lt;/code&gt; dans le répertoire
&lt;code&gt;/home&lt;/code&gt; et faite en sorte que l'utilisateur sous lequel Apache est
lancé (par défaut il s'agit de &lt;code&gt;http&lt;/code&gt;) puisse y accéder en
lecture : &lt;code&gt;~ # cd /home&lt;/code&gt; &lt;code&gt;/home # mkdir -p
www/wsgi-scripts&lt;/code&gt; &lt;code&gt;/home # chmod -R a+r www&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Créer ensuite un fichier &lt;code&gt;wsgi_app.py&lt;/code&gt; dans le dossier
nouvellement créé, et copier-y ceci :&lt;/p&gt;
&lt;pre&gt;
#-*- coding: utf-8 -*-
def wsgi_app(environ, start_response):
    import sys
    output = str(sys.version)
    status = '200 OK'
    headers = [('Content-type', 'text/plain'),
               ('Content-Length', str(len(output)))]
    start_response(status, headers)
    yield output

application = wsgi_app
&lt;/pre&gt;
&lt;p&gt;Redémarrons encore une fois Apache afin d'être certain que tous les
changements ont été pris en compte.&lt;/p&gt;
&lt;p&gt;A présent, si vous naviguer jusqu'à l'adresse
&lt;code&gt;http://localhost/wsgi_app&lt;/code&gt; vous devriez voir s'afficher quelques
lignes ressemblants à :&lt;/p&gt;
&lt;pre&gt;
3.1.1 (r311:74480, Aug 27 2009, 04:56:37) 
[GCC 4.4.1]
&lt;/pre&gt;
&lt;p&gt;L'important étant de bien avoir 3.1.x pour la version de Python.&lt;/p&gt;
&lt;h2&gt;Plus d'info :&lt;/h2&gt;
&lt;h4&gt;Liens :&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/11/Wiki%20d'ArchLinux&quot; hreflang=&quot;en&quot;&gt;http://wiki.archlinux.org/index.php/Mod_wsgi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/11/Bottle&quot; hreflang=&quot;en&quot;&gt;http://bottle.paws.de/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/11/Pylons&quot; hreflang=&quot;en&quot;&gt;http://pylonshq.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/11/Django&quot; hreflang=&quot;en&quot;&gt;http://www.djangoproject.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/11/Turbo-gear&quot; hreflang=&quot;en&quot;&gt;http://turbogears.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Documentation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/11/mod_wsgi&quot; hreflang=&quot;en&quot;&gt;http://code.google.com/p/modwsgi/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/11/Quick%20Configuration%20Guide%20pour%20mod_wsgi&quot; hreflang=&quot;en&quot;&gt;http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/11/Documentation%20pour%20Apache&quot; hreflang=&quot;fr&quot;&gt;http://httpd.apache.org/docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/11/La%20pep%20333%20qui%20d%C3%A9crit%20l'interface%20WSGI&quot; hreflang=&quot;en&quot;&gt;http://www.python.org/dev/peps/pep-0333/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>X11R7.5 est publié ! Oui mais...</title>
    <link>http://blog.cafeaumiel.com/post/2009/10/X11R7.5-est-publi%C3%A9-%21-Oui-mais...</link>
    <guid isPermaLink="false">urn:md5:8123366c723b43efbbde644e13fa6010</guid>
    <pubDate>Wed, 28 Oct 2009 11:55:00 +0100</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>Xorg</category>
        <category>Linux</category><category>X.org</category>    
    <description>    &lt;p&gt;Récemment X11R7.5 a été publié. Je me propose à cette occasion de revenir
sur le projet X.org au travers d'une traduction d'un article publié par l'un
des ses hackers. La conclusion est néanmoins de mon cru et les réflexions
associées n'engage que moi.&lt;/p&gt;
&lt;p&gt;Cette article est donc une traduction intégrale, avec son aimable
autorisation, &lt;a href=&quot;http://who-t.blogspot.com/2009/10/x11r75-released-but-what-is-it.html&quot; hreflang=&quot;en&quot;&gt;d'un article de Petter Hutterer&lt;/a&gt;, un développeur impliqué dans
le projet X.org et en particulier derrière X Input.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Début de la traduction.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;X11R7.5 publié. Certes, mais encore ?&lt;/h3&gt;
&lt;p&gt;Grâce aux efforts d'Alan Coppersmith, X11R7.5 a été publié il y a quelques
jours. Qu'est ce que cela peut bien vouloir dire.&lt;/p&gt;
&lt;p&gt;Ce billet vise à mettre en lumière les composants de X11R7.5 ainsi qu'à
expliquer d'où proviennent leurs numéros de version.&lt;/p&gt;
&lt;h4&gt;X Window&lt;/h4&gt;
&lt;p&gt;Si vous utilisez un système d'exploitation différent de Microsoft Windows ou
de Mac OS X, il est fort possible que vous utilisiez également X Window System,
également appelé &amp;quot;X11&amp;quot; ou simplement &amp;quot;X&amp;quot;. X consiste en un assemblage de
plusieurs pièces, dont certaines sont plus visibles que d'autres, qui toutes
ensembles sont &amp;quot;X Window System&amp;quot;?&lt;/p&gt;
&lt;h4&gt;X Protocol&lt;/h4&gt;
&lt;p&gt;LE composant d'X est le protocole X. Il définit X et est principalement une
API. Dans ce qu'on appelle le protocole X, on distingue le protocole &amp;quot;cœur&amp;quot;,
qui date des années 80 et plusieurs extensions, essentiellement des additions
au protocole cœur. Quand vous entendez parler de XInput, XRandR, RENDER, etc.,
ce sont des extensions.&lt;/p&gt;
&lt;h4&gt;X Server et les pilotes&lt;/h4&gt;
&lt;p&gt;X Server est le processus qui &amp;quot;discute&amp;quot; avec les pilotes et qui &amp;quot;écoute&amp;quot; les
applications qui requièrent de dessiner des &amp;quot;trucs&amp;quot;. C'est également lui qui
récupère les événements d'entrée et les transmet à la bonne application. En
fonction de votre matériel, vous utiliserez un certain nombre de pilotes.
Actuellement, les pilotes généralement utilisés sont evdev et synaptics pour
les entrées, et intel, ATI ou Nvidia pour la partie graphique.&lt;/p&gt;
&lt;p&gt;C'est encore X Server qui implémente le protocole cœur et la plupart de ses
extensions, différents X Servers pouvant implémenter différentes versions.
Globalement, le plus récent X Server implémente la version la plus récente du
protocole.&lt;/p&gt;
&lt;h4&gt;Xlib et compagnie&lt;/h4&gt;
&lt;p&gt;Xlib (parfois libX11) est la bibliothèque logicielle qui permet aux
applications de &amp;quot;discuter&amp;quot; en X Protocol avec le X Server. Elle enrobe le
protocole dans une API d'un peu plus haut niveau. Quasiment toutes les
applications graphiques actuelles utilisent Xlib à un moment ou à un autre,
Xlib est d'ailleurs abstraite par les toolkits graphiques, comme GTK ou Qt.&lt;/p&gt;
&lt;p&gt;Xlib a été longtemps la seule bibliothèque à utiliser le procotole X mais
depuis quelques années, XCB gagne du terrain (en fait les dernières versions de
Xlib utilisent XCB pour ce qui relève du bas niveau).&lt;/p&gt;
&lt;h4&gt;Les applications X&lt;/h4&gt;
&lt;p&gt;Il y a de nombreuses applications qui font traditionnellement partie du X
Window System. Parmi elles, le fameux xeyes, mais aussi des outils cruciaux
comme setxkbmap ou xkbcomp.&lt;/p&gt;
&lt;h4&gt;Le reste&lt;/h4&gt;
&lt;p&gt;Il y a aussi, au sein du X Window System, nombre d'autres paquets qui
comptent les polices de caractères, des outils divers, des données... Je passe
sur les détails, il suffit juste de savoir qu'ils sont là.&lt;/p&gt;
&lt;h4&gt;X11R7.quoi ?&lt;/h4&gt;
&lt;p&gt;Si l'on revient en arrière de quelques années, tous ces composants étaient
regroupés dans un unique dépôt. Et pour construire un seul d'entre eux, il
fallait construire tous les autres. Pour en publier un, il fallait publier tous
les autres. Avec le temps, les numéros de versions de cet arbre monolithique
ont atteint 6.9.&lt;/p&gt;
&lt;p&gt;X11R6.9 (X11 édition 6.9) fut la dernière publication unifiée. Vers 2005,
l'arbre monolithique a été éclaté en plusieurs dépôts, un par composant. À ce
moment là, les numéros de version ont également été remis à 1.0 pour la majeure
partie des composants (ceux qui en étaient à 6.9, voire à 7.0).&lt;/p&gt;
&lt;p&gt;Depuis, les publications X11.R7.x (appelée également katamari) sont très
similaires aux distributions. Elles embarquent un des modules, chacun d'une
certaine version et dont on sait qu'ils fonctionnent ensemble, et les regroupe
en un seul jeu. Les modules en eux-même sont indépendants des katamaris et
leurs numéros de version peuvent sauter entre les katamaris. Par exemple,
X11R7.4 inclut X Server 1.5 mais pour X11R7.5 c'est X Server 1.7.&lt;/p&gt;
&lt;p&gt;C'est une source de beaucoup de confusion. La plupart des utilisateurs ne
savent pas s’ils utilisent 1.7, 7.5, 1.0 ou 6.8. Un katamari vise juste à
fournir un jeu de composants suffisant pour faire tourner un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Environnement_graphique&quot; hreflang=&quot;fr&quot;&gt;GUI&lt;/a&gt;
basique. C'est pourquoi avec le temps des modules ont disparu ou au contraire
ont été introduits au sein des katamaris. Un module inclus dans X11R7.5
pourrait ne pas l'être dans X11R7.6 et réciproquement (la liste complète des
modules et de leur version se trouve au début du journal des changements de
X11R7.5).&lt;/p&gt;
&lt;h4&gt;Quelle version est importante ?&lt;/h4&gt;
&lt;p&gt;Les katamaris sont important principalement pour les distributeurs. Ils
représentent un jeu de module d'une certaine version dont on sait qu'ils
fonctionneront ensembles et en cela ils facilitent le packaging. Une
distribution est libre de démarrer avec un katamari et d'inclure les nouvelles
versions des modules au fur et à mesure de leur publication. Un katamari est un
point de départ, rien de plus.&lt;/p&gt;
&lt;p&gt;Pour ces raisons, il importe rarement aux utilisateurs finaux de savoir si
un module qu'ils utilisent est inclus dans un katamari ou non. Pour les
rapports de bug, les développeurs ont besoins des numéros de version des tous
les modules impliqués afin de réduire leur champ d'investigation.&lt;/p&gt;
&lt;p&gt;Pour connaître le numéro de version du X Server et des pilotes, il suffit de
regarder au début du fichier /var/log/Xorg.0.log. La première ligne concerne le
X Server. Comme les pilotes sont chargés dynamiquement, il faudra chercher dans
le journal. Par exemple, le mien me dit :&lt;/p&gt;
&lt;p&gt;X.Org X Server 1.7.0&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/10/...&quot; title=&quot;...&quot;&gt;...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(II) Module intel: vendor=&amp;quot;X.Org Foundation&amp;quot;&lt;/p&gt;
&lt;pre&gt;
      compiled for 1.6.99.903, module version = 2.9.0
      Module class: X.Org Video Driver
      ABI class: X.Org Video Driver, version 6.0
&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/10/...&quot; title=&quot;...&quot;&gt;...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(II) Module evdev: vendor=&amp;quot;X.Org Foundation&amp;quot;&lt;/p&gt;
&lt;pre&gt;
      compiled for 1.7.0, module version = 2.3.0
      Module class: X.Org XInput Driver
      ABI class: X.Org XInput driver, version 7.0
&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/10/...&quot; title=&quot;...&quot;&gt;...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so (II) Module
synaptics: vendor=&amp;quot;X.Org Foundation&amp;quot;&lt;/p&gt;
&lt;pre&gt;
      compiled for 1.6.99.900, module version = 1.1.99
      Module class: X.Org XInput Driver
      ABI class: X.Org XInput driver, version 7.0
&lt;/pre&gt;
&lt;p&gt;J'utilise donc actuellement X server 1.7.0 avec evdev 2.3.0, intel 2.9.0 et
synaptics 1.1.99. Que ces versions fassent ou non partie d'un katamari importe
peu.&lt;/p&gt;
&lt;p&gt;Les applications X ont habituellement un paramètre -version. Pour les
bibliothèques, le mieux est d'utiliser le système de gestion des paquets de la
distribution (par exemple rpm -q libX11) pour accéder au numéro de version.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fin de la traduction.&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;X.org est sans doute l'élément le plus critique après le noyau pour
l'utilisation au quotidien d'un bureau Linux. Le projet souffre pourtant d'un
manque de visibilité (ce que je trouve ironiquement paradoxal pour un projet
qui nous permet de voir nos applications...) et d'un manque de main d'œuvre
important.&lt;/p&gt;
&lt;p&gt;Je n'ai pas les compétences requises pour participer au développement de X,
j'ai tout juste celle pour traduire les articles de ceux qui le font, c'est
donc ma maigre contribution au projet que de les aider à communiquer sur le
travail.&lt;/p&gt;
&lt;h4&gt;Pour en savoir plus :&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.x.org/wiki/&quot; hreflang=&quot;en&quot;&gt;http://www.x.org/wiki/&lt;/a&gt; : Le site de la X.org fundation qui
supervise le développement de X.org&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://who-t.blogspot.com/&quot; hreflang=&quot;en&quot;&gt;http://who-t.blogspot.com/&lt;/a&gt;: Le blog de Peter Hutterer, l'auteur de
l'article originel&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://fr.wikipedia.org/wiki/Xorg&quot; hreflang=&quot;fr&quot;&gt;http://fr.wikipedia.org/wiki/Xorg&lt;/a&gt; : L'article Wikipedia sur
X.org&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note au lecteur :&lt;/strong&gt; Cette article a été également publier sur
le site &lt;a href=&quot;http://linuxfr.org/2009/10/28/26088.html&quot; hreflang=&quot;fr&quot;&gt;linuxfr&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>A byte of python, en français s'il vous plait !</title>
    <link>http://blog.cafeaumiel.com/post/2009/10/A-byte-of-python%2C-en-fran%C3%A7ais-s-il-vous-plait-%21</link>
    <guid isPermaLink="false">urn:md5:f9cd23489378e099e22dc56e0fa1a49c</guid>
    <pubDate>Tue, 27 Oct 2009 14:25:00 +0100</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>Doc</category>
        <category>Documentation</category><category>Livre</category><category>Python</category>    
    <description>    &lt;p&gt;L'excellent livre d'introduction à Python 3 de C.H. Swaroop, &lt;strong&gt;A Byte
of Python&lt;/strong&gt;, &lt;a href=&quot;http://blog.cafeaumiel.com/post/2009/07/Deux-livres-pour-Python-3&quot;&gt;dont
j'avais parlé ici même&lt;/a&gt;, a été traduit en français grâce à Gérard
&amp;quot;Palmipede&amp;quot; Labadieau et à l'aide de volontaires.&lt;/p&gt;
&lt;p&gt;Rappelons que ce livre, qu'il est possible d'acheter imprimé des arbres
morts en version anglaise (1), se veut une introduction poussée à Python.
Destiné aux grands débutants en Python, ou en programmation en général, il
aurait sa place avant &lt;strong&gt;Dive into Python&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;La traduction (2) est accessible en ligne aux cotés de la version originale
(3).&lt;/p&gt;
&lt;p&gt;(1) : &lt;a href=&quot;http://www.lulu.com/content/4313405&quot; hreflang=&quot;en&quot;&gt;http://www.lulu.com/content/4313405&lt;/a&gt; (2) : &lt;a href=&quot;http://www.swaroopch.com/notes/Python_fr:Table_des_Mati%C3%A8res&quot; hreflang=&quot;fr&quot;&gt;http://www.swaroopch.com/notes/Python_fr:Table_des_Matières&lt;/a&gt; (3) :
&lt;a href=&quot;http://www.swaroopch.com/notes/Python_en:Table_of_Contents&quot; hreflang=&quot;en&quot;&gt;http://www.swaroopch.com/notes/Python_en:Table_of_Contents&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Une nouvelle version de maintenance pour Python 2.6</title>
    <link>http://blog.cafeaumiel.com/post/2009/10/Une-nouvelle-version-de-maintenance-pour-Python-2.6</link>
    <guid isPermaLink="false">urn:md5:7cb03cffd610ecbee1dd9533ad0e69bc</guid>
    <pubDate>Tue, 27 Oct 2009 09:39:00 +0100</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>Python</category>
        <category>Python</category>    
    <description>    &lt;p&gt;C'est en effet la quatrième version de maintenance de la branche 2.6 de
Python qui a été publiée ce week-end (1) après un cycle de développement
particulièrement court (23 jours écoulés depuis la publication de la version
2.6.3 le 2 octobre 2009).&lt;br /&gt;
Celle-ci n'apporte pas de nouvelle fonctionnalité mais adresse plusieurs bugs
jugés critique par l'équipe de développeurs (2). Pour l'essentiel il s'agit de
corrections apportées à la bibliothèque standard de python. On remarquera en
particulier la réparation de la régression introduite à la version 2.6.3 dans
le module &lt;strong&gt;distutils&lt;/strong&gt; qui empêchait l'installation de modules à
l'aide de l'outil &lt;em&gt;setuptools&lt;/em&gt;.&lt;br /&gt;
On retrouve aussi une correction au module intégré (&lt;em&gt;Builtin&lt;/em&gt;)
&lt;strong&gt;marshal&lt;/strong&gt;. Pour mémoire ce module assure la sérialisation (et la
dé-sérialisation) de valeur python au format binaire (3), son usage est réservé
à des situations très particulières, les modules &lt;strong&gt;pickle&lt;/strong&gt; et
&lt;strong&gt;shelves&lt;/strong&gt; étant bien plus efficaces et adaptés pour la
persistance de données.&lt;br /&gt;
C'est donc à une nouvelle version utile bien que sans surprise à laquelle nous
avons affaire. La mise à jour est évidement recommandée, ne serait-ce que pour
pouvoir à nouveau exploiter pleinement le Python Packages Index (4).&lt;/p&gt;
&lt;p&gt;(1) : &lt;a href=&quot;http://python.org/download/releases/2.6.4/&quot; hreflang=&quot;en&quot;&gt;http://python.org/download/releases/2.6.4/&lt;/a&gt;&lt;br /&gt;
(2) : &lt;a href=&quot;http://python.org/download/releases/2.6.4/NEWS.txt&quot; hreflang=&quot;en&quot;&gt;http://python.org/download/releases/2.6.4/NEWS.txt&lt;/a&gt;&lt;br /&gt;
(3) : &lt;a href=&quot;http://docs.python.org/library/marshal.html&quot; hreflang=&quot;en&quot;&gt;http://docs.python.org/library/marshal.html&lt;/a&gt;&lt;br /&gt;
(4) : &lt;a href=&quot;http://pypi.python.org/pypi&quot; hreflang=&quot;en&quot;&gt;http://pypi.python.org/pypi&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>PyMOTW : shelve</title>
    <link>http://blog.cafeaumiel.com/post/2009/08/http%3A//blog.cafeaumiel.com/pages/PyMOTW-Shelve</link>
    <guid isPermaLink="false">urn:md5:fd040baa8e44db9f78f56204e8955e53</guid>
    <pubDate>Wed, 19 Aug 2009 11:37:00 +0200</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>PyMOTW</category>
        <category>PyMOTW</category><category>Python</category>    
    <description>    &lt;p&gt;Une nouvelle traduction d'un des PyMOTW de Doug Hellmann est en ligne. C'est
le module &lt;em&gt;shelve&lt;/em&gt; qui est à l'honneur cette fois. Comme d'habitude la
page est accessible par le menue à droite.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/pages/PyMOTW-Shelve&quot; hreflang=&quot;fr&quot;&gt;Le module shelve sur Café au
Miel.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.doughellmann.com/PyMOTW/shelve/index.html&quot; hreflang=&quot;en&quot;&gt;Le PyMOTW original par Doug Hellmann.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Python 3.1.1, Documentation</title>
    <link>http://blog.cafeaumiel.com/post/2009/08/Python-3.1.1%2C-Documentation</link>
    <guid isPermaLink="false">urn:md5:f56613697e7fd82928c61bf4b42fd116</guid>
    <pubDate>Tue, 18 Aug 2009 14:40:00 +0200</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>Doc</category>
        <category>Documentation</category><category>Python</category>    
    <description>    &lt;p&gt;Le 13 Août dernier sortait la première version de maintenance de Python
3.1 ! Cette version n'apporte pas de fonctionnalité mais corrige de
nombreux bugs. Bien qu'aucun ne soit particulièrement méchant, cette version
stabilise Python 3.1 en corrigeant des crashs de l'interpréteur lorsque
certaines fonctions (en particulier la fonction &lt;em&gt;dir()&lt;/em&gt;) étaient
appelées et quelques &lt;em&gt;segfaults&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Par ailleurs il ne vous a sans doute pas échappé qu'il y a 2 semaines de ça
http://www.python.org est resté hors ligne pendant 2 longs jours. C'est un
problème de disques durs sur la machine hébergeant le serveur http de plusieurs
sites python.org (dont www, docs, planet..) mais aussi de jython.org et le
dépôt svn de python qui a engendré la coupure. Bien que cette panne ait été
(heureusement) réparée depuis, la documentation de python a entre autre été
inaccessible pendant quels temps. Chose &amp;quot;amusante&amp;quot; comme il est nécessaire à
l'installateur de la documentation (&lt;em&gt;make html&lt;/em&gt;) de récupérer
l'utilitaire sphinx depuis svn.python.org pour compiler la documentation html à
partir des sources ReStructured Text, il ne m'était pas possible de la
construire et de la consulter en locale, alors que je les avais sur mon disque
dur...&lt;/p&gt;
&lt;p&gt;C'est pour ces raisons que j'ai décidé d'héberger la documentation, et les
sources, de Python 3.1.1 au cas où &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; Tout cela est donc accessible sur
&lt;a href=&quot;http://blog.cafeaumiel.com/pages/Python-3.1.1&quot; hreflang=&quot;fr&quot;&gt;cette page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Liens :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://python.org/download/releases/3.1.1/&quot; hreflang=&quot;en&quot;&gt;L'annonce de la sortie de Python 3.1.1 et les __liens de
téléchargement__&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://svn.python.org/projects/python/tags/r311/Misc/NEWS&quot; hreflang=&quot;en&quot;&gt;Le changelog de la version 3.1.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://aspn.activestate.com/ASPN/Mail/Message/python-dev/3738097&quot; hreflang=&quot;en&quot;&gt;Le message de A.M. Kuchling annonçant la fin de la panne&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.python.org/3.1/&quot; hreflang=&quot;en&quot;&gt;La documentation de
Python 3.1.1 sur python.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/pages/Python-3.1.1&quot; hreflang=&quot;fr&quot;&gt;La page de téléchargement sur
Café au Miel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Mise à jour du PyMOTW sur pickle</title>
    <link>http://blog.cafeaumiel.com/post/2009/08/Mise-%C3%A0-jour-du-PyMOTW-sur-pickle</link>
    <guid isPermaLink="false">urn:md5:c9c0262575aae51e9ca271ae0e5bd2f2</guid>
    <pubDate>Tue, 18 Aug 2009 10:20:00 +0200</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>PyMOTW</category>
            
    <description>    &lt;p&gt;Le PyMOTW concernant pickle a été complété par mes soins afin de documenter
un changement apparut avec la version 3 de Python. Ce PyMOTW est accessible
&lt;a href=&quot;http://blog.cafeaumiel.com/pages/PyMOTW-pickle&quot; hreflang=&quot;fr&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>PyMOTW : pickle and cPickle</title>
    <link>http://blog.cafeaumiel.com/post/2009/08/PyMOTW-%3A-pickle-and-cPickle</link>
    <guid isPermaLink="false">urn:md5:3b1342b6202eb00d111079afe69af889</guid>
    <pubDate>Tue, 04 Aug 2009 16:31:00 +0200</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>PyMOTW</category>
        <category>PyMOTW</category><category>Python</category>    
    <description>    &lt;p&gt;J'ai été pas mal occupé ces derniers temps et traduire un PyMOTW prend plus
de temps que prévu. Néanmoins, celui traitant de pickle est en ligne comme
promis. Le suivant sera le PyMOTW sur le module shelve.&lt;/p&gt;
&lt;p&gt;Comme d'habitude il est accessible à partir du menu à votre droite.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/pages/PyMOTW-pickle&quot; hreflang=&quot;fr&quot;&gt;PyMOTW : pickle and
cPickle&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>PyMOTW : string</title>
    <link>http://blog.cafeaumiel.com/post/2009/07/PyMOTW-%3A-string</link>
    <guid isPermaLink="false">urn:md5:d4cb31b6272f49a4efa41b3ddbe3efc8</guid>
    <pubDate>Wed, 29 Jul 2009 11:41:00 +0200</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>PyMOTW</category>
        <category>PyMOTW</category><category>Python</category>    
    <description>    &lt;p&gt;Nouvelle traduction d'un PyMOTW&lt;br /&gt;
C'est le module string qui est traité aujourd'hui. La page est accessible par
le menu &lt;strong&gt;Pages&lt;/strong&gt; à droite.&lt;br /&gt;
D'autres devraient suivre cette semaine, le prochain PyMOTW traduit sera celui
concernant pickle.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/pages/PyMOTW-string&quot; hreflang=&quot;fr&quot;&gt;PyMOTW : string&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>sfFirePHPLoggerPlugin : the come back</title>
    <link>http://blog.cafeaumiel.com/post/2008/07/A-symfony-plugin-%3A-sfFirePHPLoggerPlugin</link>
    <guid isPermaLink="false">urn:md5:eade78cc4fb1c05abfb11226938e91c5</guid>
    <pubDate>Sun, 26 Jul 2009 17:33:00 +0200</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>Café au Miel</category>
        <category>php</category><category>symfony</category>    
    <description>&lt;p&gt;Months ago I published a plugin for the well know php web framework symfony.
Today I've stopped to use php but, as people asked me to put online again the
plugin, I repost here the original page and reupload the archive. If someone is
willing to take over the plugin, I'll give it to him with pleasure.&lt;br /&gt;
Note that the plugin was developed for symfony 1.1 but should work in 1.2.
Furthermore, I don't support this plugin any more.&lt;br /&gt;&lt;/p&gt;    &lt;h2&gt;Original message&lt;/h2&gt;
&lt;p&gt;Let me introduce my first symfony plugin : sfFirePHPLoggerPlugin. Working
with symfony and Firebug would have never been so easy ! It allows you to
display in a clean, readable and structured way anything you want from your PHP
code, and even the symfony built-in events through a sfLogger class.&lt;br /&gt;&lt;/p&gt;
&lt;h3&gt;Requirement&lt;/h3&gt;
&lt;p&gt;Firefox : You'll need a version &amp;gt; 2 and up Firebug : Install the version
1.1 if you run Firefox 2+, or the version 1.2 if you run Firefox 3+ and up
FirePHP : Download the FirePHP extension for Firefox&lt;/p&gt;
&lt;h3&gt;Getting started&lt;/h3&gt;
&lt;p&gt;Extract the plugin in your project plugin's directory, as for any symfony
plugin.&lt;/p&gt;
&lt;p&gt;Then merge the following lines to your application factories.yml file
(located in path/to/your/project/apps/myApps/config/factories.yml) :&lt;/p&gt;
&lt;pre&gt;
dev:
  logger:
    class: sfAggregateLogger
    param:
      level: debug
      loggers:
        sf_FirePHP:
          class: sfFirePHPLogger
          param:
            level: debug
&lt;/pre&gt;
&lt;p&gt;Clear your project cache :&lt;/p&gt;
&lt;pre&gt;
$ path/to/your/project/symfony cc
&lt;/pre&gt;
&lt;p&gt;And you're done, you should have now something like :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/public/sfFirePHPLoggerPlugin/sfFirePHPLoggerPlugin_screenshot.png&quot;&gt;&lt;img src=&quot;http://blog.cafeaumiel.com/public/sfFirePHPLoggerPlugin/.sfFirePHPLoggerPlugin_screenshot_m.jpg&quot; alt=&quot;sfFirePHPLoggerPlugin_screenshot.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;sfFirePHPLoggerPlugin_screenshot.png, juil 2008&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Logging more than messages&lt;/h3&gt;
&lt;p&gt;You can of course access the FirePHP class like any other class in symfony.
So all the examples on firephp.org would work in the same way &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can now log and display in a neat way your arrays, your objects and much
more !&lt;/p&gt;
&lt;pre&gt;

FirePHP::getInstance(true)-&amp;gt;dump($myObject);
FirePHP::getInstance(true)-&amp;gt;dump(array('key' =&amp;gt; 'value', 'anotherkey' =&amp;gt; 'anothervalue');
&lt;/pre&gt;
&lt;h3&gt;Security&lt;/h3&gt;
&lt;p&gt;As firePHP can display sensible data about the inner mechanisms of your
website, I strongly advise you to never use it in an other environment than
development.&lt;/p&gt;
&lt;h3&gt;Download&lt;/h3&gt;
&lt;pre&gt;
   * &lt;a href=&quot;http://blog.cafeaumiel.com/public/sfFirePHPLoggerPlugin/sfFirePHPLoggerPlugin-0.2.zip&quot;&gt;sfFirePHPLoggerPlugin-0.2.zipsfFirePHPLoggerPlugin-0.2.zip&lt;/a&gt;
   * &lt;a href=&quot;http://blog.cafeaumiel.com/public/sfFirePHPLoggerPlugin/sfFirePHPLoggerPlugin-0.2.tar.gz&quot;&gt;sfFirePHPLoggerPlugin-0.2.tar.gzsfFirePHPLoggerPlugin-0.2.tar.gz&lt;/a&gt;
&lt;/pre&gt;
&lt;h3&gt;Links&lt;/h3&gt;
&lt;pre&gt;
   * &lt;a href=&quot;http://www.symfony-project.org/book/1_1/16-Application-Management-Tools#chapter_16_logging&quot; hreflang=&quot;en&quot;&gt;more about how to log your message in symfony&lt;/a&gt;
   * &lt;a href=&quot;http://www.firephp.org/&quot; hreflang=&quot;en&quot;&gt;the FirePHP official documentation&lt;/a&gt;
   * &lt;a href=&quot;http://getfirebug.com/&quot; hreflang=&quot;en&quot;&gt;the FireBug Documentation&lt;/a&gt;
&lt;/pre&gt;
&lt;h3&gt;Feedback&lt;/h3&gt;
&lt;p&gt;Feel free to comment here with your opinion and your remarks.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Traduction, PyMOTW : csv</title>
    <link>http://blog.cafeaumiel.com/post/2009/07/Traduction-PyMOTW-%3A-csv</link>
    <guid isPermaLink="false">urn:md5:e64d70f9e8f7451250554a504268db0b</guid>
    <pubDate>Fri, 10 Jul 2009 13:50:00 +0200</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>PyMOTW</category>
        <category>PyMOTW</category><category>Python</category>    
    <description>    &lt;p&gt;La première traduction des Python Module Of The Week est en ligne !&lt;br /&gt;
C'est le module csv qui ouvre le bal. J'en fais une utilisation immodérée et
c'est pour cette raison que j'ai commencé par lui. La version de Python à
laquelle il est fait référence est la version 2.5. Il n'y a cependant pas
différence avec la version 2.6. Il n'y en aura sans doute pas non plus avec la
version 2.7. J'ai ajouté quelques remarques concernant la branche 3 de Python,
notamment sur le support de l'Unicode.&lt;br /&gt;
La page sera accessible par le menu, dans la section &lt;em&gt;Pages&lt;/em&gt;.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.cafeaumiel.com/pages/PyMOTW-csv&quot; hreflang=&quot;fr&quot;&gt;PyMOTW : csv&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Deux livres pour Python 3</title>
    <link>http://blog.cafeaumiel.com/post/2009/07/Deux-livres-pour-Python-3</link>
    <guid isPermaLink="false">urn:md5:669bc3748f77fce44b7a6dab14d564db</guid>
    <pubDate>Thu, 09 Jul 2009 18:33:00 +0200</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>Doc</category>
        <category>Livre</category><category>Python</category>    
    <description>&lt;p&gt;Python 3 est une refonte majeure du langage. Pourtant, il y avait jusqu'à
récemment assez peu de documentation centrée sur cette version. Deux ouvrages
viennent palier ce manque : &lt;strong&gt;A Byte of Python&lt;/strong&gt; et
&lt;strong&gt;Dive Into Python3&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Pas de traduction d'un PyMOTW cette fois, j'ai menti ! Bien que la
traduction ait progressé il me reste encore pas mal de travail de relecture et
de mise en forme, les PyMOTW étant au format reStructured Text. C'est donc un
simple billet sur Python et ses sources de documentation que je
publie.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Python 3.1 a été publié il y a quelques semaines de ça, un peu plus de 6
mois après la version 3.0 au lieu des 18 à 24 auxquels l'équipe de
développement nous avait habitué. Cette version majeure de la branche 3 du
langage apporte son lot de nouveautés par rapport au révolutionnaire Python
3.0. On voit ainsi l'apparition des dictionnaires ordonnés et l'amélioration
des performances de la bibliothèque d'entrée/sortie, réécrite pour l'occasion
en C.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Le rythme des nouvelles versions pour la branche 3 devrait à présent
ralentir, laissant à la communauté le temps de reconstituer le fond
documentaire, qui pour la branche 2 est particulièrement riche. Deux ouvrages
qui m'ont accompagné durant mon apprentissage de Python 2, du moins leur
version en ligne, sont ainsi &amp;quot;portés&amp;quot; par leur auteur respectif à Python
3 : &lt;em&gt;&lt;a href=&quot;http://diveintopython3.org/&quot; hreflang=&quot;en&quot;&gt;Dive Into
Python3&lt;/a&gt;&lt;/em&gt; et &lt;em&gt;&lt;a href=&quot;http://www.swaroopch.com/notes/Python&quot; hreflang=&quot;en&quot;&gt;A Byte of Python&lt;/a&gt;&lt;/em&gt;.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Mark Pilgrim, l'auteur du Dive Into Python original, a bien entamé le
travail. C'est, à l'heure où j'écris ces lignes, 13 des 19 chapitres finaux du
livre qui sont terminés. Bien qu'il manque encore le chapitre sur la nouvelle
interface d'entrée-sortie, il s'agit déjà d'une ressource
indispensable.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;A Byte of Python est quand a lui déjà terminé et il est disponible sur la
page internet de son auteur, Swarrop C.H.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;La documentation officielle de Python, déjà bien fournie, se voit donc
compléter par deux précieux guides pour les débutants comme pour les
autres.&lt;br /&gt;&lt;/p&gt;
&lt;h5&gt;Liens :&lt;/h5&gt;
&lt;p&gt;- La page de Mark Pilgrim : &lt;a href=&quot;http://diveintomark.org/&quot; hreflang=&quot;en&quot;&gt;http://diveintomark.org/&lt;/a&gt;&lt;br /&gt;
- La version en ligne de &lt;em&gt;Dive Into Python&lt;/em&gt; pour Python 2 :
&lt;a href=&quot;http://diveintopython.org/&quot; hreflang=&quot;en&quot;&gt;http://diveintopython.org/&lt;/a&gt;, et une traduction en français :
&lt;a href=&quot;http://diveintopython.adrahon.org/&quot; hreflang=&quot;fr&quot;&gt;http://diveintopython.adrahon.org/&lt;/a&gt;&lt;br /&gt;
- Dive Into Python3 : &lt;a href=&quot;http://diveintopython3.org&quot; hreflang=&quot;en&quot;&gt;http://diveintopython3.org&lt;/a&gt;&lt;br /&gt;
- La page de Swaroop C.H. : &lt;a href=&quot;http://www.swaroopch.com/&quot; hreflang=&quot;en&quot;&gt;http://www.swaroopch.com/&lt;/a&gt;&lt;br /&gt;
- La version en ligne de &lt;em&gt;A Byte of Python&lt;/em&gt;: &lt;a href=&quot;http://www.swaroopch.com/notes/Python&quot; hreflang=&quot;en&quot;&gt;http://www.swaroopch.com/notes/Python&lt;/a&gt;. Les deux déclinaisons du livre
pour Python 2 et Python 3 sont disponibles à cette adresse. Aucune traduction
en français n'est encore disponible pour ces ouvrages. - La documentation
officielle de Python : &lt;a href=&quot;http://www.python.org/doc/3.1/&quot; hreflang=&quot;en&quot;&gt;http://www.python.org/doc/3.1/&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Réouverture !</title>
    <link>http://blog.cafeaumiel.com/post/2009/07/Reouverture</link>
    <guid isPermaLink="false">urn:md5:f697a093e4ae9365f2068c5d05e0b0bc</guid>
    <pubDate>Sun, 05 Jul 2009 19:43:00 +0200</pubDate>
    <dc:creator>Thomas</dc:creator>
        <category>Café au Miel</category>
        <category>cafeaumiel</category><category>myself</category>    
    <description>    &lt;p&gt;Alors !&lt;br /&gt;
Cela fait presque un an que je n'ai rien posté, et presque autant que le blog
était hors ligne. J'étais super occupé, un agenda de ministre et tout et tout,
mais bon. Maintenant je vais tenter de tenir, un peu, à jour CaféauMiel. J'ai
même déjà trouvé mon cheval de bataille : les &lt;a href=&quot;http://www.doughellmann.com/PyMOTW/&quot; hreflang=&quot;en&quot;&gt;PyMOTW&lt;/a&gt; de &lt;a href=&quot;http://blog.doughellmann.com/&quot; hreflang=&quot;en&quot;&gt;Doug Hellmann&lt;/a&gt;.&lt;br /&gt;
Sans doute un peu de contenu personnel viendra enrichir le blog, mais plus
tard. Je vais essayer de prendre l'habitude de publier un billet (une
traduction en l'occurrence) par semaine minimum.&lt;br /&gt;
A bientôt donc &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>