<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://u-classroom.net/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/">
<channel>
  <title>U Classroom - python</title>
  <link>http://u-classroom.net/</link>
  <description>Un blog collectif, orienté vers l'apprentissage et l'enseignement collaboratif et communautaire de techniques applicables aux unix libres</description>
  <language>fr</language>
  <pubDate>Wed, 02 Jul 2008 07:44:07 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Introduction à PyGTK</title>
    <link>http://u-classroom.net/post/2008/01/28/Introduction-a-PyGTK</link>
    <guid isPermaLink="false">urn:md5:9cf60db5feaed1545bcac31b45176a88</guid>
    <pubDate>Mon, 28 Jan 2008 12:32:00 +0100</pubDate>
    <dc:creator>gpocentek</dc:creator>
        <category>classroom</category><category>gtk</category><category>Planet</category><category>python</category>    
    <description>    &lt;p&gt;On continue avec python pour la prochaine session de la classroom, en abordant l'utilisation du framework GTK.&lt;/p&gt;

&lt;p&gt;L'introduction à PyGTK se passera le &lt;b&gt;lundi 04 février&lt;/b&gt; à &lt;b&gt;20h00&lt;/b&gt; (heure métropolitaine, 19H00 UTC), sur le canal &lt;b&gt;#u-classroom&lt;/b&gt; de Freenode.&lt;/p&gt;

&lt;p&gt;Mieux vaut avoir fréquenté python pour suivre cette session. Si vous n'étiez pas là aux cours précédents, vous pouvez vous rattraper en jetant un oeil &lt;a href=&quot;http://u-classroom.net/cours/&quot;&gt;aux cours 'papier'&lt;/a&gt;. N'hésitez pas à venir nous rendre visite sur le chan avant la session si vous avez des questions.&lt;/p&gt;

&lt;p&gt;Pour éviter d'oublier la session, inscrivez-vous à la mailing liste &lt;a href=&quot;http://effraie.org/mailman/listinfo/classroom-annonces &quot;&gt;u-classroom annonces&lt;/a&gt;, un message de rappel sera envoyé ;)&lt;/p&gt;

&lt;p&gt;A lundi !&lt;/a&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Le retour du Python</title>
    <link>http://u-classroom.net/post/2008/01/04/Le-retour-du-Python</link>
    <guid isPermaLink="false">urn:md5:f4b43ae8cc983ac32e5a9aefbd03eef7</guid>
    <pubDate>Fri, 04 Jan 2008 19:50:00 +0100</pubDate>
    <dc:creator>gpocentek</dc:creator>
        <category>classroom</category><category>Planet</category><category>python</category>    
    <description>    &lt;p&gt;C'est parti pour une nouvelle session classroom sur Python ! On abordera cette fois ci la programmation orientée objet, ce qui nous permettra de découvrir pygtk lors de la session suivante.&lt;/p&gt;
&lt;p&gt;Ca se passera le 21 Janvier à 20H00 (heure métropolitaine, 19H00 UTC) sur le canal irc #ubuntu-fr-classroom (réseau freenode).&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Python : Retard, retard...</title>
    <link>http://u-classroom.net/post/2007/12/09/Python-%3A-Retard-retard</link>
    <guid isPermaLink="false">urn:md5:78240326f1476adf4a4a20f86ed100d6</guid>
    <pubDate>Sun, 09 Dec 2007 18:39:00 +0100</pubDate>
    <dc:creator>gpocentek</dc:creator>
        <category>classroom</category><category>python</category><category>trop_de_taff</category>    
    <description>    &lt;p&gt;Message rapide aux personnes qui ont suivi les deux premiers cours python, et qui attendent le suivant : désolé du retard que ça prend mais les dernières semaines ont été plutôt chargés aux taffs (au pluriel ? oui, &lt;a href=&quot;http://ulteo.com&quot;&gt;un&lt;/a&gt; plus &lt;a href=&quot;http://linutop.com&quot;&gt;un&lt;/a&gt; ça fait deux).&lt;/p&gt;

&lt;p&gt;Ca devrait commencer à se calmer et je me bouge un peu pour préparer la suite (programmation orientée objet et pygtk).&lt;/p&gt;

&lt;p&gt;Si la classroom vous manque et que vous vous sentez l'envie de partager vos connaissances, venez nous en parler sur #ubuntu-fr-classroom sur le réseau irc &lt;a href=&quot;http://freenode.net&quot;&gt;freenode&lt;/a&gt;, on organisera ça !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Python Classroom - 2ème épisode</title>
    <link>http://u-classroom.net/post/2007/10/20/Python-Classroom-2eme-episode</link>
    <guid isPermaLink="false">urn:md5:4d3b1ce4b63d77807506075f324fe6b6</guid>
    <pubDate>Sat, 20 Oct 2007 10:25:00 +0200</pubDate>
    <dc:creator>gpocentek</dc:creator>
        <category>classroom</category><category>Planet</category><category>python</category>    
    <description>    &lt;p&gt;Les 2 heures sont vites passées lors de la dernière session sur Python... et beaucoup de questions sont restées en suspens.&lt;/p&gt;

&lt;p&gt;La prochaine session classroom sur Python sera en partie consacrée à répondre aux interrogations levées lors de la précédente session, en entrant un peu plus dans le détail sur les sujets déjà abordés. On verra aussi quelques nouveautés bien sûr !&lt;/p&gt;

&lt;p&gt;Ca se passera sur le canal irc &lt;em&gt;#ubuntu-fr-classroom&lt;/em&gt; du réseau freenode, &lt;b&gt;mardi 23 octobre&lt;/b&gt; à &lt;b&gt;20H&lt;/b&gt; heure française (métroplitaine, 18H00 UTC).&lt;/p&gt;

&lt;p&gt;Le résumé de la première session &lt;a href=&quot;http://doc.ubuntu-fr.org/projets/ecole/python/1&quot;&gt;est en ligne&lt;/a&gt;. N'hésitez pas à embarquer vos questions avec vous mardi, ou à passer sur le chan d'ici là !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Sessions Python</title>
    <link>http://u-classroom.net/post/2007/10/11/Sessions-Python</link>
    <guid isPermaLink="false">urn:md5:a5a0686fd56802798e99b5e5ad20a463</guid>
    <pubDate>Thu, 11 Oct 2007 21:55:00 +0200</pubDate>
    <dc:creator>gpocentek</dc:creator>
        <category>classroom</category><category>Planet</category><category>python</category>    
    <description>    &lt;p&gt;Une nouvelle session de la classroom est prévue ce &lt;b&gt;mardi 16 octobre 2007&lt;/b&gt; à &lt;b&gt;20h&lt;/b&gt; (heure parisienne).&lt;/p&gt;

&lt;p&gt;On y abordera le langage &lt;a href=&quot;http://python.org&quot;&gt;python&lt;/a&gt; (les débutants en programmation sont les bienvenus), et d'autres sessions viendront compléter ce premier cours par la suite.&lt;/p&gt;

&lt;p&gt;A mardi !&lt;/p&gt;

&lt;p&gt;Edit : ça se passe sur le canal &lt;em&gt;#ubuntu-fr-classroom&lt;/em&gt; sur le réseau irc freenode (merci à KiKouN pour le rappel ;) )&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Python pour dynamiser vos sites (épisode IV - un nouvel espoir)</title>
    <link>http://u-classroom.net/post/2007/05/25/Python-pour-dynamiser-vos-sites</link>
    <guid isPermaLink="false">urn:md5:9dfd63e127ae2ceecf7021d4908abcbd</guid>
    <pubDate>Fri, 25 May 2007 20:46:00 +0200</pubDate>
    <dc:creator>gpocentek</dc:creator>
        <category>apache</category><category>mod_python</category><category>python</category>    
    <description>&lt;p&gt;Chez Ubuntu on aime bien python, et on aime bien faire des petits scripts qui génèrent des pages web (pour des stats par exemple). Et on a même la chance de pouvoir créer des pages dynamiques avec python&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;J'ai eu un peu de mal à trouver une documentation pas trop mal faite qui donne les bases de l'utilisation de &lt;a href=&quot;http://www.mo&quot; dpython.org=&quot;&quot;&gt;mod_python&lt;/a&gt; de manière simple et efficace. Essayons de remédier à ça.&lt;/p&gt;
&lt;h3&gt;Notes à propos de ce document&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Mieux vaut connaître un minimum python pour le suivre&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;pour faciliter les choses, on suppose que les fichiers créés le sont à la racine du serveur web.&lt;/li&gt;
&lt;/ul&gt;    &lt;h3&gt;Installation&lt;/h3&gt;
&lt;p&gt;Sous debian/ubuntu &amp;amp; cie, rien de plus simple&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;sudo apt-get install libapache2-mod-python&lt;/pre&gt;
&lt;h3&gt;PSP ou Publisher Handler ?&lt;/h3&gt;
&lt;p&gt;&lt;tt&gt;mod_python&lt;/tt&gt; propose deux types de fonctionnement&amp;nbsp;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PSP&lt;/strong&gt; – Python Server Pages – propose le même mode de fonctionnement que (par exemple) PHP. Du code python est inséré entre des balises &lt;code&gt;&amp;lt;%&lt;/code&gt; et &lt;code&gt;%&amp;gt;&lt;/code&gt;, pour générer une page contenant du texte HTML. Nous n'en parlerons pas ici&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Publisher Handler&lt;/strong&gt; propose une méthode totallement différente, et plutôt sympathique à utiliser :)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Diving in&lt;/h3&gt;
&lt;h4&gt;htaccess&lt;/h4&gt;
&lt;p&gt;La première chose à faire pour utiliser le Publisher Handler est de créer un fichier &lt;tt&gt;.htaccess&lt;/tt&gt; (ou d'éditer directement la configuration d'apache) afin de donner certaines directives. Ce fichier ressemblera à&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;AddHandler mod_python .py&lt;br /&gt;PythonHandler mod_python.publisher&lt;br /&gt;PythonDebug On &lt;/pre&gt;
&lt;p&gt;Les fichiers avec extension &lt;tt&gt;.py&lt;/tt&gt; seront donc traités par apache comme des fichiers liés à mod_python. Le mode débogage n'est pas nécessaire (normalement) sur des pages en production, mais est presque indispensable pendant la phase de développement.&lt;/p&gt;
&lt;h4&gt;Script - étape 1&lt;/h4&gt;
&lt;p&gt;Créons un script &lt;tt&gt;script.py&lt;/tt&gt; avec ces quelques lignes&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;from mod_python import apache&lt;br /&gt;&lt;br /&gt;def index(req):&lt;br /&gt;        return &quot;&amp;lt;h2&amp;gt;hello world&amp;lt;/h2&amp;gt;&quot;&lt;/pre&gt;
&lt;p&gt;Rendez-vous sur &lt;tt&gt;&lt;a class=&quot;linkification-ext&quot; href=&quot;http://localhost/script&quot; title=&quot;Linkification: http://localhost/script&quot;&gt;http://localhost/script&lt;/a&gt;&lt;/tt&gt;, et admirez le résultat&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;La première ligne du script parle d'elle même. La fonction &lt;tt&gt;index&lt;/tt&gt; est appelée lors de l'ouverture de la page web, et la chaîne de caractères qu'elle retourne est le contenu de la page. Mais dans cet exemple le texte est traité comme tel, c'est-à-dire non interprété. Pour remédier à ça, le script doit être transformé en&amp;nbsp;:&lt;/p&gt;
&lt;h4&gt;Script - étape 2&lt;/h4&gt;
&lt;pre&gt;from mod_python import apache&lt;br /&gt;&lt;br /&gt;def index(req):&lt;br /&gt;        req.content_type = &quot;text/html; charset=utf-8&quot;&lt;br /&gt;        return &quot;&amp;lt;h2&amp;gt;hello world&amp;lt;/h2&amp;gt;&quot;&lt;/pre&gt;
&lt;p&gt;Le texte retourné sera maintenant traité comme de l'html.&lt;/p&gt;
&lt;h4&gt;Script - étape 3&lt;/h4&gt;
&lt;p&gt;Passons à l'étape suivante avec un exemple de traitement de formulaire. Voici le code&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;from mod_python import apache&lt;br /&gt;&lt;br /&gt;def index(req):&lt;br /&gt;	req.content_type = &quot;text/html; charset=utf-8&quot;&lt;br /&gt;	return &quot;&quot;&quot;&amp;lt;html&amp;gt;&lt;br /&gt;  &amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form method=&quot;post&quot; action=&quot;http://u-classroom.net/post/2007/05/25/script/result&quot;&amp;gt;&lt;br /&gt;      Nom: &amp;lt;input type=&quot;text&quot; name=&quot;nom&quot;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;      Prenom: &amp;lt;input type=&quot;text&quot; name=&quot;prenom&quot;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;      &amp;lt;input type=&quot;submit&quot; value=&quot;go&quot;&amp;gt;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;  &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&quot;&quot;&quot;&lt;br /&gt;&lt;br /&gt;def result(req):&lt;br /&gt;	req.content_type = &quot;text/html; charset=utf-8&quot;&lt;br /&gt;	return &quot;Bonjour %s %s !&quot; % (req.form['prenom'], req.form['nom'])&lt;/pre&gt;
&lt;p&gt;Comme dans l'exemple précédent, la fonction &lt;tt&gt;index&lt;/tt&gt; est appelée lors de l'accès à la page &lt;tt&gt;&lt;a class=&quot;linkification-ext&quot; href=&quot;http://localhost/script&quot; title=&quot;Linkification: http://localhost/script&quot;&gt;http://localhost/script&lt;/a&gt;&lt;/tt&gt;. Lorsque le formulaire est validé, la page &lt;tt&gt;script/result&lt;/tt&gt; est appelée, qui correspond en fait à un appel à la fonction &lt;tt&gt;result&lt;/tt&gt; du script &lt;tt&gt;script.py&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;L'objet &lt;tt&gt;req&lt;/tt&gt; (la requête envoyée au serveur), possède un attribut &lt;tt&gt;form&lt;/tt&gt;, un dictionnaire qui contient toutes les données du formulaire validé &quot;name&quot; et &quot;value&quot;). Ceci fonctionne quelque soit la méthode d'envoi du formulaire utilisée (get ou post). Il ne reste plus qu'à traiter le formulaire comme bon vous semble et retourner la page html&lt;/p&gt;
&lt;p&gt;Bien évidemment, tous les modules et possibilités de python sont utilisables pour dynamiser vos pages web.&lt;/p&gt;
&lt;p&gt;Quelques liens utiles&amp;nbsp;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.modpython.org/&quot;&gt;http://www.modpython.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.modpython.org/live/current/doc-html/&quot;&gt;documentation mod_python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.onlamp.com/pub/a/python/2004/02/26/python_server_pages.html&quot;&gt;PSP [en]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Au prochain (éventuel) épisode, gestion des sessions et cookies...&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Jeudi 17 Mai : le packaging debian remonte sur scène</title>
    <link>http://u-classroom.net/post/2007/05/16/Jeudi-17-Mai-%3A-le-packaging-debian-remonte-sur-scene</link>
    <guid isPermaLink="false">urn:md5:aed49e4f27fc5c2373416c4676983a19</guid>
    <pubDate>Wed, 16 May 2007 05:01:00 +0200</pubDate>
    <dc:creator>gpocentek</dc:creator>
        <category>classroom</category><category>irc</category><category>packaging</category><category>patch</category><category>Planet</category><category>python</category><category>session</category><category>Ubuntu</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://blog.effraie.org&quot;&gt;Effraie&lt;/a&gt; l'a &lt;a href=&quot;http://suivi.ubuntu-fr.org/post/Prochain-cours%3A-Packaging-cas-particuliers&quot;&gt;annoncé&lt;/a&gt;, une nouvelle session de cours packaging aura lieu ce jeudi 17 Mai sur #ubuntu-fr-classroom.&lt;/p&gt;

&lt;p&gt;Cette session &amp;ndash; planifiée depuis longtemps &amp;ndash; s'attachera à des cas particuliers d'empaquetage&amp;nbsp;:
&lt;ul&gt;
  &lt;li&gt;logiciels en python ;&lt;/li&gt;
  &lt;li&gt;logiciels ne nécessitant pas de compilation ;&lt;/li&gt;
  &lt;li&gt;mise à jour de paquets ;&lt;/li&gt;
  &lt;li&gt;patcher des sources.&lt;/li&gt;
&lt;/ul&gt;

Ce sera l'occasion de revenir sur le rôle et la construction du fichier &lt;tt&gt;debian/rules&lt;/tt&gt; &amp;ndash; on a eu trop de questions là dessus sur IRC, je n'ai pas dû être très clair ;).&lt;/p&gt;

&lt;p&gt;Même si je suis un fan et fervent utilisateur de CDBS, le cours tiendra compte des utilisateurs de debhelper only &amp;ndash; mais franchement, CDBS c'est le bien.&lt;/p&gt;
&lt;p&gt;A jeudi sur IRC !&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>