<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>SkiToo.Org</title>
	<atom:link href="http://blog.skitoo.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.skitoo.org</link>
	<description>Tutoriaux Python, Ubuntu, Django, SVN, Eclipse...</description>
	<pubDate>Fri, 02 Jan 2009 08:55:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>fr</language>
			<item>
		<title>[Freelance] Statut Auto-entrepreneur</title>
		<link>http://blog.skitoo.org/2009/01/02/freelance-statut-auto-entrepreneur/</link>
		<comments>http://blog.skitoo.org/2009/01/02/freelance-statut-auto-entrepreneur/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 08:54:03 +0000</pubDate>
		<dc:creator>SkiT</dc:creator>
		
		<category><![CDATA[divers]]></category>

		<category><![CDATA[freelance]]></category>

		<guid isPermaLink="false">http://blog.skitoo.org/?p=76</guid>
		<description><![CDATA[Depuis hier, un nouveau statut d&#8217;indépendant existe : Auto-entrepreneur. Similaire à celui de la micro-entreprise mais avec des avantages non négligeables. En effet  avec ce régime, vos charges sociales sont indexées sur le chiffre d&#8217;affaire que vous réalisez. Si par exemple vous n&#8217;encaissez rien, vous ne payez rien ! Et pas de cotisations sociales à [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis hier, un nouveau statut d&#8217;indépendant existe : <strong>Auto-entrepreneur</strong>. Similaire à celui de la micro-entreprise mais avec des avantages non négligeables. En effet  avec ce régime, vos charges sociales sont indexées sur le chiffre d&#8217;affaire que vous réalisez. Si par exemple vous n&#8217;encaissez rien, vous ne payez rien ! Et pas de cotisations sociales à régulariser l&#8217;année suivante.</p>
<p>Autre avantage : le &#8220;versement libératoire de l&#8217;impôt sur le revenu&#8221;. Grâce à ceci, vous pouvez payer vos impôts sur votre activité chaque mois ou trimestre en même temps que vos charges sociales. En optant pour cela vous êtes aussi exonéré de la taxe professionnelle pendant les 3 premières années.</p>
<p>Un tel statut peut être intérréssant pour les personnes souhaitant se lancer en indépendant en parallèle d&#8217;une activité principale. Pour plus d&#8217;information je vous conseille de consulter <a title="Auto entrepreneur" href="http://www.lautoentrepreneur.fr/">le site officiel de ce nouveau statut</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.skitoo.org/2009/01/02/freelance-statut-auto-entrepreneur/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Skitoo] Renaissance</title>
		<link>http://blog.skitoo.org/2008/11/22/skitoo-renaissance/</link>
		<comments>http://blog.skitoo.org/2008/11/22/skitoo-renaissance/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 06:19:38 +0000</pubDate>
		<dc:creator>SkiT</dc:creator>
		
		<category><![CDATA[divers]]></category>

		<category><![CDATA[skitoo]]></category>

		<guid isPermaLink="false">http://blog.skitoo.org/?p=63</guid>
		<description><![CDATA[Après de longs mois d&#8217;absence sur ce blog je relance enfin son activité. Le design a été entièrement refait, tout cela à l&#8217;aide du logiciel libre The Gimp. Le moteur du blog a été laissé à wordpress mais les pages annexes ont pu être réalisé avec le framework web Django.
Un site très calme cette année [...]]]></description>
			<content:encoded><![CDATA[<p>Après de longs mois d&#8217;absence sur ce blog je relance enfin son activité. Le design a été entièrement refait, tout cela à l&#8217;aide du logiciel libre <a title="The Gimp" href="http://www.gimp.org">The Gimp</a>. Le moteur du blog a été laissé à wordpress mais les pages annexes ont pu être réalisé avec le framework web Django.</p>
<p>Un site très calme cette année par manque de temps. J&#8217;espère que l&#8217;année 2009, qui arrive déja à grand pas, sera un peu plus productive que cette année. Je souhaite continuer d&#8217;aborder des thèmes comme Python, Django, Pyxoo ou encore Flash sur lequel je me penche depuis peu dans mon cadre professionnel.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.skitoo.org/2008/11/22/skitoo-renaissance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Design Pattern] Singleton et Multiton en Python</title>
		<link>http://blog.skitoo.org/2008/01/15/design-pattern-singleton-et-multiton-en-python/</link>
		<comments>http://blog.skitoo.org/2008/01/15/design-pattern-singleton-et-multiton-en-python/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 19:43:31 +0000</pubDate>
		<dc:creator>SkiT</dc:creator>
		
		<category><![CDATA[design pattern]]></category>

		<category><![CDATA[tutoriel]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.skitoo.org/2008/01/15/design-pattern-singleton-et-multiton-en-python/</guid>
		<description><![CDATA[Pour le développement de Pyxoo je suis souvent confronté à la création de classes qui ne doivent proposer qu&#8217;une seule instance d&#8217;elles-même. La solution du Singleton semble bien évidemment la plus pertinente pour répondre à ce problème.
Malgré les différentes solutions trouvées sur la toile ici  ou là, un problème persiste en python : il [...]]]></description>
			<content:encoded><![CDATA[<p>Pour le développement de <a href="http://pyxoo.skitoo.org" title="Framework Pyxoo">Pyxoo</a> je suis souvent confronté à la création de classes qui ne doivent proposer qu&#8217;une seule instance d&#8217;elles-même. La solution du <strong>Singleton</strong> semble bien évidemment la plus pertinente pour répondre à ce problème.</p>
<p>Malgré les différentes solutions trouvées sur la toile <a href="http://wikipython.flibuste.net/moin.py/ProgrammationObjet">ici</a>  ou <a href="http://www.haypocalc.com/blog/index.php/2006/05/12/3-motifs-de-conception-et-python">là</a>, un problème persiste en python : il est impossible de rendre privé un contructeur de classe comme en java.</p>
<p>Pour celà, un petit hack existe :</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw1">class</span> MaClasse:<br />
&nbsp; &nbsp; __instance = <span class="kw2">None</span><br />
&nbsp; &nbsp; <span class="kw1">class</span> __PRIVATE:<span class="kw1">pass</span></p>
<p>&nbsp; &nbsp; @<span class="kw2">classmethod</span><br />
&nbsp; &nbsp; <span class="kw1">def</span> getInstance<span class="br0">&#40;</span>cls<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> cls.__instance <span class="kw1">is</span> <span class="kw2">None</span>: cls.__instance = MaClasse<span class="br0">&#40;</span>cls.__PRIVATE<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> cls.__instance</p>
<p>&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, privateAccess<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> privateAccess <span class="kw1">is</span> <span class="kw1">not</span> <span class="kw2">self</span>.__PRIVATE:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">raise</span> <span class="kw2">Exception</span><span class="br0">&#40;</span><span class="st0">&#8220;Contructeur privé&#8221;</span><span class="br0">&#41;</span></p>
<p><span class="co1">#Pour recuperer l&#8217;instance de la classe :</span><br />
o = MaClasse.<span class="me1">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</div>
<p>Nous venons de voir une manière simple de rendre privé le constructeur d&#8217;une classe et donc par la même occasion le design pattern <strong>Singleton</strong> qui, je le rappelle, fait partie de la famille &#8220;Création&#8221;.</p>
<p>Un avantage de cette méthode est la méthode statique <em>getInstance()</em> qui permet au premier coup d&#8217;oeil de comprendre qu&#8217;il s&#8217;agit d&#8217;un Singleton.</p>
<p>Un autre motif de conception peu connu mais néanmoins utile : le <strong>Multiton</strong>. Ce dernier est une sorte de singleton mais associé à une clé passée en paramètre de la méthode <em>getInstance()</em>.</p>
<p>Un exemple concret de multiton est <a href="http://pyxoo.skitoo.org/browser/project/trunk/src/Pyxoo/Model/locator.py" title="ModelLocator Framework Pyxoo">le ModelLocator implémenté dans la librairie Pyxoo</a>. Un ModelLocator est associé à un Plugin passé en paramètre.</p>
<p>Voici un autre exemple d&#8217;implémentation du design pattern Multiton :</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw1">class</span> MaClasse:<br />
&nbsp; &nbsp; __instances = <span class="kw2">dict</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="kw1">class</span> __PRIVATE:<span class="kw1">pass</span></p>
<p>&nbsp; &nbsp; @<span class="kw2">classmethod</span><br />
&nbsp; &nbsp; <span class="kw1">def</span> getInstance<span class="br0">&#40;</span>cls, unObjet<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> unObject <span class="kw1">not</span> <span class="kw1">in</span> cls.__instances:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cls.__instances<span class="br0">&#91;</span>unObjet<span class="br0">&#93;</span> = MaClasse<span class="br0">&#40;</span>cls.__PRIVATE<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> cls.__instances<span class="br0">&#91;</span>unObjet<span class="br0">&#93;</span></p>
<p>&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, privateAccess<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> privateAccess <span class="kw1">is</span> <span class="kw1">not</span> <span class="kw2">self</span>.__PRIVATE:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">raise</span> <span class="kw2">Exception</span><span class="br0">&#40;</span><span class="st0">&#8220;Contructeur privé&#8221;</span><span class="br0">&#41;</span></p>
<p><span class="co1">#Pour recuperer une instance de la classe</span></p>
<p>o1 = MaClasse.<span class="me1">getInstance</span><span class="br0">&#40;</span> <span class="st0">&#8220;A1&#8243;</span> <span class="br0">&#41;</span><br />
o2 = MaClasse.<span class="me1">getInstance</span><span class="br0">&#40;</span> <span class="st0">&#8220;A1&#8243;</span> <span class="br0">&#41;</span><br />
o3 = MaClasse.<span class="me1">getInstance</span><span class="br0">&#40;</span> <span class="st0">&#8220;A2&#8243;</span> <span class="br0">&#41;</span></p>
<p><span class="kw2">id</span><span class="br0">&#40;</span>o1<span class="br0">&#41;</span> == <span class="kw2">id</span><span class="br0">&#40;</span>o2<span class="br0">&#41;</span> <span class="co1">#retourne vrai</span><br />
<span class="kw2">id</span><span class="br0">&#40;</span>o1<span class="br0">&#41;</span> == <span class="kw2">id</span><span class="br0">&#40;</span>o3<span class="br0">&#41;</span> <span class="co1">#retourne faux </span><br />
&nbsp;</div>
</div>
<p>Une méthode statique <em>release()</em> peut souvent être utile dans les deux cas présentés ci-dessus. En effet, il peut être nécessaire de réinitialiser l&#8217;instance.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw1">class</span> MaClasse:<br />
&nbsp; &nbsp; __instance = <span class="kw2">None</span><br />
&nbsp; &nbsp; <span class="kw1">class</span> __PRIVATE:<span class="kw1">pass</span></p>
<p>&nbsp; &nbsp; @<span class="kw2">classmethod</span><br />
&nbsp; &nbsp; <span class="kw1">def</span> getInstance<span class="br0">&#40;</span>cls<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> cls.__instance <span class="kw1">is</span> <span class="kw2">None</span>:cls.__instance = MaClasse<span class="br0">&#40;</span>cls.__PRIVATE<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> cls.__instance</p>
<p>&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, privateAccess<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> privateAccess <span class="kw1">is</span> <span class="kw1">not</span> <span class="kw2">self</span>.__PRIVATE:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">raise</span> <span class="kw2">Exception</span><span class="br0">&#40;</span> <span class="st0">&#8220;Constructeur privé&#8221;</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; @<span class="kw2">classmethod</span><br />
&nbsp; &nbsp; <span class="kw1">def</span> release<span class="br0">&#40;</span>cls<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; cls.__instance = <span class="kw2">None</span></div>
</div>
<p>Comme vous pouvez le constater cette méthode réinitialise l&#8217;instance de la classe.</p>
<p>Voilà, c&#8217;est fini pour ce petit tutoriel, en espérant vous avoir été utile dans la compréhension de ces deux Design Pattern. <img src='http://blog.skitoo.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.skitoo.org/2008/01/15/design-pattern-singleton-et-multiton-en-python/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Publicité] &#8230; écologique et humanitaire</title>
		<link>http://blog.skitoo.org/2007/12/21/publicite-ecologique-et-humanitaire/</link>
		<comments>http://blog.skitoo.org/2007/12/21/publicite-ecologique-et-humanitaire/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 10:59:22 +0000</pubDate>
		<dc:creator>SkiT</dc:creator>
		
		<category><![CDATA[divers]]></category>

		<category><![CDATA[environnement]]></category>

		<category><![CDATA[humanitaire]]></category>

		<category><![CDATA[publicité]]></category>

		<guid isPermaLink="false">http://blog.skitoo.org/2007/12/21/publicite-ecologique-et-humanitaire/</guid>
		<description><![CDATA[Suite à lecture du dernier billet de David Larlet sur Biologeek,  j&#8217;ai pu découvrir le site d&#8217;une association permettant le financement de projets écologiques et humanitaires via la publicité. En effet l&#8217;association GoodAction propose, à qui dispose d&#8217;un site, de mettre en place un système de publicité innovant.
Il est courant de rencontrer sur certains [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.goodaction.org"><img src="http://blog.skitoo.org/wp-content/uploads/2007/12/goodaction.png" alt="GoodAction" /></a>Suite à lecture du <a href="http://www.biologeek.com/journal/index.php/good-action-la-publicite-ecologique-et-ethique" title="Biologeek.com">dernier billet de David Larlet sur Biologeek</a>,  j&#8217;ai pu découvrir le site d&#8217;une association permettant le financement de projets écologiques et humanitaires via la publicité. En effet l&#8217;<a href="http://www.goodaction.org/" title="Good Action">association GoodAction</a> propose, à qui dispose d&#8217;un site, de mettre en place un système de publicité innovant.</p>
<p align="left">Il est courant de rencontrer sur certains blogs, ou autres sites, des systèmes publicitaires proposés par des moteurs de recherche bien connu. Ces derniers permettant la plupart du temps de rémunérer le propriétaire du blog. GoodAction permet, via la publicité, de récolter des sommes d&#8217;argent et les reverse aux structures  associatives qui le souhaitent, afin de financer leurs projets humanitaires et  environnementaux.</p>
<p>Une preuve de leur  engagement est la transparence fiscale de leur action et la possibilité de consulter les comptes de l&#8217;association&#8230;</p>
<p>Ce système novateur risque fortement de voir le jour sur ce blog d&#8217;ici peu&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.skitoo.org/2007/12/21/publicite-ecologique-et-humanitaire/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Migration] Changement du moteur !</title>
		<link>http://blog.skitoo.org/2007/12/17/migration-changement-du-moteur/</link>
		<comments>http://blog.skitoo.org/2007/12/17/migration-changement-du-moteur/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 12:56:04 +0000</pubDate>
		<dc:creator>SkiT</dc:creator>
		
		<category><![CDATA[divers]]></category>

		<category><![CDATA[pyxoo]]></category>

		<category><![CDATA[migration]]></category>

		<guid isPermaLink="false">http://blog.skitoo.org/2007/12/17/migration-changement-du-moteur/</guid>
		<description><![CDATA[Après cette longue période d&#8217;absence sur ce blog, j&#8217;en profite pour faire un peu de ménage ! Ce blog étant depuis sa naissance propulsé par la version 1.2 de Dotclear, il était donc nécessaire de le faire évoluer un peu. Mais Dotclear 2 étant toujours au stade de la version Beta j&#8217;ai donc dû me [...]]]></description>
			<content:encoded><![CDATA[<p>Après cette longue période d&#8217;absence sur ce blog, j&#8217;en profite pour faire un peu de ménage ! Ce blog étant depuis sa naissance propulsé par la version 1.2 de Dotclear, il était donc nécessaire de le faire évoluer un peu. Mais <a href="http://www.dotclear.net/" title="Dotclear 2">Dotclear 2</a> étant toujours au stade de la version Beta j&#8217;ai donc dû me pencher sur d&#8217;autres solutions comme <a href="http://www.wordpress-fr.net/" title="Wordpress">Wordpress</a>. Après un bref  tour des fonctionnalités que proposait ce dernier, j&#8217;ai choisi de l&#8217;adopter.</p>
<p>Ce blog n&#8217;a pas seulement changé de moteur mais aussi d&#8217;hébergement et d&#8217;adresse : <a href="http://blog.skitoo.org" title="Skitoo.org">http://blog.skitoo.org</a>. En effet depuis peu je me suis procuré un serveur dédier héberger chez OVH. Celui-ci héberge déjà le Trac/Svn du projet <a href="http://pyxoo.skitoo.org">Pyxoo</a>. Ce projet a fortement avancé et en est au premiers tests d&#8217;intégration avec d&#8217;autre librairie tel que <a href="http://www.pygame.org" title="Pygame">Pygame</a> la fameuse librairie python permettant de développer du jeux vidéo.</p>
<p>Une des prochaines étape du projet devrait être la mise en place d&#8217;exemples de projets basés sur <a href="http://pyxoo.skitoo.org" title="Framework Pyxoo">le framework Pyxoo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.skitoo.org/2007/12/17/migration-changement-du-moteur/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Pyxoo] Librairie Python - Revision 2</title>
		<link>http://blog.skitoo.org/2007/08/11/pyxoo-librairie-python-revision-2/</link>
		<comments>http://blog.skitoo.org/2007/08/11/pyxoo-librairie-python-revision-2/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 08:54:13 +0000</pubDate>
		<dc:creator>SkiT</dc:creator>
		
		<category><![CDATA[pyxoo]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[librairie]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.skitoo.org/2007/08/11/pyxoo-librairie-python-revision-2/</guid>
		<description><![CDATA[Aujourd&#8217;hui sort la seconde révision de Pyxoo, un framework développé en Python, qui  est un portage de la librairie Pixlib.
Pour cette seconde révision, j&#8217;ai pu mettre en place le package de log :

LogEvent
ILogListener
Logger
LogLevel
PyxooDebugChannel
PyxooDebug
Stringifier
BasicStringifier
PyxooStringifier

Comme vous l&#8217;aurez sûrement compris, ce package propose un ensemble de classes permettant de logger et debugger. Tout ce là utilisant le [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui sort la seconde révision de Pyxoo, <a href="http://skitoo.org/blog/index.php/2007/07/29/24--pyxoo-librairie-python-revision-1" hreflang="fr">un framework développé en Python</a>, qui  est un portage de la librairie <strong>Pixlib</strong>.</p>
<p>Pour cette seconde révision, j&#8217;ai pu mettre en place le package de <strong>log</strong> :</p>
<ul>
<li>LogEvent</li>
<li>ILogListener</li>
<li>Logger</li>
<li>LogLevel</li>
<li>PyxooDebugChannel</li>
<li>PyxooDebug</li>
<li>Stringifier</li>
<li>BasicStringifier</li>
<li>PyxooStringifier</li>
</ul>
<p>Comme vous l&#8217;aurez sûrement compris, ce package propose un ensemble de classes permettant de logger et debugger. Tout ce là utilisant le système d&#8217;évènements typés et son EventBroadcaster proposé lors de <a href="http://skitoo.org/blog/index.php/2007/07/29/24--pyxoo-librairie-python-revision-1" hreflang="fr">la première révision de Pyxoo</a>.<br />
A l&#8217;image de ce que l&#8217;on peut retrouver en Java (Log4J), on retrouve le gestion de log par niveau : <strong>DEBUG</strong>, <strong>INFO</strong>, <strong>WARN</strong>, <strong>ERROR</strong>, <strong>FATAL</strong>.</p>
<p>Je vous rappelle l&#8217;adresse permettant de récupérer les sources via SVN : <a href="http://svn.pyxoo.skitoo.org/trunk/" hreflang="fr">http://svn.pyxoo.skitoo.org/trunk/</a></p>
<p>Comme toujours n&#8217;hésitez pas à faire un petit tour sur <a href="http://groups.google.fr/group/pyxoo?hl=fr" hreflang="fr">le groupe Pyxoo</a> pour faire partagés vos expériences, critiques et découvertes de bugs.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.skitoo.org/2007/08/11/pyxoo-librairie-python-revision-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Pyxoo] Petit exemple rapide d&#8217;utilisation de la classe EventBroadcaster</title>
		<link>http://blog.skitoo.org/2007/07/30/pyxoo-petit-exemple-d-utilisation-de-la-classe-eventbroadcaster/</link>
		<comments>http://blog.skitoo.org/2007/07/30/pyxoo-petit-exemple-d-utilisation-de-la-classe-eventbroadcaster/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 21:46:28 +0000</pubDate>
		<dc:creator>SkiT</dc:creator>
		
		<category><![CDATA[pyxoo]]></category>

		<category><![CDATA[tutoriel]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[librairie]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[tutotiel]]></category>

		<guid isPermaLink="false">http://blog.skitoo.org/2007/07/30/pyxoo-petit-exemple-rapide-dutilisation-de-la-classe-eventbroadcaster/</guid>
		<description><![CDATA[Afin de compléter mon précédent billet concernant Pyxoo je vous livre ici un premier exemple concernant l&#8217;utilisation de la classe EventBroadcaster.

from Pyxoo.events.broadcaster import EventBroadcaster
from Pyxoo.events.event import StringEvent
import sys
# création de listeners proposant une méthode onLog
class LogListener:
def onLog&#40;self, event&#41;:
raise NotImplementedError
class TextFileLogger&#40;LogListener&#41;:
def __init__&#40;self&#41;:
self.__file = open&#40;&#8220;mylogs.log&#8221;, &#8220;w+&#8221;&#41;
def onLog&#40;self, event&#41;:
self.__file.write&#40;event.getString&#40;&#41;+&#8220;\n&#8220;&#41;
class StdOutLogger&#40;LogListener&#41;:
def onLog&#40;self, event&#41;:
sys.stdout.write&#40;event.getString&#40;&#41;+&#8220;\n&#8220;&#41;
log1 = TextFileLogger&#40;&#41;
log2 = StdOutLogger&#40;&#41;
EVENT_TYPE = &#8220;onLog&#8221;
eventBroadcaster [...]]]></description>
			<content:encoded><![CDATA[<p>Afin de compléter <a href="http://skitoo.org/blog/index.php/2007/07/29/24--pyxoo-librairie-python-revision-1" hreflang="fr">mon précédent billet concernant Pyxoo</a> je vous livre ici un premier exemple concernant l&#8217;utilisation de la classe <strong>EventBroadcaster</strong>.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw1">from</span> Pyxoo.<span class="me1">events</span>.<span class="me1">broadcaster</span> <span class="kw1">import</span> EventBroadcaster<br />
<span class="kw1">from</span> Pyxoo.<span class="me1">events</span>.<span class="me1">event</span> <span class="kw1">import</span> StringEvent<br />
<span class="kw1">import</span> <span class="kw3">sys</span></p>
<p><span class="co1"># création de listeners proposant une méthode onLog</span></p>
<p><span class="kw1">class</span> LogListener:<br />
<span class="kw1">def</span> onLog<span class="br0">&#40;</span><span class="kw2">self</span>, event<span class="br0">&#41;</span>:<br />
<span class="kw1">raise</span> <span class="kw2">NotImplementedError</span></p>
<p><span class="kw1">class</span> TextFileLogger<span class="br0">&#40;</span>LogListener<span class="br0">&#41;</span>:<br />
<span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:<br />
<span class="kw2">self</span>.__file = <span class="kw2">open</span><span class="br0">&#40;</span><span class="st0">&#8220;mylogs.log&#8221;</span>, <span class="st0">&#8220;w+&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw1">def</span> onLog<span class="br0">&#40;</span><span class="kw2">self</span>, event<span class="br0">&#41;</span>:<br />
<span class="kw2">self</span>.__file.<span class="me1">write</span><span class="br0">&#40;</span>event.<span class="me1">getString</span><span class="br0">&#40;</span><span class="br0">&#41;</span>+<span class="st0">&#8220;<span class="es0">\n</span>&#8220;</span><span class="br0">&#41;</span></p>
<p><span class="kw1">class</span> StdOutLogger<span class="br0">&#40;</span>LogListener<span class="br0">&#41;</span>:<br />
<span class="kw1">def</span> onLog<span class="br0">&#40;</span><span class="kw2">self</span>, event<span class="br0">&#41;</span>:<br />
<span class="kw3">sys</span>.<span class="me1">stdout</span>.<span class="me1">write</span><span class="br0">&#40;</span>event.<span class="me1">getString</span><span class="br0">&#40;</span><span class="br0">&#41;</span>+<span class="st0">&#8220;<span class="es0">\n</span>&#8220;</span><span class="br0">&#41;</span></p>
<p>log1 = TextFileLogger<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
log2 = StdOutLogger<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
EVENT_TYPE = <span class="st0">&#8220;onLog&#8221;</span></p>
<p>eventBroadcaster = EventBroadcaster<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="co1"># on ajoute un listener associé à un type d&#8217;événement</span><br />
<span class="co1"># dans l&#8217;eventBroadcaster</span><br />
eventBroadcaster.<span class="me1">addEventListener</span><span class="br0">&#40;</span> EVENT_TYPE, log1 <span class="br0">&#41;</span><br />
eventBroadcaster.<span class="me1">addEventListener</span><span class="br0">&#40;</span> EVENT_TYPE, log2 <span class="br0">&#41;</span></p>
<p><span class="co1"># création d&#8217;un événement avec pour eventType &quot;onLog&quot;</span><br />
event1 = StringEvent<span class="br0">&#40;</span> EVENT_TYPE, <span class="st0">&#8220;Bonjour&#8221;</span> <span class="br0">&#41;</span><br />
event2 = StringEvent<span class="br0">&#40;</span> EVENT_TYPE, <span class="st0">&#8220;Au revoir&#8221;</span> <span class="br0">&#41;</span></p>
<p><span class="co1"># diffusion de l&#8217;événement. Tous les listeners associés</span><br />
<span class="co1"># à l&#8217;événement &quot;onLog&quot; reçoivent l&#8217;événement et le traitent.</span><br />
eventBroadcaster.<span class="me1">broadcastEvent</span><span class="br0">&#40;</span> event1 <span class="br0">&#41;</span><br />
eventBroadcaster.<span class="me1">broadcastEvent</span><span class="br0">&#40;</span> event2 <span class="br0">&#41;</span></div>
</div>
<p>Bien sûr ce n&#8217;est qu&#8217;un exemple très simple de l&#8217;utilisation de la classe. On peut imaginer de nombreux types d&#8217;utilisation dans des contextes différents : gestion des événements d&#8217;une application Pygame, d&#8217;événements provenant d&#8217;une socket, etc&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.skitoo.org/2007/07/30/pyxoo-petit-exemple-d-utilisation-de-la-classe-eventbroadcaster/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Pyxoo] Librairie Python - Revision 1</title>
		<link>http://blog.skitoo.org/2007/07/29/pyxoo-librairie-python-revision-1/</link>
		<comments>http://blog.skitoo.org/2007/07/29/pyxoo-librairie-python-revision-1/#comments</comments>
		<pubDate>Sun, 29 Jul 2007 19:37:45 +0000</pubDate>
		<dc:creator>SkiT</dc:creator>
		
		<category><![CDATA[pyxoo]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[librairie]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.skitoo.org/2007/07/29/pyxoo-librairie-python-revision-1/</guid>
		<description><![CDATA[Ca y est je me lance !
Suite à une première étude du framework PixLib développé par un collègue Francis Bourre, j&#8217;ai décidé de me lancer dans le portage en Python de celui-ci. Le nom du projet : Pyxoo
Pour cette première révision je me suis penché sur le package Events du frameworks, c&#8217;est à dire toute [...]]]></description>
			<content:encoded><![CDATA[<p>Ca y est je me lance !<br />
Suite à une première étude du framework <a href="http://osflash.org/projects/pixlib" hreflang="fr">PixLib</a> développé par un collègue <a href="http://www.tweenpix.net/blog/" hreflang="fr">Francis Bourre</a>, j&#8217;ai décidé de me lancer dans le portage en Python de celui-ci. Le nom du projet : <strong>Pyxoo</strong></p>
<p>Pour cette première révision je me suis penché sur le package Events du frameworks, c&#8217;est à dire toute la partie du système d&#8217;<strong>EventBroadcaster</strong>, d&#8217;évenements typés, du <strong>ChannelBroadcaster</strong> et de l&#8217;<strong>ApplicationBroadcaster</strong>.<br />
Pour me faciliter la tâche dans la vérification des types de données, j&#8217;ai mis en place un petit module <strong>utils</strong> contenant une classe <strong>Type</strong> proposant une suite de méthodes statiques permettant de vérifier les types de valeurs.<br />
Je tiens à préciser que Pyxoo est distribué sous <a href="http://www.mozilla.org/MPL/MPL-1.1.html" hreflang="en">Mozilla Public License Version 1.1</a></p>
<p>Pour le moment les sources sont seulement récupérable via SVN :</p>
<div class="codesnip-container" ><em>svn checkout http://svn.pyxoo.skitoo.org/trunk/ pyxoo</em></div>
<p>Normalement un Trac devrait voir le jour d&#8217;ici peu.</p>
<p>Afin d&#8217;avoir des retours utilisateurs sur <strong>Pyxoo</strong> j&#8217;ai mis en place un groupe sur Google <a href="http://groups.google.fr/group/pyxoo" hreflang="fr">http://groups.google.fr/group/pyxoo</a>. N&#8217;hésitez pas à faire partager vos expériences, critiques et découvertes de bugs via ce groupe.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.skitoo.org/2007/07/29/pyxoo-librairie-python-revision-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Django] Vidéo de Django aux Journées Python Francophones 2007</title>
		<link>http://blog.skitoo.org/2007/07/17/django-video-de-django-aux-journees-python-francophones-2007/</link>
		<comments>http://blog.skitoo.org/2007/07/17/django-video-de-django-aux-journees-python-francophones-2007/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 18:17:52 +0000</pubDate>
		<dc:creator>SkiT</dc:creator>
		
		<category><![CDATA[django]]></category>

		<category><![CDATA[conférence]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[vidéo]]></category>

		<guid isPermaLink="false">http://blog.skitoo.org/2007/07/17/django-video-de-django-aux-journees-python-francophones-2007/</guid>
		<description><![CDATA[Un billet qui arrive vraiment en retard étant donné que la vidéo de cette conférence est disponible depuis le 19 juin 2007 sur le site de l&#8217;AFPY. Sur cette vidéo vous pourrez découvrir ou redécouvrir la conférence de David Larlet concernant Django.
La vidéo est en deux parties : la première de 5 minutes et la [...]]]></description>
			<content:encoded><![CDATA[<p>Un billet qui arrive vraiment en retard étant donné que la vidéo de cette conférence est disponible depuis le 19 juin 2007 sur le site de l&#8217;<a href="http://www.afpy.org/Members/tarek/afpynews.2007-06-19.6768843044">AFPY</a>. Sur cette vidéo vous pourrez découvrir ou redécouvrir la conférence de <a href="http://www.biologeek.com/">David Larlet</a> concernant Django.<br />
La vidéo est en deux parties : la première de 5 minutes et la seconde de 35 minutes.</p>
<p>La première partie de la vidéo :<br />
<embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=530525747105126764&#038;hl=fr" flashvars=""> </embed><br />
<br/><br />
La deuxième partie de la vidéo :<br />
<embed src="http://video.google.com/googleplayer.swf?docId=5668400570496094522&amp;hl=fr" style="width: 400px; height: 326px" id="VideoPlayback" type="application/x-shockwave-flash"></embed></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.skitoo.org/2007/07/17/django-video-de-django-aux-journees-python-francophones-2007/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Environnement] Prizee se met au vert</title>
		<link>http://blog.skitoo.org/2007/07/10/environnement-prizee-se-met-au-vert/</link>
		<comments>http://blog.skitoo.org/2007/07/10/environnement-prizee-se-met-au-vert/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 07:12:32 +0000</pubDate>
		<dc:creator>SkiT</dc:creator>
		
		<category><![CDATA[prizee]]></category>

		<guid isPermaLink="false">http://blog.skitoo.org/2007/07/10/environnement-prizee-se-met-au-vert/</guid>
		<description><![CDATA[Depuis peu un nouveau site vient de faire son apparition. Le principe est très simple : chaque visiteur peut créer sa forêt virtuelle gratuitement et sans inscription. Un sous domaine au site est créé pour la forêt. Chaque visite dans la forêt contribura à augmenter le nombre d&#8217;arbre dans celle ci. Par la suite Prizee.com [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis peu un nouveau site vient de faire son apparition. Le principe est très simple : chaque visiteur peut créer sa forêt virtuelle gratuitement et sans inscription. Un sous domaine au site est créé pour la forêt. Chaque visite dans la forêt contribura à augmenter le nombre d&#8217;arbre dans celle ci. Par la suite Prizee.com s&#8217;engage à reserver 10.000€ à une assocation favorisant la reforestation, une fois le défi relevé et la forêt virtuelle entièrement reboisée !</p>
<p>J&#8217;en profite donc pour vous donner l&#8217;URL de ma forêt <img src='http://blog.skitoo.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://skitoo.un-clic-pour-la-foret.com/" hreflang="fr">http://skitoo.un-clic-pour-la-foret.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.skitoo.org/2007/07/10/environnement-prizee-se-met-au-vert/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
