<?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>Amicalement Web - Astuces et Bons plans dans le développement web &#187; optimisation</title>
	<atom:link href="http://www.amicalement-web.net/tag/optimisation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.amicalement-web.net</link>
	<description>Astuces et bons plans d&#039;un web developpeur</description>
	<lastBuildDate>Thu, 03 Jun 2010 10:06:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Symfony Live 2010 : 2eme journée</title>
		<link>http://www.amicalement-web.net/symfony-live-2010-2eme-journee/2010/02/19/</link>
		<comments>http://www.amicalement-web.net/symfony-live-2010-2eme-journee/2010/02/19/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 10:00:15 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[profiling]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=1237</guid>
		<description><![CDATA[ Après une première journée, un peu éprouvante &#8211; levé 5h30, couché 2h &#8211; on est reparti au front, avec dans la ligne de mire la preview de Symfony 2. Forcément, ca motive.

Matinée
Okapi
Bon, on avoue, on a un peu zappé cette conférence, histoire de gagner un peu plus de temps de sommeil pour tenir sur [...]]]></description>
			<content:encoded><![CDATA[<p><a  href="http://www.amicalement-web.net/symfony-live-2010-2eme-journee/2010/02/19"><img src="http://www.amicalement-web.net/wp-content/uploads/estrade.jpg" alt="" title="estrade" width="614" height="100" class="alignnone size-full wp-image-1312" /></a> Après <a  href="/symfony-live-2010-1ere-journee/2010/02/17/">une première journée</a>, un peu éprouvante &#8211; levé 5h30, couché 2h &#8211; on est reparti au front, avec dans la ligne de mire la preview de Symfony 2. Forcément, ca motive.<br />
<span id="more-1237"></span></p>
<h3>Matinée</h3>
<h4>Okapi</h4>
<p>Bon, on avoue, on a un peu zappé cette conférence, histoire de gagner un peu plus de temps de sommeil pour tenir sur la durée, et en profiter pour mettre au propre le billet d&#8217;hier. On a juste retenu qu&#8217;ils utilisaient le <a  href="http://components.symfony-project.org/dependency-injection/">Dependency Injection Container</a> des components symfony.</p>
<p>Mais vous pouvez <a  href="http://www.slideshare.net/lsmith77/okapi-meet-symfony-symfony-meet-okapi">retrouver les slides</a>.</p>
<h4>Optimisation PHP</h4>
<p>Un tour complet à coup d&#8217;exemple de opcode, intéressant même si au final ce sont toujours les mêmes choses qui sont redites, très génériques. Je me tends à croire qu&#8217;un jour on aura un vrai cas concret dans ce genre d&#8217;intervention.</p>
<p>Et puis surtout, quand on utilise un framework, on a plus à gagner, <strong>à bien utiliser le framework</strong> qu&#8217;à optimiser une boucle. </p>
<p>Mais on a réussi à avoir quelques tips supplémentaires pendant la séance de questions :</p>
<ul>
<li>La pré incrémentation est plus rapide que la post incrémentation</li>
<li>Toujours privilégier la boucle while à une boucle for</li>
<li>Bannir les relations parent/enfant &#8211; L&#8217;enfant pointe sur le parent et inversement. Pas bon pour la mémoire</li>
</ul>
<p><a  href="http://www.slideshare.net/xdecock/php-performance-sflive-2010">Voir les slides</a><br />
Et pour aller plus loin dans le sujet, une <a  href="http://www.slideshare.net/fabianlange/full-stack-web-application-performance-tuning-presentation">ancienne présentation de Fabian Lange</a>.</p>
<h4>Git introduction</h4>
<p>Une des premières sessions Show Time, où Scott Chacon y est allé franco pour présenter Git, à une assistance majoritairement SVN.<br />
Une petite autopromo : rapidité, travail offline (sauf pull et push) et <strong>puissance du système de branches</strong> ont suffit à mettre le doute dans la tête de beaucoup, à ce qu&#8217;on pouvait lire sur twitter après coup.</p>
<p>Il a ensuite donné le lien d&#8217;une librairie pour <a  href="http://redotheoffice.com/?p=130">contrôler git depuis PHP (glib)</a> et a su répondre à la principale question:</p>
<dl>
<dt>Un équivalent de SVN externals?</dt>
<dd>Bien sûr, git uses submodules, mais il faut les mettre à jour à la main (donc 2 commandes au lieu d&#8217;une pour mettre à jour, ça reste raisonnable)</dd>
</dl>
<p><a  href="http://www.slideshare.net/chacon/git-101-presentation">Voir les slides</a></p>
<h4>Zend Framework</h4>
<p>Est arrivé, celui qui s&#8217;est présenté comme &laquo;&nbsp;N&#8217;est pas l&#8217;ennemi&nbsp;&raquo;, le lead developer du Zend Framework.<br />
Il a rappelé combien étaient nombreuses les librairies et composants développés et combien <strong>il était facile de les inclure dans symfony</strong>. Ca m&#8217;a d&#8217;ailleurs fait penser, que je ne regarde sans doute pas assez chez eux, quand j&#8217;ai besoin d&#8217;une librairie externe.</p>
<p><a  href="http://www.slideshare.net/weierophinney/using-zend-framework-with-symfony">Voir les slides</a><br />
Et Matthew a ensuite fait un debriefing son intervention <a  href="http://weierophinney.net/matthew/archives/232-Symfony-Live-2010.html">sur son blog</a>.</p>
<h3>Aprem</h3>
<h4>Implementing Symfony CMS</h4>
<p>La première touche hispanique de la conférence, qui nous a rappelé combien <strong>symfony était vraiment international</strong>. Marcos, nous a donc expliqué pourquoi avoir choisi symfony pour développer les CMS de leur client et l&#8217;approche qu&#8217;ils ont eu pour le réaliser.</p>
<p>Pas de gros scoop, ni d&#8217;exemple super concret mais une approche intéressante et surtout, t<strong>irée d&#8217;une vrai expérience dans le domaine</strong>.</p>
<p><a  href="http://www.slideshare.net/esmiz/implementing-a-symfony-based-cms-in-a-publishing-company">Voir les slides</a></p>
<h4>Event System</h4>
<p>Deuxième intervention de Dennis sur un des mécanismes sans doute le moins utilisé dans la panoplie Symfony, les events. Après avoir repris, ce qu&#8217;on peut trouver sur Symfony-Project, il a démontré pourquoi <strong>le couplage trop fort, c&#8217;était le mal </strong>- et donc <strong>les events le bien</strong> (ou le mal aussi, voir ci-dessous).</p>
<p>Un petit sondage fait sur twitter, a montré combien les possibilités étaient larges. Mais aussi qu&#8217;on pouvait en faire tout et n&#8217;importe quoi &#8211; Merci <a  href="http://twitter.com/ubermuda">ubermuda</a> pour la démonstration :p.<br />
Ce qui nous a valu l&#8217;expression &laquo;&nbsp;Events, No silver bullet!&nbsp;&raquo; &#8211; Entendre par là, que ce n&#8217;est pas la solution à tout.</p>
<p>En résumé, <strong>un event s&#8217;utilise pour du &laquo;&nbsp;couplage optionnel&nbsp;&raquo;</strong>, sinon ça revient à avoir un couplage fort également.</p>
<p>Des questions assez peu pertinentes dans l&#8217;ensemble, comme quoi, c&#8217;était pas clair pour tout le monde les events, la conf était donc nécessaire contrairement à ce qu&#8217;on pouvait lire sur twitter.</p>
<p><a  href="http://www.slideshare.net/denderello/symfony-live-2010-using-symfony-events-to-create-clean-class-interfaces">Voir les slides</a></p>
<h4>Symfony in the cloud</h4>
<p>Kris, de la core team, avec cette présentation aura remporté le prix des meilleurs transitions et de <strong>la slide la plus Hollywoodienne</strong>, avec une démo en temps réel de la création d&#8217;un nuage &#8211; musique de circonstance pour l&#8217;occasion &#8211; où il a réussi un tour de force en rajoutant un nuage en arrière plan de son nuage!<br />
Le public était conquis.</p>
<p>Plus sérieusement, il a pris comme support son site nebul.us, pour montrer comment <strong>interconnecter Symfony avec différents environnement à base de nuage</strong>, 3 serveurs Mysql &#8211; 1 Master, 2 Slaves &#8211; n apache, S3 pour le stockage.</p>
<p>De très belles démo de code pour bénéficier <strong>des nouvelles possibilités d&#8217;extension de Doctrine 1.2</strong> &#8211; à voir dans les slides &#8211; entre autres mais aussi d&#8217;<strong>utilisation de composant Zend</strong>.</p>
<p>L&#8217;effet démo ne l&#8217;aura au final pas épargné lui aussi, une tentative de release en direct de son plugin pour gérer les couples Master/Slave et un beau fail quand il est revenu sur la page d&#8217;accueil après qu&#8217;il se soit reloggué suite à l&#8217;expiration de sa session sur symfony-project :D</p>
<p>À noter que cette présentation aurait pu ne pas avoir lieu si <a  href="http://twitter.com/vjousse">Vince</a> n&#8217;avait pas sauvé la mise, en sortant un adaptateur dvi ancienne génération pour le prêter à Kris :p</p>
<p><a  href="http://www.slideshare.net/kriswallsmith/symfony-in-the-cloud">Voir les slides</a></p>
<h4>Debug Symfony</h4>
<p>Une vrai démonstration de l&#8217;approche à avoir pour <strong>vraiment optimiser son application</strong>. Plutôt que de se demander si echo sera plus rapide avec une virgule ou un point.</p>
<p>Il encourage de<strong> logguer en base</strong>, pour y avoir accès plus facilement et ajouter des notions de filtrage aisément et insiste sur<strong> les avantages du profiling</strong>, même s&#8217;il a oublié qu&#8217;<a  href="http://www.symfony-project.org/plugins/elXHProfPlugin">un plugin Symfony était dispo</a> pour ça .</p>
<p>On a pu noter les outils utilisés pour le benchmark et les metrics, <a  href="http://tsung.erlang-projects.org/">Tsung</a> et Graphite, que je ne connaissais pas. Toujours ça de bon à prendre aussi !</p>
<p>Une présentation très complète mais rien d&#8217;inédit que vous trouverez <a  href="http://www.slideshare.net/old_sound/debugging-and-profiling-symfony-apps">dans les slides</a>.</p>
<h4>Yahoooo</h4>
<p>Comme d&#8217;habitude, Dustin, membre de la core team, et Yahoo man est venu présenter un peu le boulot de Yahoo autour de symfony. Pourquoi symfony, leurs contributions, leurs modifications.<br />
Un petit tour des sites actuels développés sur le framework, avec un slide où on a pu apercevoir Shopgenie \o/ &#8211; la version anglaise de MonsieurPrix, développée par moi même ;) ca fait toujours plaisir!</p>
<p>Il a ensuite abordé le développement d&#8217;application web plus généralement et les bonnes questions à se poser concernant les choix à faire dans le design d&#8217;une architecture. Avec en guise de conclusion, une transition toute trouvée : &laquo;&nbsp;<strong>Symfony 2 is the right direction</strong>&nbsp;&raquo; !</p>
<p>On notera au passage un petit sondage de l&#8217;assistance sur les framework js, que<strong> jQuery a remporté</strong> avec une écrasante majorité.</p>
<p><a  href="http://www.slideshare.net/dustin.whittle/building-a-platform-from-open-source-at-yahoo-3209565">Voir les slides</a></p>
<h4>Symfony 2 preview</h4>
<p>Est arrivée, la présentation que tout le monde attendait, Symfony 2 ! Il faudrait un billet dédié à lui même, et on va beaucoup en parler dans les prochaines semaines, donc je vais pas m&#8217;attarder longtemps.</p>
<p>On peut retenir, que <strong>Symfony 2 sera orienté configuration</strong> &#8211; tout est configurable &#8211; et <strong>couplage faible</strong> avec un passage sur PHP 5.3. Il ne sera plus question également de développer des choses annexes, comme le logger ou le système de cache, mais d&#8217;<strong>utiliser des librairies reconnues</strong> pour ça (dont celles du Zend Framework justement).</p>
<p>Il a bien insisté sur le fait, que Symfony 2 pourra faire exactement les mêmes choses que la version 1, mais <strong>plus simplement et surtout plus rapidement</strong>. Avec par exemple, le lazy load &#8211; on charge seulement ce dont le framework a besoin.</p>
<p>Avec une conclusion &laquo;&nbsp;Faster as hell! &laquo;&nbsp;.</p>
<p>Bon il n&#8217;aura pas échappé à l&#8217;effet démo, avec une tentative de commit de la preview release en direct, qui s&#8217;est soldée également par un échec. Le compte Wifi de la Cité Universitaire était expiré ;-) Mais vous pouvez désormais récupérer le code source de cette première version et faire joujou avec sur <a  href="http://www.symfony-reloaded.org">le site dédié à Symfony 2</a> !</p>
<p><a  href="http://www.slideshare.net/fabpot/symfony-20-revealed">Voir les slides</a></p>
<p>Il ne restait plus qu&#8217;à faire le chemin inverse, Direction Marseille. En espérant avoir l&#8217;occasion de revenir ;)</p>
<p class="alignright">
<em>Vos envoyés spéciaux pour l&#8217;évènement: Vince et Tim</em>
</p>
<p style="clear: both">
<small>Crédit photo: http://www.flickr.com/photos/xavierbriand/4368850785/in/set-72157623335239339/</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/symfony-live-2010-2eme-journee/2010/02/19/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Effectuer un pré et/ou post traitement dans vos actions Symfony</title>
		<link>http://www.amicalement-web.net/effectuer-un-pre-et-ou-post-traitement-dans-vos-actions/2009/05/01/</link>
		<comments>http://www.amicalement-web.net/effectuer-un-pre-et-ou-post-traitement-dans-vos-actions/2009/05/01/#comments</comments>
		<pubDate>Fri, 01 May 2009 11:10:06 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=209</guid>
		<description><![CDATA[ Dans le genre, méthode symfony dont on ne parle pas qui peuvent être utiles, voici preExecute et son copain postExecute toutes les deux, méthodes de sfAction.
Comme leur nom le laisse à penser, ce sont des méthodes qui seront appeler en amont et en aval de l&#8217;exécution d&#8217;une action. Je n&#8217;ai pas vraiment d&#8217;idée d&#8217;utilisation [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amicalement-web.net/wp-content/uploads/dialog-information.png" alt="dialog-information" title="dialog-information" width="48" height="48" class="alignleft size-full wp-image-33" /> Dans le genre, méthode symfony dont on ne parle pas qui peuvent être utiles, voici <a  href="http://www.symfony-project.org/api/1_2/sfAction#method_preexecute" class="extern">preExecute</a> et son copain <a  href="http://www.symfony-project.org/api/1_2/sfAction#method_postexecute" class="extern">postExecute</a> toutes les deux, méthodes de sfAction.</p>
<p>Comme leur nom le laisse à penser, ce sont des méthodes qui seront appeler en amont et en aval de l&#8217;exécution d&#8217;une action. Je n&#8217;ai pas vraiment d&#8217;idée d&#8217;utilisation à l&#8217;heure où j&#8217;écris mais dans un souci de factorisation, je trouve le concept intéressant et c&#8217;est bien avec ce genre de méthodes que je trouve Symfony si bien pensé. </p>
<p>Quelqu&#8217;un s&#8217;en est déjà servi? Une utilisation intéressante qui gagne à être connue?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/effectuer-un-pre-et-ou-post-traitement-dans-vos-actions/2009/05/01/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Faites patienter à votre sauce</title>
		<link>http://www.amicalement-web.net/faites-patienter-a-votre-sauce/2009/01/29/</link>
		<comments>http://www.amicalement-web.net/faites-patienter-a-votre-sauce/2009/01/29/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 17:07:19 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Bons plans]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[optimisation]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=11</guid>
		<description><![CDATA[Avec l&#8217;arrivée de gros frameworks javascript orienté AJAX que sont jQuery, Prototype ou Mootols, et leur intégration dans les applications PHP, que se soit les CMS ou les frameworks, il devient de plus en plus facile et abordable de dynamiser à coup d&#8217;ajax une interface web.
Mais du coup, on en demande de plus en plus, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amicalement-web.net/wp-content/uploads/applications-other.png" alt="applications-other" title="applications-other" width="48" height="48" class="alignleft size-full wp-image-30" />Avec l&#8217;arrivée de gros frameworks javascript orienté AJAX que sont <a  href="http://jquery.com/" class="extern">jQuery</a>, <a  href="http://www.prototypejs.org/" class="extern">Prototype</a> ou <a  href="http://mootools.net/" class="extern">Mootols</a>, et leur intégration dans les applications PHP, que se soit les CMS ou les frameworks, il devient de plus en plus facile et abordable de dynamiser à coup d&#8217;ajax une interface web.</p>
<p>Mais du coup, on en demande de plus en plus, et les traitements sont bien souvent de plus en plus lourd. Et pour un utilisateur rien n&#8217;est plus frustrant que de cliquer sur un lien/bouton et ne de pas voir l&#8217;application réagir, ne serait-ce que pour l&#8217;informer qu&#8217;elle a bien compris sa demande.</p>
<p>On a donc trouvé la solution, de petits gif animés qui symbolisent l&#8217;attente comme par exemple:<br />
<img src="http://www.amicalement-web.net/wp-content/uploads/ajax-loader.gif" alt="ajax-loader" title="ajax-loader" width="32" height="32" class="alignnone size-full wp-image-53" /> ou bien <img src="http://www.amicalement-web.net/wp-content/uploads/ajax-loader2.gif" alt="ajax-loader2" title="ajax-loader2" width="126" height="22" class="alignnone size-full wp-image-54" /></p>
<p>Et certains ont donc eu la bonne idée de faire un <a  href="http://www.ajaxload.info/" class="extern">générateur de load ajax</a> avec la possibilité de changer les couleurs pour coller au mieux à votre charte graphique. Il suffisait d&#8217;y penser!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/faites-patienter-a-votre-sauce/2009/01/29/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pour un web à son image, Smush it!</title>
		<link>http://www.amicalement-web.net/pour-un-web-a-son-image-smush-it/2009/01/27/</link>
		<comments>http://www.amicalement-web.net/pour-un-web-a-son-image-smush-it/2009/01/27/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 20:04:48 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Bons plans]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=10</guid>
		<description><![CDATA[ Un autre domaine assez controversé dans le web, ce sont les formats d&#8217;images. Bien longtemps, grand chouchou des webmaster, le GIF a régné en maître, de part sa technologie, une compression sans perte qui gèrait le canal alpha et même l&#8217;animation! 
Son principal problème était son brevet, qui a trainé jusqu&#8217;en 2004, le rendant [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amicalement-web.net/wp-content/uploads/applications-internet.png" alt="applications-internet" title="applications-internet" width="48" height="48" class="alignleft size-full wp-image-29" /> Un autre domaine assez controversé dans le web, ce sont les formats d&#8217;images. Bien longtemps, grand chouchou des webmaster, le <a  href="http://fr.wikipedia.org/wiki/Graphics_Interchange_Format" class="extern">GIF</a> a régné en maître, de part sa technologie, une compression sans perte qui gèrait le canal alpha et même l&#8217;animation! </p>
<p>Son principal problème était son brevet, qui a trainé jusqu&#8217;en 2004, le rendant ennemi numéro 1 des libristes du web. Pendant ce temps, tapis dans l&#8217;ombre, le <a  href="http://fr.wikipedia.org/wiki/Portable_Network_Graphics" class="extern">PNG</a> a commencé à monter en puissance, d&#8217;abord appuyé par le W3C puis certifié ISO en 2004. </p>
<p>Son principal intérêt, un gif amélioré et un <a  href="http://fr.wikipedia.org/wiki/Format_ouvert" class="extern">format ouvert</a>. Amélioré car il ne s&#8217;arrête pas aux 8bits de couleurs du GIF, mais va jusqu&#8217;à 32, permettant même de gérer totalement la transparence d&#8217;une image et à image égale il surpasse le GIF en poids d&#8217;image.</p>
<p>Malheureusement, trop mis en avant dès sa sortie, le PNG a été proclamé messie et tueur également du format <a  href="http://fr.wikipedia.org/wiki/JPEG" class="extern">JPEG</a> alors qu&#8217;il n&#8217;en avait pas la possibilité. En effet, le jpeg tire son succès dans la compression de photo, là où son algorithme de compression avec perte (grosse différence comparé au PNG) pouvait pleinement s&#8217;exprimer. A photo égale, le PNG se retrouve donc logiquement loin derrière.</p>
<p>On l&#8217;a alors rangé dans le catalogue format non optimisé, trop lourd, sans compter avec ces <a  href="http://openweb.eu.org/articles/png_vs_gif" class="extern">problèmes relationnels avec Photoshop et Internet Explorer</a>.</p>
<p>Mais comme tous les formats ouverts, le PNG a ses fans et certains réalisent des choses assez folles comme ce cher <a  href="http://smushit.com/">Smush it</a> qui permet en 1 clic après installation du plugin firefox correspondant d&#8217;optimiser toutes les images d&#8217;un site, vous les mettant alors à disposition, et en PNG bien sûr.</p>
<p>Voila le résultat pour amicalement web:<br />
<img src="http://www.amicalement-web.net/wp-content/uploads/image-28.png" alt="image-28" title="image-28" width="477" height="123" class="alignnone size-full wp-image-45" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/pour-un-web-a-son-image-smush-it/2009/01/27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
