<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JoPa.Fr &#187; Divers</title>
	<atom:link href="http://www.jopa.fr/index.php/category/divers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jopa.fr</link>
	<description>001100010BIDOUILLE11101010111100010LIBRE1000100111100101</description>
	<lastBuildDate>Tue, 10 Jan 2012 21:59:31 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Debian &#8211;  Le Cahier de l’admin Debian a besoin de vous pour s’exporter</title>
		<link>http://www.jopa.fr/index.php/2011/09/30/debian-le-cahier-de-ladmin-debian-a-besoin-de-vous-pour-sexporter/</link>
		<comments>http://www.jopa.fr/index.php/2011/09/30/debian-le-cahier-de-ladmin-debian-a-besoin-de-vous-pour-sexporter/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 12:25:22 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Evènements]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Logiciels Libres]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=2681</guid>
		<description><![CDATA[Je me fais le relais de Linuxfr.org, en espérant que ce peu de bruit puisse amener quelques contributions complémentaires. À quelques semaines de la sortie du Cahier de l’admin Debian Squeeze, Roland Mas et moi‐même venons de lancer une campagne de financement pour réaliser la traduction anglaise de ce livre, mais aussi pour publier cette traduction sous licence libre ! [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2011/09/d-a-h-ulule-banner_png_640x360_crop_upscale_q85.jpg"><img class="aligncenter size-full wp-image-2682" title="d-a-h-ulule-banner_png_640x360_crop_upscale_q85" src="http://www.jopa.fr/wp-content/uploads/2011/09/d-a-h-ulule-banner_png_640x360_crop_upscale_q85.jpg" alt="" width="512" height="288" /></a></p>
<p style="text-align: justify;">Je me fais le relais de<a href="http://linuxfr.org/news/le-cahier-de-l%E2%80%99admin-debian-a-besoin-de-vous-pour-s%E2%80%99exporter"> Linuxfr.org</a>, en espérant que ce peu de bruit puisse amener quelques contributions complémentaires.</p>
<blockquote>
<p style="text-align: justify;">À quelques semaines de la sortie du <em>Cahier de l’admin Debian Squeeze</em>, Roland Mas et moi‐même venons de lancer une campagne de financement pour réaliser la traduction anglaise de ce livre, mais aussi pour <strong>publier cette traduction sous licence libre</strong> !</p>
<p style="text-align: justify;">Vous pouvez soutenir ce projet en commandant un exemplaire du livre à paraître (aussi bien la version française qu’anglaise). Selon le montant du soutien, vous avez le choix entre de nombreuses récompenses.</p>
<p style="text-align: justify;">Cerise sur le gâteau, si vous soutenez le projet en cliquant sur <a href="http://debian-handbook.info/go/ulule-fr-debian/">ce lien</a>, environ <strong>12 % de l’argent donné sera reversé au projet Debian</strong>.</p>
<p>&nbsp;</p></blockquote>
<p>Plus d&#8217;informations sur <a href="http://linuxfr.org/news/le-cahier-de-l%E2%80%99admin-debian-a-besoin-de-vous-pour-s%E2%80%99exporter"> linuxfr.org,</a></p>
<p>Sinon, c&#8217;est par là :</p>
<ul>
<li><a href="http://fr.ulule.com/debian-handbook/">Campagne de financement,</a></li>
<li><a href="http://debian-handbook.info/">Site officiel du projet.</a></li>
</ul>
<p style="text-align: center;"><a href="http://www.jopa.fr/wp-content/uploads/2011/09/DebianSqueeze.png"><img class="aligncenter size-full wp-image-2690" title="DebianSqueeze" src="http://www.jopa.fr/wp-content/uploads/2011/09/DebianSqueeze.png" alt="" width="150" height="171" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2011/09/30/debian-le-cahier-de-ladmin-debian-a-besoin-de-vous-pour-sexporter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quand Torglut joue au puzzle</title>
		<link>http://www.jopa.fr/index.php/2011/08/24/tuto-blender-2/</link>
		<comments>http://www.jopa.fr/index.php/2011/08/24/tuto-blender-2/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 16:01:19 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=2669</guid>
		<description><![CDATA[Je vous ai parlé, il y peu, des tutos Blender de Torglut. Entre temps, de nouveaux tutos ont vu le jour et nous apprennent, entre autre, à modéliser et animer un puzzle. Si l&#8217;idée de modéliser un puzzle peut paraître quelconque, au premier abord,  le résultat final est bien sympathique. Jugez par vous-même : Laissez-vous [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Je vous ai parlé, <a title="Torglut" href="http://www.jopa.fr/index.php/2011/08/08/tutos-blender-chez-torglut/">il y peu, </a>des tutos <em>Blender</em> de <a title="Torglut" href="http://torglut.blogspot.com/">Torglut</a>. Entre temps, de nouveaux tutos ont vu le jour et nous apprennent, entre autre, à modéliser et animer un <em>puzzle</em>.</p>
<p style="text-align: justify;">Si l&#8217;idée de modéliser un puzzle peut paraître quelconque, au premier abord,  le résultat final est bien sympathique. Jugez par vous-même :</p>
<p><a href="http://www.youtube.com/watch?v=IxSQ9n8zBeo"><img src="http://img.youtube.com/vi/IxSQ9n8zBeo/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=IxSQ9n8zBeo">Click here</a> to view the video on YouTube.</p>

<p><a title="Torglut's Blog" href="http://torglut.blogspot.com/">Laissez-vous guider sur le blog de Torglut</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2011/08/24/tuto-blender-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutos Blender chez Torglut</title>
		<link>http://www.jopa.fr/index.php/2011/08/08/tutos-blender-chez-torglut/</link>
		<comments>http://www.jopa.fr/index.php/2011/08/08/tutos-blender-chez-torglut/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 19:30:50 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Logiciels Libres]]></category>
		<category><![CDATA[Tutoriel]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=2429</guid>
		<description><![CDATA[Mon ami Torglut propose, sur son blog, une série de tutoriels de modélisation et de rendu 3D avec Blender. D&#8217;une orange (et son jus) aux calanques de Cassis, en passant par la Corse en 3D anaglyphe, laissez-vous guider pour découvrir (ou re-découvrir) la puissance de cet outil. &#160; C&#8217;est en vidéo, c&#8217;est en Français et [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Mon ami <a title="Torglut's Blog" href="http://torglut.blogspot.com/">Torglut</a> propose, sur <a title="Torglut's Blog" href="http://torglut.blogspot.com/">son blog</a>, une série de tutoriels de modélisation et de rendu 3D avec<a title="Blender" href="http://www.blender.org/"> Blender</a>. D&#8217;une orange (et son jus) aux calanques de Cassis, en passant par la Corse en 3D <a title="Anaglyphe sur wikipedia" href="http://fr.wikipedia.org/wiki/Anaglyphe">anaglyphe</a>, laissez-vous guider pour découvrir (ou re-découvrir) la puissance de cet <a title="Blender" href="http://www.blender.org/">outil</a>.</p>
<div align="center">
<table>
<tbody>
<tr>
<td><a href="http://www.jopa.fr/wp-content/uploads/2011/08/un_verre_et_une_orange.png"><img class="alignleft size-thumbnail wp-image-2430" title="un_verre_et_une_orange" src="http://www.jopa.fr/wp-content/uploads/2011/08/un_verre_et_une_orange-150x150.png" alt="" width="150" height="150" /></a></td>
<td><a href="http://www.jopa.fr/wp-content/uploads/2011/08/blender_mur_de_briques_bump.jpg"><img class="alignleft size-thumbnail wp-image-2433" title="blender_mur_de_briques_bump" src="http://www.jopa.fr/wp-content/uploads/2011/08/blender_mur_de_briques_bump-150x150.jpg" alt="" width="150" height="150" /></a></td>
</tr>
<tr>
<td><a href="http://www.jopa.fr/wp-content/uploads/2011/08/blender_corse_3d_anaglyphe.jpg"><img class="alignleft size-thumbnail wp-image-2434" title="blender_corse_3d_anaglyphe" src="http://www.jopa.fr/wp-content/uploads/2011/08/blender_corse_3d_anaglyphe-150x150.jpg" alt="" width="150" height="150" /></a></td>
<td><a href="http://www.jopa.fr/wp-content/uploads/2011/08/calanques_de_cassis.jpg"><img class="alignleft size-thumbnail wp-image-2435" title="calanques_de_cassis" src="http://www.jopa.fr/wp-content/uploads/2011/08/calanques_de_cassis-150x150.jpg" alt="" width="150" height="150" /></a></td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>C&#8217;est en vidéo, c&#8217;est en Français et c&#8217;est <a title="Torglut's Blog" href="http://torglut.blogspot.com/">par ici (http://torglut.blogspot.com/)</a> !</p>
<p>Bonne visite !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2011/08/08/tutos-blender-chez-torglut/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Logiciels libres faites passer</title>
		<link>http://www.jopa.fr/index.php/2011/08/04/logiciels-libres-faites-passer/</link>
		<comments>http://www.jopa.fr/index.php/2011/08/04/logiciels-libres-faites-passer/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 21:22:49 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Logiciels Libres]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=2414</guid>
		<description><![CDATA[Le site de l&#8217;April : www.april.org]]></description>
			<content:encoded><![CDATA[<div class="mceTemp mceIEcenter">
<dl id="attachment_2415" class="wp-caption   aligncenter" style="width: 440px;">
<dt class="wp-caption-dt"><a href="http://media.april.org/docs/affiche_faites_passer/faites_passer_A3coul_HR.pdf"><img class="size-full wp-image-2415" title="faites_passer_A3coul_600" src="http://www.jopa.fr/wp-content/uploads/2011/08/faites_passer_A3coul_600.jpg" alt="Affiche April" width="430" height="600" /></a></dt>
<dd class="wp-caption-dd"></dd>
</dl>
</div>
<p>Le site de l&#8217;April : <a href="http://www.april.org">www.april.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2011/08/04/logiciels-libres-faites-passer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evolus Pencil Project &#8211; Des dessins d&#8217;IHM en quelques clics&#8230;</title>
		<link>http://www.jopa.fr/index.php/2010/07/31/evolus-pencil-project-des-dessins-dihm-en-quelques-clics/</link>
		<comments>http://www.jopa.fr/index.php/2010/07/31/evolus-pencil-project-des-dessins-dihm-en-quelques-clics/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 19:52:34 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Logiciels Libres]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=2357</guid>
		<description><![CDATA[Pour les phases d&#8217;analyse ou l&#8217;écriture de spécifications pour des projets logiciels, j&#8217;étais à la recherche d&#8217;un outil permettant de dessiner, bêtement et rapidement, des maquettes d&#8217;écrans, de formulaires ou de page web. Ce type d&#8217;application ne manque pas parmi les logiciels commerciaux, mais n&#8217;est pas forcément facile à dénicher dans le monde libre. Bien [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2010/07/evolus_pencil.png"><img class="alignleft size-full wp-image-2358" title="evolus_pencil" src="http://www.jopa.fr/wp-content/uploads/2010/07/evolus_pencil.png" alt="" width="294" height="204" /></a>Pour les phases d&#8217;analyse ou l&#8217;écriture de spécifications pour des projets logiciels, j&#8217;étais à la recherche d&#8217;un outil permettant de dessiner, bêtement et rapidement, des maquettes d&#8217;écrans, de formulaires ou de page web. Ce type d&#8217;application ne manque pas parmi les logiciels commerciaux, mais n&#8217;est pas forcément facile à dénicher dans le monde libre.</p>
<p style="text-align: justify;">Bien sûr, nous pouvons toujours nous en sortir avec <a title="Dia" href="http://projects.gnome.org/dia/" target="_blank">Dia</a>, <a href="http://www.inkscape.org/?lang=fr" target="_blank">Inkscape</a>, <a href="http://www.openoffice.org/" target="_blank">Openoffice</a> ou <a href="http://www.tuxpaint.org/?lang=fr" target="_blank">tout autre logiciel</a> permettant le tracé de formes géométriques, mais le fait de de disposer de modèles de composants (widgets), à l&#8217;échelle, facilement positionables et alignables apportent un confort non négligeable.</p>
<p style="text-align: justify;">Vous l&#8217;avez compris, <em><a href="http://pencil.evolus.vn" target="_blank">Evolus </a></em><em><a href="http://pencil.evolus.vn" target="_blank">Pencil Project</a> </em>rempli parfaitement ce rôle.</p>
<p style="text-align: justify;"><span id="more-2357"></span></p>
<p style="text-align: justify;"><em>Pencil Project, </em>à ne pas confondre avec l&#8217;outil de dessin et d&#8217;animation 2D du même nom (<a href="http://www.pencil-animation.org/" target="_blank">pencil</a>),<em> </em>est une extension <em>Firefox</em>, développée sous <a href="http://www.gnu.org/licenses/gpl.html" target="_blank">licence GPL</a> par la société Vietnamienne <a href="http://www.evolus.vn/" target="_blank">Evolus</a>. Elle est tout de même disponible en version &laquo;&nbsp;<em>standalone</em>&laquo;&nbsp;, grâce à une exécution avec Xulrunner.</p>
<p style="text-align: justify;">L&#8217;interface est sobre et la prise en main extrêmement rapide. L&#8217;application est fournie avec plusieurs styles de &laquo;&nbsp;<em>widgets</em>&nbsp;&raquo; qui s&#8217;intègrent dans votre maquette par un simple glissé / déposé. Des guides dynamiques aident au positionnement des composants. Les principales fonctions de dessin vectoriel sont disponibles (dessus, dessous, alignement, agrandissement, rotation, etc&#8230;) et permettent de <em>fignoler </em>la mise en page pour un résultat très propre.</p>
<p style="text-align: center;"><a href="http://www.jopa.fr/wp-content/uploads/2010/07/pencil.png"><img class="aligncenter size-full wp-image-2364" title="pencil" src="http://www.jopa.fr/wp-content/uploads/2010/07/pencil.png" alt="" width="460" height="354" /></a></p>
<p style="text-align: center;"><span style="color: #333399;"><em><span style="color: #800000;">Copie d&#8217;écran</span></em></span></p>
<p style="text-align: justify;">L&#8217;enregistrement des fichier se fait sous l&#8217;extension &laquo;&nbsp;.ep&nbsp;&raquo;, un format XML propre à <em>Evolus Pencil.</em> Pour la réutilisation d&#8217;un dessin dans un document ou tout simplement pour l&#8217;impression, il faut passer par un export au format <a href="http://http://fr.wikipedia.org/wiki/Portable_Network_Graphics" target="_blank">PNG</a>. Des exports vers d&#8217;autres formats (OpenOffice, Word, PDF, &#8230; ) sont prévus moyennant l&#8217;ajout de &laquo;&nbsp;templates&nbsp;&raquo;. A ce jour, je n&#8217;ai pas exploré cette piste, le format <em>PNG</em> me convenant parfaitement. Je regrette juste l&#8217;impossibilité d&#8217;imprimer directement depuis l&#8217;application.</p>
<p style="text-align: center;"><a href="http://www.jopa.fr/wp-content/uploads/2010/07/Cotations.png"><img class="size-full wp-image-2360  aligncenter" title="Cotations" src="http://www.jopa.fr/wp-content/uploads/2010/07/Cotations.png" alt="" width="504" height="635" /></a></p>
<p style="text-align: center;"><span style="color: #800000;"><em>Exemple de maquette  ( le message d&#8217;erreur a été vu sur : </em></span><a href="http://www.risacher.com/la-rache" target="_blank"><span style="color: #800000;"><em>http://www.risacher.com/la-rache</em></span></a><span style="color: #800000;"><em> )</em></span></p>
<p style="text-align: left;"><strong>Lien :</strong></p>
<p style="text-align: center;"><a href="http://pencil.evolus.vn"><img class="size-full wp-image-2393 aligncenter" title="stencil_logo" src="http://www.jopa.fr/wp-content/uploads/2010/07/stencil_logo1.png" alt="" width="407" height="274" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2010/07/31/evolus-pencil-project-des-dessins-dihm-en-quelques-clics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parce que nous n&#8217;aimons pas voir les lapins mourir…</title>
		<link>http://www.jopa.fr/index.php/2009/08/21/voir-les-lapins-mourir/</link>
		<comments>http://www.jopa.fr/index.php/2009/08/21/voir-les-lapins-mourir/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 10:30:55 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Nabaztag]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=1747</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://savenabaztag.com/?lang=fr" target="_self"><img class="size-full wp-image-1754  aligncenter" title="sauvez_nabaztag" src="http://www.jopa.fr/wp-content/uploads/2009/08/sauvez_nabaztag.png" alt="sauvez_nabaztag" width="166" height="209" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2009/08/21/voir-les-lapins-mourir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Construire sa borne d&#8217;arcade&#8230;en 6 mois&#8230;</title>
		<link>http://www.jopa.fr/index.php/2009/08/17/construire-sa-borne-darcade-en-6-mois/</link>
		<comments>http://www.jopa.fr/index.php/2009/08/17/construire-sa-borne-darcade-en-6-mois/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 21:47:28 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Divers]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[bricolage]]></category>
		<category><![CDATA[Jeux]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=1691</guid>
		<description><![CDATA[Sur son nouveau site, Torglut nous explique comment construire sa propre borne d&#8217;arcade&#8230; en 6 mois ! Au final,  un beau meuble à monter sois-même et biensûr, une utilisation ludique de notre OS préféré&#8230; Sur ce site, tu vas apprendre à construire une borne d&#8217;arcade en 6 mois. Les esprits chagrins diront que 6 mois, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Sur son <a title="http://torglut.free.fr/" href="http://torglut.free.fr/" target="_blank">nouveau site</a>, <em>Torglut</em> nous explique comment construire sa propre borne d&#8217;arcade&#8230; en 6 mois ! Au final,  un beau meuble à monter sois-même et biensûr, une utilisation ludique de notre OS préféré&#8230;</p>
<p style="text-align: center;"><a href="http://torglut.free.fr/"><img class="size-medium wp-image-1692 aligncenter" title="img_43_0012_final" src="http://www.jopa.fr/wp-content/uploads/2009/08/img_43_0012_final-225x300.jpg" alt="img_43_0012_final" width="225" height="300" /></a></p>
<blockquote><p>Sur ce site, tu vas apprendre à construire une borne d&#8217;arcade en 6 mois. Les <a href="http://fr.wiktionary.org/wiki/esprit_chagrin">esprits chagrins</a> diront que 6 mois, c&#8217;est très long.<br />
Effectivement, c&#8217;est très long, surtout qu&#8217;on peut <a href="http://chris.polymathic.net/cabinet/index.shtml">construire une borne d&#8217;arcade en 24 heures</a>.<br />
Seulement voilà, je suis assez mauvais en bricolage, d&#8217;où les 6 mois <img src='http://www.jopa.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
Je remercie au passage l&#8217;auteur du site ci-dessus, sur lequel je me suis basé pour construire la borne.<br />
Ce site est donc fait pour toi, qui possèdes à peu près le même niveau que moi en bricolage, c&#8217;est à dire un niveau 0 sur une échelle de 10.</p></blockquote>
<p><a title="Construire une borne d'arcade" href="http://torglut.free.fr/">Pour la leçon de bricolage, c&#8217;est par là !</a></p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2009/08/17/construire-sa-borne-darcade-en-6-mois/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Miro&#8230;Yet another video player&#8230;</title>
		<link>http://www.jopa.fr/index.php/2009/07/31/miro-yet-another-video-player/</link>
		<comments>http://www.jopa.fr/index.php/2009/07/31/miro-yet-another-video-player/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 08:05:51 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Logiciels Libres]]></category>
		<category><![CDATA[Vidéo]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=1610</guid>
		<description><![CDATA[Ce qui est plaisant dans le monde du libre, c&#8217;est l&#8217;abondance  de logiciels: pour un besoin défini, il n&#8217;est pas rare que plusieurs applications correspondent, à moins bien-sûr que ce besoin ne soit très particulier ! Nous pouvons prendre comme exemple les suites bureautique, les clients de messagerie ou encore les environnements graphiques. C&#8217;est à [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2009/07/miro-logo.png"><img class="alignright size-full wp-image-1613" title="miro-logo" src="http://www.jopa.fr/wp-content/uploads/2009/07/miro-logo.png" alt="miro-logo" width="210" height="210" /></a>Ce qui est plaisant dans le monde du libre, c&#8217;est l&#8217;abondance  de logiciels: pour un besoin défini, il n&#8217;est pas rare que plusieurs applications correspondent, à moins bien-sûr que ce besoin ne soit très particulier ! Nous pouvons prendre comme exemple les suites bureautique, les clients de messagerie ou encore les environnements graphiques. C&#8217;est à l&#8217;utilisateur de faire son choix et c&#8217;est peut-être une des raisons qui déroute les adeptes de solutions commerciales.</p>
<p style="text-align: justify;">Mais ce qui est vraiment génial, c&#8217;est la possibilité de partir à la découverte d&#8217;applications, sans même un besoin particulier. Il suffit de surfer un peu et lire quelques articles à droite et à gauche pour dénicher une perle qui pourra orner notre boîte à outil logicielle. C&#8217;est un bon passe temps et une activité très ludique pendant que &laquo;&nbsp;maman&nbsp;&raquo; regarde ses séries à la TV.</p>
<p style="text-align: justify;">C&#8217;est dans cet état d&#8217;esprit que j&#8217;ai essayé <a title="http://www.getmiro.com/" href="http://www.getmiro.com/" target="_blank">Miro</a> (anciennement appelé <em>Democracy Player</em> ou <em>DTV</em>).</p>
<blockquote>
<p style="text-align: justify;">Miro est un lecteur vidéo qui est capable de jouer pratiquement n&#8217;importe quel fichier vidéo et offre plus de 6000 émissions Web TV et podcasts vidéos gratuits. Il est dôté d&#8217;une interface simple mais bien finie, conçue pour la vidéo HD en plein écran. Comme <em>Miro</em> télécharge la plupart des vidéos, il est possible ensuite de les visionner sans connexion internet.</p>
</blockquote>
<p><a href="http://www.jopa.fr/wp-content/uploads/2009/07/guide.jpg"><img class="aligncenter size-full wp-image-1619" title="guide" src="http://www.jopa.fr/wp-content/uploads/2009/07/guide.jpg" alt="guide" width="550" height="356" /></a></p>
<p style="text-align: justify;">Actuellement en version 2.5, <em>Miro</em> s&#8217;installe très facilement, il suffit de suivre les instructions sur <a title="http://www.getmiro.com/" href="http://www.getmiro.com/" target="_blank">le site officiel</a>. Bref, pas de quoi se priver ! Voilà un bon outil qui cohabitera très bien aux côtés de Totem et de VLC.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2009/07/31/miro-yet-another-video-player/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mir:ror mon beau Mir:ror&#8230;Comment puis-je te comprendre ?</title>
		<link>http://www.jopa.fr/index.php/2009/07/12/violet-mirror-acces-device-c/</link>
		<comments>http://www.jopa.fr/index.php/2009/07/12/violet-mirror-acces-device-c/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 00:22:12 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Divers]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mir:ror]]></category>
		<category><![CDATA[rfid]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=1415</guid>
		<description><![CDATA[Dans mon précédent article, je présentais mir:ror, le petit lecteur RFID commercialisé par la société Violet.  Après avoir survolé leur application &#171;&#160;Mirware&#160;&#187; et mis en évidence les limites de son utilisation, je vais mettre &#171;&#160;les mains dans le cambouis&#160;&#187; pour essayer de comprendre comment communiquer avec Mir:ror.  L&#8217;idée étant de pouvoir coder de petits outils [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignright size-medium wp-image-1437" title="miror" src="http://www.jopa.fr/wp-content/uploads/2009/07/miror-300x254.jpg" alt="miror" width="184" height="156" />Dans mon <a title="http://www.jopa.fr/index.php/2009/07/07/violet-mirror-linux" href="http://www.jopa.fr/index.php/2009/07/07/violet-mirror-linux">précédent article</a>, je présentais <em>mir:ror</em>, le petit lecteur RFID commercialisé par la société <a title="http://www.violet.net/" href="http://www.violet.net/">Violet</a>.  Après avoir survolé leur application &laquo;&nbsp;Mirware&nbsp;&raquo; et mis en évidence les limites de son utilisation, je vais mettre &laquo;&nbsp;les mains dans le cambouis&nbsp;&raquo; pour essayer de comprendre comment communiquer avec Mir:ror.  L&#8217;idée étant de pouvoir coder de petits outils capables de réagir à des tags RFID.</p>
<p style="text-align: justify;"><span id="more-1415"></span></p>
<p style="text-align: justify;">D&#8217;un point de vu système, Mir:ror est directement reconnu sous Linux et accessible via le handler de périphérique /dev/hidraw<em>X</em> (où <em>X</em> est le numéro de périphérique, normalement &laquo;&nbsp;0&#8243; si c&#8217;est le premier appareil du genre connecté).</p>
<p style="text-align: justify;">La petite application &laquo;&nbsp;<em>discover-device</em>&laquo;&nbsp;, fournie avec <em>Mirware</em>, permet de le détecter automatiquement :</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-1417" title="discover-device" src="http://www.jopa.fr/wp-content/uploads/2009/07/discover-device.png" alt="discover-device" width="457" height="246" /></p>
<p style="text-align: justify;">Attention tout de même aux droits, le périphérique n&#8217;est par défaut accessible que par <em>root</em>, il faudra lui changer les droits ou utiliser le script &laquo;&nbsp;<em>installer.sh</em>&nbsp;&raquo; pour le faire, avant de pouvoir l&#8217;exploiter avec un utilisateur standard.</p>
<p style="text-align: justify;">Commençons par voir ce qu&#8217;il se passe avec un simple &laquo;&nbsp;cat&nbsp;&raquo; du fichier :</p>
<p style="text-align: justify;"><img class="size-full wp-image-1421 aligncenter" title="cat-miror" src="http://www.jopa.fr/wp-content/uploads/2009/07/cat-miror.png" alt="cat-miror" width="457" height="246" /></p>
<p style="text-align: justify;">Des hiéroglyphes s&#8217;affichent lorsque nous approchons ou retirons un tag&#8230; C&#8217;est plutôt bon signe, et visiblement c&#8217;est binaire ! Nous devrions y voir plus clair avec un affichage en hexadécimal.  <em>Hexdump</em> est idéal pour ça !</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-1422" title="hexdump" src="http://www.jopa.fr/wp-content/uploads/2009/07/hexdump.png" alt="hexdump" width="457" height="246" /></p>
<p style="text-align: justify;">La première ligne (0000 0000 0000 0000 0000 0000 0000 0000 *) nous indique que tant qu&#8217;il ne se passe rien, on lit des zéros&#8230; Où&#8230;Qu&#8217;on lit des zéros tant qu&#8217;il ne se passe rien ! (c&#8217;est plutôt normal).<br />
Les deux lignes suivantes (0102 0000 d008 1a02 5303 4202 00d2 0000 &#8211; 0000 0000 0000 0000 0000 0000 0000 0000) s&#8217;affichent lorsqu&#8217;un tag est approché, les deux dernières ( 0202 0000 d008 1a02 5303 4202 00d2 0000 &#8211; 0000 0000 0000 0000 0000 0000 0000 0000 ) lorsqu&#8217;on éloigne le tag.</p>
<p style="text-align: justify;">Après plusieurs tests, j&#8217;en déduis assez facilement que les deux premiers octets (0102 ou 0202) codent l&#8217;évènement. J&#8217;en ai repéré 4 types :</p>
<ul style="text-align: justify;">
<li>0&#215;0102 : Tag rfid détecté,</li>
<li>0&#215;0202 : Tag rfid retiré,</li>
<li>0&#215;0501 : Le mir:ror est mis à l&#8217;envert,</li>
<li>0&#215;0401 : Le mir:ror est remis à l&#8217;endroit.</li>
</ul>
<p style="text-align: justify;">Les 12 octets suivants semblent identifier la puce RFID.</p>
<p style="text-align: justify;">A titre de test, écrivons rapidement un petit bout de code C, prenant le device en paramètre et affichant les évènements et le tag associé :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1415code5'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p14155"><td class="code" id="p1415code5"><pre class="c" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Jopa - Petit test du Mir:ror : test_mirror.c</span>
<span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #339933;">#include &lt;stdlib.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  FILE <span style="color: #339933;">*</span>mirror<span style="color: #339933;">;</span>
  <span style="color: #993333;">short</span> <span style="color: #993333;">unsigned</span> <span style="color: #993333;">int</span> block<span style="color: #339933;">;</span>
  <span style="color: #993333;">short</span> <span style="color: #993333;">unsigned</span> <span style="color: #993333;">int</span> event<span style="color: #339933;">;</span>
  <span style="color: #993333;">char</span> tag<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">25</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  <span style="color: #993333;">int</span> i<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">//Vérification du paramètre (device)</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>argc<span style="color: #339933;">!=</span><span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">printf</span> <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Usage : %s mirror_device <span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>argv<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        exit<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Ouverture du fichier device</span>
  mirror <span style="color: #339933;">=</span> fopen<span style="color: #009900;">&#40;</span>argv<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>mirror<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Accès à  %s impossible !<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>argv<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        exit<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Boucle en lecture</span>
  <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>event<span style="color: #339933;">,</span><span style="color: #0000dd;">2</span><span style="color: #339933;">,</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span>mirror<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>event<span style="color: #339933;">!=</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// Evenement detecté, lecture de l'ID</span>
        <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span><span style="color: #0000dd;">6</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>block<span style="color: #339933;">,</span><span style="color: #0000dd;">2</span><span style="color: #339933;">,</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span>mirror<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            sprintf<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>tag<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">*</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;%04X&quot;</span><span style="color: #339933;">,</span>block<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
 <span style="color: #666666; font-style: italic;">//Affichage en fonction de l'événement</span>
        <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #666666; font-style: italic;">// Tag On</span>
            <span style="color: #b1b100;">case</span> <span style="color: #208080;">0x102</span> <span style="color: #339933;">:</span>
                <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%s : ON<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>tag<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
             <span style="color: #666666; font-style: italic;">//Tag Off</span>
             <span style="color: #b1b100;">case</span> <span style="color: #208080;">0x202</span> <span style="color: #339933;">:</span>
                 <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%s : OFF<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>tag<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                 <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
             <span style="color: #666666; font-style: italic;">//Mirror envers</span>
             <span style="color: #b1b100;">case</span> <span style="color: #208080;">0x501</span> <span style="color: #339933;">:</span>
                 <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;MIR:ROR ENVERS<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                 <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
             <span style="color: #666666; font-style: italic;">//Mirror endroit</span>
             <span style="color: #b1b100;">case</span> <span style="color: #208080;">0x401</span> <span style="color: #339933;">:</span>
                   <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;MIR:ROR ENDROIT<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
             <span style="color: #666666; font-style: italic;">//Default</span>
             <span style="color: #b1b100;">default</span> <span style="color: #339933;">:</span>
                   <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Evénement inconnu<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//switch</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//if (event</span>
   <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//while (1)</span>
<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// main()</span></pre></td></tr></table></div>

<p style="text-align: justify;">En quelques lignes, nous ouvrons le périphérique dont le handler est passé en paramètre et bouclons sur sa lecture, 2 octets par 2 octets.<br />
Quand autre chose que &laquo;&nbsp;0&#8243; est détecté, c&#8217;est forcément un changement d&#8217;état. Nous lisons ensuite l&#8217;identifiant de la puce RFID.<br />
La dernière partie affiche un message en fonction de l&#8217;évènement détecté.</p>
<p style="text-align: justify;">Il ne reste plus qu&#8217;à le compiler et le tester :<br />
<span style="color: #800000;">$ gcc test_mirror.c -o test_mirror<br />
$ ./test_mirror</span></p>
<p><img class="aligncenter size-full wp-image-1434" title="test_mirror" src="http://www.jopa.fr/wp-content/uploads/2009/07/test_mirror.png" alt="test_mirror" width="497" height="331" /></p>
<p><span style="color: #800000;">Pour compléter l&#8217;exemple, nous pouvons rajouter l&#8217;exécution d&#8217;un script associé au tag et à son approche ou son éloignement. Les scripts pourraient être stockés dans le répertoire de l&#8217;utilisateur et porter l&#8217;<em>&lt;id&gt;-on.sh</em> ou l&#8217;<em>&lt;id&gt;-off.sh</em> comme nom. Pour l&#8217;exemple :</span></p>
<ul>
<li>0000D0081A025303420200D2-on.sh : Lancement de Firefox sur le blog de Jopa</li>
</ul>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1415code6'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p14156"><td class="code" id="p1415code6"><pre class="sh" style="font-family:monospace;">#!/bin/sh
firefox http://www.jopa.fr</pre></td></tr></table></div>

<ul>
<li>0000D0081A025303420200D2-off.sh : Lancement de Thunderbird</li>
</ul>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1415code7'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p14157"><td class="code" id="p1415code7"><pre class="sh" style="font-family:monospace;">#!/bin/sh
thunderbird</pre></td></tr></table></div>

<p><span style="color: #800000;">$ chmod +x ~/0000D0081A025303420200D2-*.sh</span></p>
<p style="text-align: justify;">Adaptons un peu le code en ajoutant une variable pour le nom du script et une commande &laquo;&nbsp;<em>system</em>&nbsp;&raquo; dans le <em>&laquo;&nbsp;switch/case&nbsp;&raquo;</em>.</p>
<p style="text-align: justify;">

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1415code8'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p14158"><td class="code" id="p1415code8"><pre class="c" style="font-family:monospace;">   <span style="color: #666666; font-style: italic;">// Jopa - Test Mir:ror</span>
&nbsp;
<span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #339933;">#include &lt;stdlib.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  FILE <span style="color: #339933;">*</span>mirror<span style="color: #339933;">;</span>
  <span style="color: #993333;">short</span> <span style="color: #993333;">unsigned</span> <span style="color: #993333;">int</span> block<span style="color: #339933;">;</span>
  <span style="color: #993333;">short</span> <span style="color: #993333;">unsigned</span> <span style="color: #993333;">int</span> event<span style="color: #339933;">;</span>
  <span style="color: #993333;">char</span> tag<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">25</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// Ajout d'un variable script</span>
  <span style="color: #993333;">char</span> script<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">256</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  <span style="color: #993333;">int</span> i<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">//Vérification du paramètre (device)</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>argc<span style="color: #339933;">!=</span><span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">printf</span> <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Usage : %s mirror_device <span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>argv<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        exit<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Ouverture du fichier device</span>
  mirror <span style="color: #339933;">=</span> fopen<span style="color: #009900;">&#40;</span>argv<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>mirror<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Accès à  %s impossible !<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>argv<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        exit<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Boucle en lecture</span>
  <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>event<span style="color: #339933;">,</span><span style="color: #0000dd;">2</span><span style="color: #339933;">,</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span>mirror<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>event<span style="color: #339933;">!=</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// Evenement detecté, lecture de l'ID</span>
        <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span><span style="color: #0000dd;">6</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>block<span style="color: #339933;">,</span><span style="color: #0000dd;">2</span><span style="color: #339933;">,</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span>mirror<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            sprintf<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>tag<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">*</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;%04X&quot;</span><span style="color: #339933;">,</span>block<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
 <span style="color: #666666; font-style: italic;">//Affichage en fonction de l'événement</span>
        <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #666666; font-style: italic;">// Tag On</span>
            <span style="color: #b1b100;">case</span> <span style="color: #208080;">0x102</span> <span style="color: #339933;">:</span>
                <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%s : ON<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>tag<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #666666; font-style: italic;">//Construction du nom de script et exécution</span>
                sprintf<span style="color: #009900;">&#40;</span>script<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;./%s-on.sh&quot;</span><span style="color: #339933;">,</span>tag<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                system<span style="color: #009900;">&#40;</span>script<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
             <span style="color: #666666; font-style: italic;">//Tag Off</span>
             <span style="color: #b1b100;">case</span> <span style="color: #208080;">0x202</span> <span style="color: #339933;">:</span>
                 <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%s : OFF<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>tag<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                 <span style="color: #666666; font-style: italic;">//Construction du nom de script et exécution</span>
                 sprintf<span style="color: #009900;">&#40;</span>script<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;./%s-off.sh&quot;</span><span style="color: #339933;">,</span>tag<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                 system<span style="color: #009900;">&#40;</span>script<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                 <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
             <span style="color: #666666; font-style: italic;">//Mirror envers</span>
             <span style="color: #b1b100;">case</span> <span style="color: #208080;">0x501</span> <span style="color: #339933;">:</span>
                 <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;MIR:ROR ENVERS<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                 <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
             <span style="color: #666666; font-style: italic;">//Mirror endroit</span>
             <span style="color: #b1b100;">case</span> <span style="color: #208080;">0x401</span> <span style="color: #339933;">:</span>
                   <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;MIR:ROR ENDROIT<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
             <span style="color: #666666; font-style: italic;">//Default</span>
             <span style="color: #b1b100;">default</span> <span style="color: #339933;">:</span>
                   <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Evénement inconnu&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//switch</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//if (event</span>
   <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//while (1)</span>
<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// main()</span></pre></td></tr></table></div>

<p style="text-align: justify;">Ceci n&#8217;est bien entendu qu&#8217;un exemple, écrit rapidement et pas forcément très propre. Mais il permet de mettre en évidence la simplicité avec laquelle il est possible d&#8217;accéder à des informations RFID et ouvre la porte sur des développements qui peuvent être rapidement prometteurs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2009/07/12/violet-mirror-acces-device-c/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hé m&#8217;sieur m&#8217;sieur, moi aussi j&#8217;veux surfer plus vite avec Chromium !</title>
		<link>http://www.jopa.fr/index.php/2009/05/18/compiler-google-chrome/</link>
		<comments>http://www.jopa.fr/index.php/2009/05/18/compiler-google-chrome/#comments</comments>
		<pubDate>Mon, 18 May 2009 00:43:11 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Divers]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Surf]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=1289</guid>
		<description><![CDATA[&#171;&#160;Chromium&#160;&#187; est le projet à la base du nouveau navigateur à la mode : Google Chrome&#8230; Même ma tatie en parle et  il est tellement bien que si tu l&#8217;as pas&#8230; Pfeu ! T&#8217;es vraiment, mais alors vraiment has-been&#8230;  La version Linux étant en développement, il n&#8217;est pas évident de trouver des binaires facilement utilisables, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignright size-full wp-image-1290" title="chromium-logo" src="http://www.jopa.fr/wp-content/uploads/2009/05/chromium-logo.png" alt="chromium-logo" width="145" height="64" />&laquo;&nbsp;Chromium&nbsp;&raquo; est le projet à la base du nouveau navigateur à la mode : <em>Google Chrome</em>&#8230; Même ma tatie en parle et  il est tellement bien que si tu l&#8217;as pas&#8230; Pfeu ! T&#8217;es vraiment, mais alors vraiment <a title="http://hasbeen.free.fr/" href="http://hasbeen.free.fr/">has-been</a>&#8230;  La version Linux étant en développement, il n&#8217;est pas évident de trouver des binaires facilement utilisables, mais comme le projet se veut Open-Source, nous allons pouvoir nous coller à sa compilation&#8230; Puis finalement, en bons geeks que nous sommes, nous aimons bien compiler des trucs&#8230;<br />
<span id="more-1289"></span><br />
Nous allons commencer par installer quelques paquets indispensables au bon déroulement des opérations :</p>
<p><span style="color: #800000;">$ sudo apt-get install subversion pkg-config python perl g++ bison flex gperf libnss3-dev libgtk2.0-dev libnspr4-0d libnspr4-dev msttcorefonts libgconf2-dev libcairo2-dev libdbus-1-dev<br />
</span><br />
Si comme moi, vous jouissez d&#8217;une distribution 64 bits :</p>
<p><span style="color: #800000;">$ sudo apt-get install gcc-multilib g++-multilib gobjc-multilib gobjc++-multilib</span></p>
<p>Et en option :</p>
<p><span style="color: #800000;">$ sudo apt-get install wdiff lighttpd php5-cgi sun-java6-fonts</span></p>
<p>Nous allons ensuite installer les utilitaires nécessaires pour l&#8217;accès au<em> SVN</em> google ( depot tools ) :<br />
<span style="color: #800000;"><br />
$ mkdir CHROME<br />
$ cd CHROME<br />
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools</span></p>
<p>Et récupérer les sources :</p>
<p><span style="color: #993300;">$ </span><span style="color: #800000;"><span style="color: #993300;">export LANG=C</span><br />
$ depot_tools/gclient config http://src.chromium.org/svn/trunk/src http://chromium-status.appspot.com/lkgr<br />
$ depot_tools/gclient sync</span></p>
<p><em>gclient</em> va rapatrier un peu plus de 3 Go ( C&#8217;est que ce n&#8217;est pas du code de fillette tout ça ! ) &#8230;</p>
<p><span style="color: #808080;">Révision 43806 extraite.</span></p>
<p><span style="color: #808080;">________ running &#8216;/usr/bin/python src/tools/gyp/gyp_dogfood src/build/all.gyp&#8217; in &#8216;/usr/local/src/CHROME<br />
Updating projects from gyp files&#8230;</span></p>
<p>A ce stade, j&#8217;en suis à me demander comment, avec un code source de 3Go, je vais obtenir un navigateur réputé pour sa légèreté et sa rapidité d&#8217;exécution&#8230; Même si, par défaut, les sources incluent toutes les plateformes, les librairies utilisées et tout un tas de bazard&#8230;</p>
<p>Pour le savoir, le mieux est de lancer la compil :</p>
<p><span style="color: #993300;">$  cd src/build<br />
$ ../../depot_tools/hammer</span></p>
<p>Par defaut, <em>chromium</em> est compilé en mode debug et c&#8217;est plutôt logique pour une version de developpement. Pour forcer le mode release :</p>
<p><span style="color: #800000;">$ ../../depot_tools/hammer &#8211;mode=Release</span></p>
<p><span style="color: #993300;"><span style="color: #000000;">Les binaires sont placés dans le répertoire<em> src/sconsbuild/debug</em> ou <em>srv/sconsbuild/release</em> suivant le mode compilé.</span></span></p>
<p><span style="color: #800000;">$ CHROME/src/sconsbuild/release/chrome</span></p>
<p><span style="color: #000000;">Comme vous le verrez sur la page de démarrage, ornée d&#8217;un immanquable panneau stop rouge, le navigateur est en version <em>pre-alpha</em>&#8230; En bref, ne vous attendez pas à quelque chose de très stable&#8230;</span></p>
<p><img class="aligncenter size-full wp-image-1298" title="capture-chromium-alpha-warning-chromium" src="http://www.jopa.fr/wp-content/uploads/2009/05/capture-chromium-alpha-warning-chromium.png" alt="capture-chromium-alpha-warning-chromium" width="640" height="701" /></p>
<p>Pour plus d&#8217;informations, vous pouvez consulter les instruction de compilation, sur le <a title="http://code.google.com/p/chromium/wiki/LinuxBuildInstructions" href="http://code.google.com/p/chromium/wiki/LinuxBuildInstructions">wiki officiel : http://code.google.com/p/chromium/wiki/LinuxBuildInstructions</a></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1300" title="capture-new-tab-chromium" src="http://www.jopa.fr/wp-content/uploads/2009/05/capture-new-tab-chromium.png" alt="capture-new-tab-chromium" width="512" height="384" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2009/05/18/compiler-google-chrome/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

