<?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>Julien Lamy</title>
	<atom:link href="http://julien.seasofcheese.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://julien.seasofcheese.net</link>
	<description></description>
	<lastBuildDate>Sat, 08 May 2010 20:31:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Only Revolutions</title>
		<link>http://julien.seasofcheese.net/2010/05/only-revolutions/</link>
		<comments>http://julien.seasofcheese.net/2010/05/only-revolutions/#comments</comments>
		<pubDate>Sat, 08 May 2010 20:30:31 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[livre]]></category>
		<category><![CDATA[roman]]></category>

		<guid isPermaLink="false">http://julien.seasofcheese.net/?p=723</guid>
		<description><![CDATA[Mark Z. Danielewski est-il capable d&#8217;écrire un livre lisible sans miroir ? Je me suis posé la question en commençant Only Revolutions, qui semblait avoir une mise en page tout aussi expérimentale que celle de House of Leaves. A priori, &#8230; <a href="http://julien.seasofcheese.net/2010/05/only-revolutions/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Mark Z. Danielewski est-il capable d&#8217;écrire un livre <a href="http://julien.seasofcheese.net/2009/06/house-of-leaves">lisible sans miroir</a> ? Je me suis posé la question en commençant <em>Only Revolutions</em>, qui semblait avoir une <a href="http://images.amazon.com/images/G/01/books/promos/a-plus/sam.large.gif">mise en page</a> tout aussi expérimentale que celle de <a href="http://www.vlou.net/2009/01/19/seance-lecture"><em>House of Leaves</em></a>. A priori, aucun accessoire n&#8217;est requis pour la lecture de son second roman, il suffit de retourner le livre de 180° toutes les huit pages. On se retrouve donc avec deux livres pour le prix d&#8217;un, chaque sens de lecture retraçant l&#8217;histoire, narrée à la première personne, d&#8217;un des deux personnages principaux.</p>
<p><span id="more-723"></span><br />
Il est difficile de rédiger une note sur ce livre sans trop en dévoiler : son intérêt ne réside pas tant dans l&#8217;intrigue, quasi-inexistante, que dans les réflexions que l&#8217;auteur amène par ce que traversent ses deux personnages et dans l&#8217;attention portée aux détails. Jeux de couleur, de typographie, de chronologie, et de nom des personnages rien ne semble avoir été laissé au hasard, ce qui était également le cas dans la construction alambiquée mais extrêmement cohérente de <em>House of Leaves</em>.</p>
<p>La lecture d&#8217;<em>Only Revolutions</em> est en elle-même une révolution, au sens géométrique plus que politique. Outre le retournement du livre toutes les huit pages, un côté cyclique est omniprésent, de la chronologie (1863&#8211;1963 dans un sens, 1963&#8211;2063 dans l&#8217;autre) au comportement des deux protagonistes (dont les traits de caractère vont s&#8217;inverser), en passant par la représentation des numéros de page, le rythme de la narration et le défilement des saisons.</p>
<p>Pour reprendre le premier paragraphe, oui, <em>Only Revolutions</em> peut être lu sans miroir, même si Danielewski a succombé à la tentation sur les pages de garde. C&#8217;est cependant un livre qui demande de la réflexion, et qu&#8217;il vaut mieux lire au mois deux « chapitres » à la fois pour éviter de perdre le rythme et le fil.</p>
<p>Avertissement final au lecteur anglophone : vu les contraintes oulipiennes que s&#8217;est imposé l&#8217;auteur (360 pages de 36 lignes, 360 mots par page), le texte se rapproche plus du vers libre que du roman habituel. Avis final au lecteur francophone : je ne sais pas ce que vaut la traduction.</p>
]]></content:encoded>
			<wfw:commentRss>http://julien.seasofcheese.net/2010/05/only-revolutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elegant Universe</title>
		<link>http://julien.seasofcheese.net/2009/12/elegant-universe/</link>
		<comments>http://julien.seasofcheese.net/2009/12/elegant-universe/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 15:29:08 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[livre]]></category>
		<category><![CDATA[science]]></category>

		<guid isPermaLink="false">http://julien.seasofcheese.net/?p=703</guid>
		<description><![CDATA[Après quelques six mois de négligence, le blog le moins alimenté et le moins lu de l&#039;univers revient là où je l&#039;avais laissé : sur une note de livre. Point de cauchemar de typographe cette fois-ci puisqu&#039;il s&#039;agit d&#039;Elegant Universe &#8230; <a href="http://julien.seasofcheese.net/2009/12/elegant-universe/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>Après quelques six mois de négligence, le blog le moins alimenté et le moins lu de l&#039;univers revient là où je l&#039;avais laissé : sur une note de livre. Point de cauchemar de typographe cette fois-ci puisqu&#039;il s&#039;agit d&#039;<em>Elegant Universe</em> de Brian Greene. La couverture le vend comme étant aussi important dans la vulgarisation scientifique que l&#039;a été <em>A Brief History of Time</em> de Stephen Hawking : s&#039;il n&#039;y avait eu que ça, j&#039;aurais laissé tomber, puisque j&#039;avais trouvé ce dernier brouillon. Puisque cette note existe, je n&#039;ai pas laissé tomber : j&#039;avais déjà lu <em>Fabric of the Cosmos</em>, toujours de Greene, présenté comme une mise à jour d&#039;<em>Elegant Universe</em>, qui m&#039;avait beaucoup plu. La table des matières différant quelque peu, je me suis lancé dans <em>Elegant Universe</em>.
</p>
</div>
<p><!-- end Dokuwiki generated code--><span id="more-703"></span><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>Pour situer un peu plus ces deux livres, il s&#039;agit de vulgaristion sur le sujet de recherche de l&#039;auteur : la théorie des cordes. Pour introduire ladite théorie, l&#039;auteur en profite aussi pour vulgariser la relativité (restreinte et généralisée) et la physique quantique, programme assez audacieux, mais, comme on le verra, bien réalisé.
</p>
<p>
La partie concernant la relativité est superbement traitée : la description du cheminement d&#039;Einstein à partir des résultats de Galilée et de Newton pour arriver à la théorie de la relativité restreinte et à ses implications est écrite dans un langage clair, et sans prononcer les mots « variété lorentzienne » ou « tenseur métrique ». L&#039;explication n&#039;est cependant pas lacunaire puisque la relativité de la simultanéité, la dilatation du temps et la contraction de l&#039;espace sont traitées de manière approfondie. La suite de cette partie promène tranquillement le lecteur dans la relativité généralisée et constitue une des rares présentations claires que j&#039;ai pu voir de la relation entre masse, gravitation et courbure de l&#039;espace-temps. Bien que le traitement soit plus concis que celui de <em>Fabric of the Cosmos</em> – s&#039;étendant moins sur les repères non-orthonormés et pas du tout sur le <em>frame-dragging</em> – il est à mon avis plus clair.
</p>
<p>
La seconde partie – physique quantique – suit un cheminement similaire : une présentation des effets non explicables par la physique classique (notamment le spectre d&#039;émission d&#039;un corps noir) suivi de la chronologie des différents principes caractérisant la physique quantique. Y passeront le principe d&#039;incertitude, la dualité onde/corpuscule, la notion de fonction d&#039;onde, en évitant, comme précédemment, de parler d&#039;espace de Hilbert ou d&#039;opérateur hamiltonien. L&#039;auteur expliquera ensuite les incompatibilités entre la théorie de la relativité et la physique quantique, afin d&#039;amener la partie suivante.
</p>
<p>
Suite chronologique de l&#039;histoire de la physique des particules, la troisième partie aborde la théorie des cordes. Il s&#039;agit du sujet de recherche de l&#039;auteur, qui explique – encore une fois clairement – pourquoi notre univers aurait onze dimensions et pourquoi nous serions constitués de petites cordes qui vibrent. Pour ceux qui haussent un sourcil d&#039;un air dubitatif, êtes-vous vraiment sûrs qu&#039;il est plus raisonnable d&#039;avoir un univers composé de petites boules avec des boules encore plus petites tournant autour ? La fin de la troisième partie est à mon goût plus brouillonne : l&#039;auteur y traite des développements récents de la théorie des cordes et un peu de cosmologie. Contrairement à <em>Fabric of the Cosmos</em>, paru quelques années plus tard, les dits développements récents le sont encore un peu trop, et on se retrouve plus face à un <em>thriller</em> haletant (quel chercheur arrivera le premier à la théorie Ûuuuultime et pourra faire la nique aux autres) qu&#039;à un essai sur la théorie des cordes. On sent que Greene n&#039;est pas un romancier et on pourra sauter sans trop de problèmes quelques dizaines de pages.
</p>
<p>
Pour conclure, plutôt <em>Elegant Universe</em> ou <em>Fabric of the cosmos</em> ? Bien que la partie sur la théorie de la relativité soit plus claire dans <em>Elegant Universe</em>, je trouve <em>Fabric of the cosmos</em> mieux présenté et plus abouti. Les plus radins iront directement vers <em>Fabric of the cosmos</em>, ceux qui ont de l&#039;argent à perdre liront les deux.
</p>
<p>
Ces deux livres, bien que des vulgarisations, requièrent malgré tout quelques notions de mécanique (niveau lycée ou première année de fac). Les explications approfondies présentes dans les notes sont plus techniques, et des connaissances plus poussées en mathématiques (et notamment en topologie pour la théorie des cordes) seront nécessaires.
</p>
</div>
<p><!-- end Dokuwiki generated code--></p>
]]></content:encoded>
			<wfw:commentRss>http://julien.seasofcheese.net/2009/12/elegant-universe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>House of Leaves</title>
		<link>http://julien.seasofcheese.net/2009/06/house-of-leaves/</link>
		<comments>http://julien.seasofcheese.net/2009/06/house-of-leaves/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 11:00:48 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[livre]]></category>
		<category><![CDATA[roman]]></category>

		<guid isPermaLink="false">http://www.seasofcheese.net/~julien/?p=587</guid>
		<description><![CDATA[La séance lecture chez Vlou était un peu prémonitoire : je viens de finir House of Leaves de Mark Z. Danielewski. Pour résumer brièvement, les éditeurs du livre reçoivent de la part d&#039;un jeune homme – dont la mère est &#8230; <a href="http://julien.seasofcheese.net/2009/06/house-of-leaves/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>La <a href="http://www.vlou.net/2009/01/19/seance-lecture" class="urlextern" title="http://www.vlou.net/2009/01/19/seance-lecture"  rel="nofollow">séance lecture</a> chez Vlou était un peu prémonitoire : je viens de finir <em>House of Leaves</em> de Mark Z. Danielewski. Pour résumer brièvement, les éditeurs du livre reçoivent de la part d&#039;un jeune homme – dont la mère est enfermée dans un hôpital psychiatrique – un roman écrit par un aveugle sur un film réalisé par un photo-journaliste qui vient d&#039;emménager avec sa famille dans une maison en Virginie.
</p>
</div>
<p><!-- end Dokuwiki generated code--><span id="more-587"></span><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>On reprend son souffle et on relit la phrase précédente. Tous ces personnages interagissent de manière complexe dans les trois parties du livre : le <em>Navidson Record</em> – le livre écrit par Zampanó, l&#039;aveugle, sur le film de Navidson, le photo-journaliste – les notes de bas de page et les annexes. Malgré sa typographie pour le moins inhabituelle – pensez à vous munir d&#039;un miroir pour un des chapitres – le <em>Navidson Record</em> dévoile l&#039;histoire la plus évidente du livre, celle de Navidson, de sa famille et de sa maison. Le ton y est volontairement académique, et cette partie du livre contient pléthore de références à des livres, des périodiques et des conférences qui analysent et dissèquent les comportements et les relations des protagonistes du <em>Navidson Record</em>.
</p>
<p>
Les notes de bas de page, hormis les références aux ouvrages cités par Zampanó, sont utilisés par Johnny Truant – le jeune homme – dans un premier temps pour expliciter certains points du <em>Navidson Record</em>, compilé à partir de fragments, et donc incomplet. Au cours du livre, Truant outrepasse son rôle d&#039;éditeur et commence à détailler les circonstances qui lui ont fait acquérir le <em>Navidson Record</em>, les effets qu&#039;ont l&#039;ouvrage sur sa vie et décrit également son enfance troublée.
</p>
<p>
Les annexes, troisième partie de <em>House of Leaves</em>, contiennent à la fois des compléments au <em>Navidson Record</em>, des textes de Johnny Truant, et des lettres écrites par sa mère à Johnny, décrivant son séjour en hôpital psychiatrique et sa plongée dans la paranoïa.
</p>
<p>
Tous ces personnages, bien que n&#039;ayant pas la même « existence » puisqu&#039;on a un narrateur principal et des histoires rapportant des histoires rapportées par lui, sont reliés. Les fils sont ténus, mais sont néanmoins là : le titre du livre que Navidson emporte lors de sa dernière exploration, une faute de pronom faite par Zampanó, une des dernières interventions de Johnny Truant, la page 97, une des lettres de la mère de Johnny contenant un message pour Zampanó ; j&#039;en oublie probablement. Tout ces éléments modifieront l&#039;interprétation que le lecteur peut faire du <em>Navidson Record</em>, et de l&#039;identité même des personnages.
</p>
<p>
Bref, relisez Borges (<em>Le Jardin aux sentiers qui bifurquent</em>, <em>Les ruines circulaires</em>, <em>L&#039;approche d&#039;Almotasim</em>) et Dick (<em>Ubik</em>, <em>Le dieu venu du Centaure</em>), trouvez un miroir et deux marque-page et lancez-vous. L&#039;expérience est suffisamment peu commune pour être tentée.
</p>
</div>
<p><!-- end Dokuwiki generated code--></p>
]]></content:encoded>
			<wfw:commentRss>http://julien.seasofcheese.net/2009/06/house-of-leaves/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conversion de profils avec ImageMagick</title>
		<link>http://julien.seasofcheese.net/2009/03/conversion-de-profils-avec-imagemagick/</link>
		<comments>http://julien.seasofcheese.net/2009/03/conversion-de-profils-avec-imagemagick/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 22:46:19 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[imagemagick]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[profil]]></category>
		<category><![CDATA[tiff]]></category>

		<guid isPermaLink="false">http://www.seasofcheese.net/~julien/?p=517</guid>
		<description><![CDATA[Voici une recette pour convertir des profils avec ImageMagick. J&#039;ai utilisé ceci pour convertir des TIFF en CMJN vers des JPEG pour affichage sur le web. Sans cette recette, les images résultat ont une dominante verdâtre et manquent de détails &#8230; <a href="http://julien.seasofcheese.net/2009/03/conversion-de-profils-avec-imagemagick/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>Voici une recette pour convertir des profils avec <a href="http://www.imagemagick.org" class="urlextern" title="http://www.imagemagick.org"  rel="nofollow">ImageMagick</a>. J&#039;ai utilisé ceci pour convertir des <acronym title="Tagged Image File Format">TIFF</acronym> en CMJN vers des <acronym title="Joint Photographics Experts Group">JPEG</acronym> pour affichage sur le web. Sans cette recette, les images résultat ont une dominante verdâtre et manquent de détails dans les zones sombres. Vu que les <acronym title="Joint Photographics Experts Group">JPEG</acronym> étaient destinés à un affichage sur le web, le profil de sortie était le <a href="http://en.wikipedia.org/wiki/SRGB#Usage" class="urlextern" title="http://en.wikipedia.org/wiki/SRGB#Usage"  rel="nofollow">sRGB</a>.
</p>
</div>
<p><!-- end Dokuwiki generated code--><span id="more-517"></span><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>Il faut indiquer à ImageMagick les deux <a href="http://www.imagemagick.org/script/command-line-options.php#profile" class="urlextern" title="http://www.imagemagick.org/script/command-line-options.php#profile"  rel="nofollow">profils</a>, il semble qu&#039;il n&#039;arrive pas à lire le profil inclus dans le <acronym title="Tagged Image File Format">TIFF</acronym> :</p>
<pre class="code">
convert -profile entree.icc -profile sRGB.icc entree.tif sortie.jpg
</pre>
<p>
Si <code>convert</code> vous répond</p>
<pre class="code">
convert: LCMS color profile library is not available `entree.tif&#039;
</pre>
<p>cela signifie que votre version d&#039;ImageMagick n&#039;est pas compilée avec <a href="http://www.littlecms.com/" class="urlextern" title="http://www.littlecms.com/"  rel="nofollow">LittleCMS</a>. Si vous utilisez <a href="http://www.macports.org/" class="urlextern" title="http://www.macports.org/"  rel="nofollow">MacPorts</a>, il faut lui préciser la variante <code>lcms</code> :</p>
<pre class="code">
port install ImageMagick +lcms
</pre>
</div>
<p><!-- end Dokuwiki generated code--></p>
]]></content:encoded>
			<wfw:commentRss>http://julien.seasofcheese.net/2009/03/conversion-de-profils-avec-imagemagick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nikon récents vs. Nikon D70s</title>
		<link>http://julien.seasofcheese.net/2009/03/nikon-recents-vs-nikon-d70s/</link>
		<comments>http://julien.seasofcheese.net/2009/03/nikon-recents-vs-nikon-d70s/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 16:32:55 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[nikon]]></category>
		<category><![CDATA[photo]]></category>

		<guid isPermaLink="false">http://www.seasofcheese.net/~julien/?p=301</guid>
		<description><![CDATA[Petit tableau récapitulatif des différences entre le Nikon D70s et les appareils reflex plus récents. D70s D40 D60 D5000 D90 Capteur (pixels) 6M, 3008&#215;2000 10M, 3872 x 2592 12M, 4288 x 2848 Capteur (mm) 23,7 x 15,5 23,6 x 15,8 &#8230; <a href="http://julien.seasofcheese.net/2009/03/nikon-recents-vs-nikon-d70s/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Petit tableau récapitulatif des différences entre le Nikon D70s et les appareils reflex plus récents.</p>
<p><span id="more-301"></span><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<table class="inline">
<tr class="row0">
<td class="col0"> </td>
<th class="col1"><a href="http://www.dpreview.com/reviews/specs/Nikon/nikon_d70s.asp" class="urlextern" title="http://www.dpreview.com/reviews/specs/Nikon/nikon_d70s.asp"  rel="nofollow">D70s</a> </th>
<th class="col2"> <a href="http://www.dpreview.com/reviews/specs/Nikon/nikon_d40.asp" class="urlextern" title="http://www.dpreview.com/reviews/specs/Nikon/nikon_d40.asp"  rel="nofollow">D40</a> </th>
<th class="col3"> <a href="http://www.dpreview.com/reviews/specs/Nikon/nikon_d60.asp" class="urlextern" title="http://www.dpreview.com/reviews/specs/Nikon/nikon_d60.asp"  rel="nofollow">D60</a> </th>
<th class="col4"> <a href="http://www.dpreview.com/previews/nikond5000/" class="urlextern" title="http://www.dpreview.com/previews/nikond5000/"  rel="nofollow">D5000</a> </th>
<th class="col5"> <a href="http://www.dpreview.com/reviews/specs/Nikon/nikon_d90.asp" class="urlextern" title="http://www.dpreview.com/reviews/specs/Nikon/nikon_d90.asp"  rel="nofollow">D90</a> </th>
</tr>
<tr class="row1">
<th class="col0"> Capteur (pixels) </th>
<td class="col1 centeralign" colspan="2">  6M, 3008&times;2000  </td>
<td class="col4 centeralign">  10M, 3872 x 2592  </td>
<td class="col5 centeralign" colspan="2">  12M, 4288 x 2848  </td>
</tr>
<tr class="row2">
<th class="col0"> Capteur (mm) </th>
<td class="col1 centeralign" colspan="2">  23,7 x 15,5  </td>
<td class="col4 centeralign">  23,6 x 15,8  </td>
<td class="col5 centeralign" colspan="2">  23,6 x 15,8  </td>
</tr>
<tr class="row3">
<th class="col0"> <a href="http://www.bythom.com/printsizes.htm" class="urlextern" title="http://www.bythom.com/printsizes.htm"  rel="nofollow">Impression, 250 dpi (cm)</a> </th>
<td class="col1 centeralign" colspan="2">  30,8 x 20,5  </td>
<td class="col4 centeralign">  39,6 x 26,5  </td>
<td class="col5 centeralign" colspan="2">  43,9 x 29,1  </td>
</tr>
<tr class="row4">
<th class="col0"> <acronym title="International Organization for Standardization">ISO</acronym> <sup><a href="#fn__1" name="fnt__1" id="fnt__1" class="fn_top">1)</a></sup> </th>
<td class="col1 centeralign" colspan="2">  200 – 1600  </td>
<td class="col4 centeralign">  100  – 1600  </td>
<td class="col5 centeralign" colspan="2">  200 – 3200  </td>
</tr>
<tr class="row5">
<th class="col0">Capteurs autofocus </th>
<td class="col1 centeralign">  5  </td>
<td class="col2 centeralign" colspan="2">  3  </td>
<td class="col5 centeralign" colspan="2">  11  </td>
</tr>
<tr class="row6">
<th class="col0">LCD (pouces) </th>
<td class="col1 centeralign">  2 (5,1 cm)  </td>
<td class="col2 centeralign" colspan="2">  2,5 (6,4cm)  </td>
<td class="col5 centeralign">  2,7 (6,9 cm)  </td>
<td class="col6 centeralign">  3 (7,7 cm)  </td>
</tr>
<tr class="row7">
<th class="col0">LCD (pixels) </th>
<td class="col1 centeralign">  130000  </td>
<td class="col2 centeralign" colspan="3">  230000  </td>
<td class="col6 centeralign">  920000  </td>
</tr>
<tr class="row8">
<th class="col0">Test de profondeur de champ </th>
<td class="col1 centeralign">  oui  </td>
<td class="col2 centeralign" colspan="3">  non  </td>
<td class="col6 centeralign">  oui  </td>
</tr>
<tr class="row9">
<th class="col0"> Molettes </th>
<td class="col1 centeralign">  2  </td>
<td class="col2 centeralign" colspan="3">  1  </td>
<td class="col6 centeralign">  2  </td>
</tr>
<tr class="row10">
<th class="col0">Bracketing </th>
<td class="col1 centeralign">  oui  </td>
<td class="col2 centeralign" colspan="2">  non  </td>
<td class="col5 centeralign" colspan="2">  oui  </td>
</tr>
<tr class="row11">
<th class="col0"> Autofocus </th>
<td class="col1 centeralign">  Tous  </td>
<td class="col2 centeralign" colspan="3">  AF-S et AF-I  </td>
<td class="col6 centeralign">  Tous  </td>
</tr>
<tr class="row12">
<th class="col0">Poids avec batterie (g) </th>
<td class="col1 centeralign">  679  </td>
<td class="col2 centeralign" colspan="2">  522  </td>
<td class="col5 centeralign">  &gt; 560 (607 ?)  </td>
<td class="col6 centeralign">  703  </td>
</tr>
<tr class="row13">
<th class="col0">Objectif du kit</th>
<td class="col1"> <a href="http://www.kenrockwell.com/nikon/1870.htm" class="urlextern" title="http://www.kenrockwell.com/nikon/1870.htm"  rel="nofollow">18-70mm f/3,5-4,5</a> </td>
<td class="col2"> <a href="http://www.kenrockwell.com/nikon/18-55-ii.htm" class="urlextern" title="http://www.kenrockwell.com/nikon/18-55-ii.htm"  rel="nofollow">18-55mm f/3,5-5,6</a> </td>
<td class="col3"> <a href="http://www.kenrockwell.com/nikon/18-55mm-vr.htm" class="urlextern" title="http://www.kenrockwell.com/nikon/18-55mm-vr.htm"  rel="nofollow">18-55mm f/3,5-5,6 VR</a> </td>
<td class="col4"> 18-55 II ou 18-55 VR </td>
<td class="col5"> aucun </td>
</tr>
<tr class="row14">
<th class="col0">Transfert </th>
<td class="col1 centeralign">  USB 1.1  </td>
<td class="col2 centeralign" colspan="4">  USB 2.0  </td>
</tr>
<tr class="row15">
<th class="col0">Stockage </th>
<td class="col1 centeralign">  CF  </td>
<td class="col2 centeralign" colspan="4">  SD, SDHC  </td>
</tr>
<tr class="row16">
<th class="col0"> Prix (€)<sup><a href="#fn__2" name="fnt__2" id="fnt__2" class="fn_top">2)</a></sup> </th>
<td class="col1"> </td>
<td class="col2"> 299 (kit) </td>
<td class="col3"> 366 (nu) </td>
<td class="col4"> 737 (nu) </td>
<td class="col5"> 825 (nu) </td>
</tr>
<tr class="row17">
<td class="col0"> </td>
<td class="col1"> </td>
<td class="col2"> </td>
<td class="col3"> 426 (kit) </td>
<td class="col4"> 1430 (+ 18-200 VR) </td>
</tr>
</table>
<p>On voit dans cette table que le D70s et le D40 ont le même capteur. On voit également que le D40 et le D60 sont similaires, à l&#039;exception du capteur. Le D90 est un cran au dessus du lot, tout en étant plus lourd et plus cher.
</p>
<div class="footnotes">
<div class="fn"><sup><a href="#fnt__1" id="fn__1" name="fn__1" class="fn_bot">1)</a></sup><br />
sensibilité de base du capteur : un réglage sur une valeur supérieure ajoute du bruit</div>
<div class="fn"><sup><a href="#fnt__2" id="fn__2" name="fn__2" class="fn_bot">2)</a></sup><br />
au moins cher, selon <a href="http://www.monsieurprix.com" class="urlextern" title="http://www.monsieurprix.com"  rel="nofollow">monsieurprix</a></div>
</div>
</div>
<p><!-- end Dokuwiki generated code--></p>
]]></content:encoded>
			<wfw:commentRss>http://julien.seasofcheese.net/2009/03/nikon-recents-vs-nikon-d70s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boitier de CD en origami, version SVG</title>
		<link>http://julien.seasofcheese.net/2009/02/boitier-de-cd-en-origami-version-svg/</link>
		<comments>http://julien.seasofcheese.net/2009/02/boitier-de-cd-en-origami-version-svg/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 14:09:26 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[cd]]></category>
		<category><![CDATA[origami]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://www.seasofcheese.net/~julien/?p=36</guid>
		<description><![CDATA[Il y un bout de temps, j&#039;avais trouvé des instructions pour un boitier de CD en origami. Voici une version en SVG, avec de la place pour un logo.]]></description>
			<content:encoded><![CDATA[<p><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>Il y un bout de temps, j&#039;avais trouvé des <a href="http://users.jyu.fi/~mweber/blog/Bricolage/pochette_cd.html" class="urlextern" title="http://users.jyu.fi/~mweber/blog/Bricolage/pochette_cd.html"  rel="nofollow">instructions pour un boitier de CD en origami</a>. Voici <a href="http://www.seasofcheese.net/~julien/wp-content/uploads/2009/02/cd_origami.svg" class="urlextern" title="http://www.seasofcheese.net/~julien/wp-content/uploads/2009/02/cd_origami.svg"  rel="nofollow">une version en SVG</a>, avec de la place pour un logo.
</p>
</div>
<p><!-- end Dokuwiki generated code--></p>
]]></content:encoded>
			<wfw:commentRss>http://julien.seasofcheese.net/2009/02/boitier-de-cd-en-origami-version-svg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Surveiller l&#8217;accès à une page du site</title>
		<link>http://julien.seasofcheese.net/2009/02/surveiller-lacces-a-une-page-du-site/</link>
		<comments>http://julien.seasofcheese.net/2009/02/surveiller-lacces-a-une-page-du-site/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 10:13:32 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.seasofcheese.net/~julien/?p=21</guid>
		<description><![CDATA[Voici un script simple qui permet de surveiller l&#039;accès à certaines URLs de votre site, en se basant sur les logs d&#039;Apache. Si l&#039;accès à une page est détecté, le script envoie un mail à un ensemble de destinataires. #!/usr/bin/python &#8230; <a href="http://julien.seasofcheese.net/2009/02/surveiller-lacces-a-une-page-du-site/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>Voici un script simple qui permet de surveiller l&#039;accès à certaines URLs de votre site, en se basant sur les logs d&#039;Apache. Si l&#039;accès à une page est détecté, le script envoie un mail à un ensemble de destinataires.
</p>
</div>
<p><!-- end Dokuwiki generated code--><span id="more-21"></span><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<pre class="code python"><span class="co1">#!/usr/bin/python</span>
&nbsp;
<span class="kw1">import</span> <span class="kw3">re</span>
<span class="kw1">import</span> <span class="kw3">smtplib</span>
<span class="kw1">import</span> <span class="kw3">subprocess</span>
<span class="kw1">from</span> <span class="kw3">email</span>.<span class="me1">mime</span>.<span class="me1">text</span> <span class="kw1">import</span> MIMEText
&nbsp;
log_file = <span class="st0">&quot;/var/log/apache2/access.log&quot;</span>
offset_file = <span class="st0">&quot;/home/me/access.offset&quot;</span>
logtail = <span class="st0">&quot;/usr/sbin/logtail&quot;</span>
&nbsp;
watched_pages = <span class="br0">&#91;</span>
    <span class="st0">&quot;/ma-page-surveillee&quot;</span>,
    <span class="st0">&quot;/mon-autre-page-surveillee&quot;</span>,
<span class="br0">&#93;</span>
&nbsp;
known_ips = <span class="br0">&#91;</span>
    <span class="st0">&quot;127.0.0.1&quot;</span>,
<span class="br0">&#93;</span>
&nbsp;
recipients = <span class="br0">&#91;</span><span class="st0">&quot;me@myself.com&quot;</span><span class="br0">&#93;</span>
&nbsp;
arguments = <span class="st0">&quot;-o &quot;</span> + offset_file + <span class="st0">&quot; -f &quot;</span> + log_file
&nbsp;
process = <span class="kw3">subprocess</span>.<span class="me1">Popen</span><span class="br0">&#40;</span><span class="br0">&#91;</span>logtail, <span class="st0">&quot;-o&quot;</span>, offset_file, <span class="st0">&quot;-f&quot;</span>, log_file<span class="br0">&#93;</span>,
    stdout=<span class="kw3">subprocess</span>.<span class="me1">PIPE</span>,
    universal_newlines=<span class="kw2">True</span><span class="br0">&#41;</span>
&nbsp;
output = process.<span class="me1">communicate</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>
&nbsp;
output = output.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&quot;n&quot;</span><span class="br0">&#41;</span>
&nbsp;
accessed_pages = <span class="br0">&#91;</span><span class="br0">&#93;</span>
<span class="kw1">for</span> line <span class="kw1">in</span> output :
    <span class="kw1">for</span> page <span class="kw1">in</span> watched_pages :
        <span class="kw1">if</span> page <span class="kw1">in</span> line :
            pattern = <span class="kw3">re</span>.<span class="kw2">compile</span><span class="br0">&#40;</span><span class="st0">&quot;(.*?) - - [(.*?)]W+&quot;</span><span class="br0">&#40;</span>.<span class="me1">*</span><span class="sy0">?</span><span class="br0">&#41;</span><span class="st0">&quot;.*&quot;</span><span class="br0">&#41;</span>
            elements = <span class="kw3">re</span>.<span class="me1">split</span><span class="br0">&#40;</span>pattern, line<span class="br0">&#41;</span>
            ip = elements<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>
            date = elements<span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span>
            request = elements<span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span>
            method, url, rest = request.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&quot; &quot;</span>, <span class="nu0">3</span><span class="br0">&#41;</span>
            <span class="kw1">if</span> url.<span class="me1">startswith</span><span class="br0">&#40;</span>page<span class="br0">&#41;</span> <span class="kw1">and</span> ip <span class="kw1">not</span> <span class="kw1">in</span> known_ips :
                accessed_pages.<span class="me1">append</span><span class="br0">&#40;</span> <span class="br0">&#40;</span>ip, date, url<span class="br0">&#41;</span> <span class="br0">&#41;</span>
&nbsp;
<span class="kw1">if</span> <span class="kw2">len</span><span class="br0">&#40;</span>accessed_pages<span class="br0">&#41;</span> == <span class="nu0">0</span> :
    exit<span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span>
&nbsp;
payload = <span class="st0">&quot;&quot;</span>
<span class="kw1">for</span> <span class="br0">&#40;</span>ip, date, url<span class="br0">&#41;</span> <span class="kw1">in</span> accessed_pages :
    line = ip + <span class="st0">&quot; a vu &quot;</span> + url + <span class="st0">&quot; le &quot;</span> + date
    payload += line + <span class="st0">&quot;n&quot;</span>
&nbsp;
message = MIMEText<span class="br0">&#40;</span>payload<span class="br0">&#41;</span>
message<span class="br0">&#91;</span><span class="st0">&quot;From&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;root@myself.com&quot;</span>
<span class="kw1">for</span> recipient <span class="kw1">in</span> recipients :
    message<span class="br0">&#91;</span><span class="st0">&quot;To&quot;</span><span class="br0">&#93;</span> = recipient
message<span class="br0">&#91;</span><span class="st0">&quot;Subject&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;You've got a visitor <img src='http://julien.seasofcheese.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &quot;</span>
&nbsp;
smtp_server = <span class="kw3">smtplib</span>.<span class="me1">SMTP</span><span class="br0">&#40;</span><span class="st0">'localhost'</span><span class="br0">&#41;</span>
&nbsp;
smtp_server.<span class="me1">sendmail</span><span class="br0">&#40;</span><span class="st0">&quot;root@myself.com&quot;</span>, recipients, message.<span class="me1">as_string</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
smtp_server.<span class="me1">quit</span><span class="br0">&#40;</span><span class="br0">&#41;</span></pre>
<p>
On pourra mettre ce script dans une <code>crontab</code>. Il devra également être intégré à <code>logrotate</code>, afin que la fin du fichier soit également analysée :</p>
<pre class="code bash">prerotate
    <span class="sy0">/</span>usr<span class="sy0">/</span>bin<span class="sy0">/</span>python <span class="sy0">/</span>some<span class="sy0">/</span>path<span class="sy0">/</span>page_accessed.py
endscript</pre>
</div>
<p><!-- end Dokuwiki generated code--></p>
]]></content:encoded>
			<wfw:commentRss>http://julien.seasofcheese.net/2009/02/surveiller-lacces-a-une-page-du-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mise à jour des pays de Statpress reloaded</title>
		<link>http://julien.seasofcheese.net/2009/01/mise-a-jour-des-pays-de-statpress-reloaded/</link>
		<comments>http://julien.seasofcheese.net/2009/01/mise-a-jour-des-pays-de-statpress-reloaded/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 15:46:46 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[geoip]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[statpress]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.seasofcheese.net/~julien/?p=3</guid>
		<description><![CDATA[Statpress-reloaded se base sur le DNS pour déterminer le pays d&#039;origine, ce qui est assez imprécis. En utilisant les données de Maxmind, on peut mettre le pays à jour. include&#40;&#34;geoipcity.inc&#34;&#41;; include&#40;&#34;geoipregionvars.php&#34;&#41;; $gi = geoip_open&#40;&#34;GeoLiteCity.dat&#34;,GEOIP_STANDARD&#41;; $link = mysql_connect&#40;&#34;host&#34;, &#34;user&#34;, &#34;pass&#34;&#41; or &#8230; <a href="http://julien.seasofcheese.net/2009/01/mise-a-jour-des-pays-de-statpress-reloaded/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>Statpress-reloaded se base sur le <acronym title="Domain Name Server">DNS</acronym> pour déterminer le pays d&#039;origine, ce qui est assez imprécis. En utilisant les données de <a href="http://www.maxmind.com/app/city#api" class="urlextern" title="http://www.maxmind.com/app/city#api"  rel="nofollow">Maxmind</a>, on peut mettre le pays à jour.
</p>
</div>
<p><!-- end Dokuwiki generated code--><span id="more-3"></span><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<pre class="code php"><span class="kw1">include</span><span class="br0">&#40;</span><span class="st0">&quot;geoipcity.inc&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">include</span><span class="br0">&#40;</span><span class="st0">&quot;geoipregionvars.php&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re1">$gi</span> <span class="sy0">=</span> geoip_open<span class="br0">&#40;</span><span class="st0">&quot;GeoLiteCity.dat&quot;</span><span class="sy0">,</span>GEOIP_STANDARD<span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re1">$link</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="st0">&quot;host&quot;</span><span class="sy0">,</span> <span class="st0">&quot;user&quot;</span><span class="sy0">,</span>  <span class="st0">&quot;pass&quot;</span><span class="br0">&#41;</span>
       or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">'Could not connect: '</span> <span class="sy0">.</span> <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'Connected successfully'</span><span class="sy0">;</span>
<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="st0">'wordpress_db'</span><span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">'Could not select database'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// Performing SQL query</span>
<span class="re1">$query</span> <span class="sy0">=</span> <span class="st0">'SELECT * FROM wp_statpress'</span><span class="sy0">;</span>
<span class="re1">$result</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re1">$query</span><span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">'Query failed: '</span> <span class="sy0">.</span> <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">while</span> <span class="br0">&#40;</span><span class="re1">$line</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_fetch_array"><span class="kw3">mysql_fetch_array</span></a><span class="br0">&#40;</span><span class="re1">$result</span><span class="sy0">,</span> MYSQL_ASSOC<span class="br0">&#41;</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
       <span class="re1">$record</span> <span class="sy0">=</span> geoip_record_by_addr<span class="br0">&#40;</span><span class="re1">$gi</span><span class="sy0">,</span> <span class="re1">$line</span><span class="br0">&#91;</span>ip<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
       <span class="co1">//echo $line[id] .&quot; &quot; . strtolower($record-&gt;country_code) . &quot;&amp;lt;br/&gt;&quot;;</span>
       <span class="re1">$update_query</span> <span class="sy0">=</span> <span class="st0">&quot;UPDATE wp_statpress SET nation = &quot;</span><span class="st0">&quot; . strtolower($record-&gt;country_code) . &quot;</span><span class="st0">&quot; WHERE id=&quot;</span> <span class="sy0">.</span> <span class="re1">$line</span><span class="br0">&#91;</span>id<span class="br0">&#93;</span><span class="sy0">;</span>
       <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re1">$update_query</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="co1">// Free resultset</span>
<a href="http://www.php.net/mysql_free_result"><span class="kw3">mysql_free_result</span></a><span class="br0">&#40;</span><span class="re1">$result</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// Closing connection</span>
<a href="http://www.php.net/mysql_close"><span class="kw3">mysql_close</span></a><span class="br0">&#40;</span><span class="re1">$link</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
geoip_close<span class="br0">&#40;</span><span class="re1">$gi</span><span class="br0">&#41;</span><span class="sy0">;</span></pre>
</div>
<p><!-- end Dokuwiki generated code--></p>
]]></content:encoded>
			<wfw:commentRss>http://julien.seasofcheese.net/2009/01/mise-a-jour-des-pays-de-statpress-reloaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copie statique de WordPress</title>
		<link>http://julien.seasofcheese.net/2008/10/copie-statique-de-wordpress/</link>
		<comments>http://julien.seasofcheese.net/2008/10/copie-statique-de-wordpress/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 19:45:41 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.seasofcheese.net/~julien/?p=8</guid>
		<description><![CDATA[Voici une recette pour faire une copie statique de WordPress, afin de pouvoir accéder au contenu du site sans avoir de connexion internet. On récupère l&#039;ensemble des pages : wget -m -p -k -E http://www.example.com/ wget modifie les chemins des &#8230; <a href="http://julien.seasofcheese.net/2008/10/copie-statique-de-wordpress/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>Voici une recette pour faire une copie statique de WordPress, afin de pouvoir accéder au contenu du site sans avoir de connexion internet.
</p>
</div>
<p><!-- end Dokuwiki generated code--><span id="more-8"></span><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<ol>
<li class="level1">
<div class="li"> On récupère l&#039;ensemble des pages : <code>wget -m -p -k -E <a href="http://www.example.com/" class="urlextern" title="http://www.example.com/"  rel="nofollow">http://www.example.com/</a></code></div>
</li>
<li class="level1">
<div class="li"> <code>wget</code> modifie les chemins des attributs <acronym title="HyperText Markup Language">HTML</acronym> pour les rendre relatifs, mais ne modifie pas le javascript. Tout ce qui est inclus par du code <acronym title="JavaScript">JS</acronym> ou <acronym title="Cascading Style Sheets">CSS</acronym> ne sera pas téléchargé. Il faudra donc récupérer le répertoire du thème et certains plugins (e.g. ShadowBox)</div>
</li>
<li class="level1">
<div class="li"> Il ne reste plus qu&#039;à modifier le <acronym title="HyperText Markup Language">HTML</acronym> local pour que toutes les URLs soient relatives :</div>
</li>
</ol>
<pre class="code python"><span class="kw1">import</span> <span class="kw3">os</span>
<span class="kw1">import</span> <span class="kw3">os</span>.<span class="me1">path</span>
&nbsp;
<span class="kw3">os</span>.<span class="me1">system</span><span class="br0">&#40;</span><span class="st0">&quot;wget -m -p -k -E http://www.example.com/&quot;</span><span class="br0">&#41;</span>
&nbsp;
<span class="kw1">for</span> root, dirs, files <span class="kw1">in</span> <span class="kw3">os</span>.<span class="me1">walk</span><span class="br0">&#40;</span><span class="st0">&quot;www.example.com&quot;</span><span class="br0">&#41;</span> :
    <span class="kw1">for</span> <span class="kw2">file</span> <span class="kw1">in</span> files :
        <span class="kw1">if</span> <span class="kw2">file</span>.<span class="me1">rsplit</span><span class="br0">&#40;</span><span class="st0">&quot;.&quot;</span>, <span class="nu0">1</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">-1</span><span class="br0">&#93;</span> == <span class="st0">&quot;html&quot;</span> :
            depth = root.<span class="me1">count</span><span class="br0">&#40;</span><span class="kw3">os</span>.<span class="me1">sep</span><span class="br0">&#41;</span>
            relpath = <span class="st0">&quot;&quot;</span>
            <span class="kw1">for</span> i <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span>depth<span class="br0">&#41;</span> :
                relpath = <span class="kw3">os</span>.<span class="me1">path</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&quot;..&quot;</span>, relpath<span class="br0">&#41;</span>
            f = <span class="kw2">open</span><span class="br0">&#40;</span><span class="kw3">os</span>.<span class="me1">path</span>.<span class="me1">join</span><span class="br0">&#40;</span>root,<span class="kw2">file</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
            modified_lines = <span class="br0">&#91;</span><span class="br0">&#93;</span>
            <span class="kw1">for</span> line <span class="kw1">in</span> f :
                modified_lines.<span class="me1">append</span><span class="br0">&#40;</span>line.<span class="me1">replace</span><span class="br0">&#40;</span><span class="st0">&quot;http://www.example.com/&quot;</span>, relpath<span class="br0">&#41;</span><span class="br0">&#41;</span>
            f.<span class="me1">close</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
            f = <span class="kw2">open</span><span class="br0">&#40;</span><span class="kw3">os</span>.<span class="me1">path</span>.<span class="me1">join</span><span class="br0">&#40;</span>root,<span class="kw2">file</span><span class="br0">&#41;</span>, <span class="st0">&quot;w&quot;</span><span class="br0">&#41;</span>
            f.<span class="me1">writelines</span><span class="br0">&#40;</span>modified_lines<span class="br0">&#41;</span></pre>
</div>
<p><!-- end Dokuwiki generated code--></p>
]]></content:encoded>
			<wfw:commentRss>http://julien.seasofcheese.net/2008/10/copie-statique-de-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accélérer ShadowBox dans WordPress</title>
		<link>http://julien.seasofcheese.net/2008/10/accelerer-shadowbox-dans-wordpress/</link>
		<comments>http://julien.seasofcheese.net/2008/10/accelerer-shadowbox-dans-wordpress/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 18:07:48 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[shadowbox]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.seasofcheese.net/~julien/?p=11</guid>
		<description><![CDATA[Attention : ceci n&#039;est plus nécessaire depuis la version 2.0.3.2 du 26 décembre 2008 Le plugin ShadowBox pour WordPress est bien mais trop lent à l&#039;affichage. Certes les animations sont jolies, mais elles tapent vite sur le système. Heureusement, le &#8230; <a href="http://julien.seasofcheese.net/2008/10/accelerer-shadowbox-dans-wordpress/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p><strong>Attention : ceci n&#039;est plus nécessaire depuis la version 2.0.3.2 du 26 décembre 2008 </strong>
</p>
</div>
<p><!-- end Dokuwiki generated code--><span id="more-11"></span><!-- begin Dokuwiki generated code--></p>
<div class="dokuwiki">
<p>Le plugin <a href="http://wordpress.org/extend/plugins/shadowbox-js/" class="urlextern" title="http://wordpress.org/extend/plugins/shadowbox-js/"  rel="nofollow">ShadowBox pour WordPress</a> est bien mais trop lent à l&#039;affichage. Certes les animations sont jolies, mais elles tapent vite sur le système. Heureusement, le <a href="http://www.mjijackson.com/shadowbox/index.html" class="urlextern" title="http://www.mjijackson.com/shadowbox/index.html"  rel="nofollow">script sur lequel se base le plugin</a> est suffisament configurable pour remédier à cela.
</p>
<p>
Il suffit de mettre à false les paramètres animate et animateFade du script. Pour intégrer cela à WordPress, il faut modifier le fichier wp-content/plugins/shadowbox-js/shadowbox-js.php. Recherchez une ligne disant :</p>
<pre class="code php"><span class="re1">$initOps</span> <span class="sy0">=</span> <span class="st0">'flvPlayer: '</span><span class="st0">' . $sbPluginUrl . '</span><span class="sy0">/</span>flvplayer<span class="sy0">.</span>swf<span class="st0">''</span><span class="sy0">;</span></pre>
<p>
À la suite de cette ligne, ajoutez :</p>
<pre class="code php"><span class="re1">$initOps</span> <span class="sy0">.=</span> <span class="st0">', animate:false, animateFade:false'</span><span class="sy0">;</span></pre>
</div>
<p><!-- end Dokuwiki generated code--></p>
]]></content:encoded>
			<wfw:commentRss>http://julien.seasofcheese.net/2008/10/accelerer-shadowbox-dans-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
