<?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>Tellaw.org &#187; Featured</title>
	<atom:link href="http://www.tellaw.org/category/featured/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tellaw.org</link>
	<description>La technologie doit devenir simple...</description>
	<lastBuildDate>Fri, 02 Apr 2010 14:48:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mémo : dump et restauration sous Oracle XE</title>
		<link>http://www.tellaw.org/2010/04/02/memo-dump-et-restauration-sous-oracle-xe/</link>
		<comments>http://www.tellaw.org/2010/04/02/memo-dump-et-restauration-sous-oracle-xe/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 14:38:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[mémo]]></category>

		<guid isPermaLink="false">http://www.tellaw.org/?p=155</guid>
		<description><![CDATA[Cet article est un mémo de la façon dont nous devons réaliser rapidement et simplement un Export / Import de Dump sous une base Oracle. L&#8217;exemple fonctionne sur une XE, mais également sur 10 et 11g. L&#8217;objectif de l&#8217;article n&#8217;est pas de reproduire la documentation Oracle, l&#8217;idée est vraiment de servir de mémo très simple.

Cet article est le premier d&#8217;une serie [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article est un mémo de la façon dont nous devons réaliser rapidement et simplement un Export / Import de Dump sous une base Oracle. L&#8217;exemple fonctionne sur une XE, mais également sur 10 et 11g. L&#8217;objectif de l&#8217;article n&#8217;est pas de reproduire la documentation Oracle, l&#8217;idée est vraiment de servir de mémo très simple.</p>
<p><span id="more-155"></span></p>
<p>Cet article est le premier d&#8217;une serie mémo, visant à permettre un copier/coller pour trouver la réponse à une question.</p>
<p>Note pour ceux qui ont installés Oracle XE via le paquet Debian &laquo;&nbsp;.deb&nbsp;&raquo;.</p>
<blockquote><p>Sous Debian/Ubuntu, Oracle XE est installé dans : /usr/lib/oracle/<br />
Toutes les commandes de cet article ont pour base : /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin</p></blockquote>
<p>1) Configurer votre PATH correctement :</p>
<blockquote>
<p style="text-align: left;">ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server<br />
PATH=$PATH:$ORACLE_HOME/bin<br />
export ORACLE_HOME<br />
export ORACLE_SID=XE</p></blockquote>
<p>2) Pour réaliser le dump :</p>
<p>./exp SYSTEM/[password] FULL=y FILE=[path]/[file].dmp LOG=dba.log CONSISTENT=y</p>
<p>3) Pour restaurer le dump :</p>
<p>./imp SYSTEM/[password] FULL=y FIlE=[path]/[file].dmp</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tellaw.org/2010/04/02/memo-dump-et-restauration-sous-oracle-xe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Launchy &#8211; un quicksilver like pour windows et linux</title>
		<link>http://www.tellaw.org/2009/02/15/launchy-un-quicksilver-lite-pour-windows-et-linux/</link>
		<comments>http://www.tellaw.org/2009/02/15/launchy-un-quicksilver-lite-pour-windows-et-linux/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 08:50:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Vrac]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[softs]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.tellaw.org/?p=130</guid>
		<description><![CDATA[Les adeptes du mac connaissent le lanceur d&#8217;applications Quicksilver (http://quicksilver.en.softonic.com/mac) seront probablement très content de trouver sont équivalent (lite) sur PC&#8230; LAUNCHY.

Launchy est donc un lanceur d&#8217;applications que vous appellez via l&#8217;utilisation d&#8217;un raccourci clavier (ALT+SPACE), ou comme moi (SHIFT+SPACE), et dans lequel vous tapez quelques lettres pour ouvrir très rapidement vos logiciels.
Launchy est très [...]]]></description>
			<content:encoded><![CDATA[<p>Les adeptes du mac connaissent le lanceur d&#8217;applications Quicksilver (http://quicksilver.en.softonic.com/mac) seront probablement très content de trouver sont équivalent (lite) sur PC&#8230; LAUNCHY.</p>
<p style="text-align: center;"><img style="vertical-align: middle;" src="http://www.launchy.net/images/amarok.png" alt="" /></p>
<p>Launchy est donc un lanceur d&#8217;applications que vous appellez via l&#8217;utilisation d&#8217;un raccourci clavier (ALT+SPACE), ou comme moi (SHIFT+SPACE), et dans lequel vous tapez quelques lettres pour ouvrir très rapidement vos logiciels.</p>
<p>Launchy est très configurable, et modulaire via l&#8217;utilisation de nombreux plugins. Vous pourrez par exemple taper &laquo;&nbsp;firefox (TAB) google.fr&nbsp;&raquo; pour ouvrir google via firefox.</p>
<p>Une petite note négative, ce sont les presque 6Mo de mémoires utilisée par Launchy 2.1.2, cela semble un peu élévé pour un lanceur d&#8217;applications.</p>
<p>Cette petite note ne change rien au fait que je le recommande activement, car il va augmenter votre rapidité et votre productivité sur votre ordinateur sous Windows ou Linux.</p>
<p>Voici une vidéo, un test réalisé par CNET:</p>
<a href="http://www.tellaw.org/2009/02/15/launchy-un-quicksilver-lite-pour-windows-et-linux/"><em>Cliquer ici pour voir la vidéo.</em></a>
<p>Télécharger Lanchy : <a href="http://www.launchy.net" target="_blank">http://www.launchy.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tellaw.org/2009/02/15/launchy-un-quicksilver-lite-pour-windows-et-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Les méthodes « magiques » en PHP5</title>
		<link>http://www.tellaw.org/2008/05/16/les-methodes-%c2%ab-magiques-%c2%bb-en-php5/</link>
		<comments>http://www.tellaw.org/2008/05/16/les-methodes-%c2%ab-magiques-%c2%bb-en-php5/#comments</comments>
		<pubDate>Fri, 16 May 2008 11:45:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[objets]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.tellaw.org/?p=53</guid>
		<description><![CDATA[PHP5 apporte à PHP les fondements de la programmation objet. PHP5 apporte un certain nombre de méthodes utilisables dans les Objets afin d’automatiser certaines taches, ou intercepter des appels à des méthodes / propriétés inexistantes… D’un point de vue architecture c’est une mauvaise pratique que de se baser sur ces méthodes, ca reste dans certains [...]]]></description>
			<content:encoded><![CDATA[<p>PHP5 apporte à PHP les fondements de la programmation objet. PHP5 apporte un certain nombre de méthodes utilisables dans les Objets afin d’automatiser certaines taches, ou intercepter des appels à des méthodes / propriétés inexistantes… D’un point de vue architecture c’est une mauvaise pratique que de se baser sur ces méthodes, ca reste dans certains cas d’exceptions, très pratique</p>
<p><span id="more-53"></span></p>
<p class="MsoNormal">Liste des méthodes « magiques » en PHP5 :</p>
<ul type="disc">
<li class="MsoNormal"><strong>__construct()</strong></li>
<li class="MsoNormal"><strong>__destruct()</strong></li>
<li class="MsoNormal"><strong>__set()</strong></li>
<li class="MsoNormal"><strong>__get()</strong></li>
<li class="MsoNormal"><strong>__call()</strong></li>
<li class="MsoNormal"><strong>__toString()</strong></li>
<li class="MsoNormal"><strong>__sleep()</strong></li>
<li class="MsoNormal"><strong>__wakeup()</strong></li>
<li class="MsoNormal"><strong>__isset()</strong></li>
<li class="MsoNormal"><strong>__unset()</strong></li>
<li class="MsoNormal"><strong>__autoload()</strong></li>
<li class="MsoNormal"><strong>__clone()</strong></li>
</ul>
<p><strong>__construct()</strong><br />
Cette méthode est appelée lors de la construction d’un objet.</p>
<p><strong>__destruct()</strong><br />
Cette méthode est appelée lors de la destruction d’un objet.</p>
<p><strong>__set()</strong><br />
Cette méthode est appelée automatiquement lors de l’assignation d’une valeur à un attribut inexistant.</p>
<p><strong>__get()</strong><br />
Cette méthode est appelée automatiquement lors de la lecture d’une valeur à un attribut inexistant.</p>
<p><strong>__call()</strong><br />
Cette méthode est appelée automatiquement lors de l’appel à une méthode inexistante.</p>
<p><strong>__toString()</strong><br />
Cette méthode est appelée lors de la tentative d’interprétation d’un objet en String. (via un echo ou print…)</p>
<p><strong>__sleep()</strong><br />
Cette méthode sert à la sérialisation d’un objet en PHP5. Elle doit définir la façon dont PHP doit le sérialiser.</p>
<p><strong>__wakeup()</strong><br />
Cette méthode doit définir la dé-sérialisation d’un objet en PHP5.</p>
<p><strong>__isset()</strong><br />
Cette méthode est utilisée lors de la vérification de l’existence d’un attribut via un appel à la méthode « isset »..</p>
<p><strong>__unset()</strong><br />
Méthode appelée lors de la destruction de l’objet.<span lang="EN-GB"></span></p>
<p><strong>__autoload()</strong><br />
Cette méthode est appelée lorsque vous essayez de charger un objet dans un fichier séparé sans l’avoir précédemment chargé via un include, include_once, require ou require_once. <span lang="EN-GB"></span></p>
<p><strong><span style="font-size: 12pt;">__clone()</span></strong><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;;"><br />
cette méthode définie la façon de cloner un objet.</span><br />
<br/><br />
<strong>Exemple :</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php"> <span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">class</span> MyClass <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #ff0000">$Name</span><span style="color: #66cc66;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __set<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$var</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$val</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
             <span style="color: #000066;">echo</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;La propriétée : &quot;</span><span style="color: #66cc66;">.</span><span style="color: #ff0000">$var</span><span style="color: #66cc66;">.</span><span style="color: #ff0000;">&quot; - Valeur : &quot;</span><span style="color: #66cc66;">.</span><span style="color: #ff0000">$val</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #ff0000">$systemvars</span> <span style="color: #66cc66;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MyClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
    <span style="color: #ff0000">$systemvars</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">adminEmail</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'toto@toto.fr'</span><span style="color: #66cc66;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Ceci résulte dans la sortie suivante :</p>

<div class="wp_syntax"><div class="code"><pre class="text">        La propriétée : adminEmail - Valeur : toto@toto.fr</pre></div></div>

<p><br/><br />
<b>Ce n&#8217;est pas une bonne pratique !</b><br/><br />
En effet, à part dans des cas isolés, il est fortement recommendé de definir clairement vos bean, avec des propriétées, des setters et des getters.<br />
<br/><br />
<b>La bonne pratique voudrait :</b><br/></p>

<div class="wp_syntax"><div class="code"><pre class="php"> <span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">class</span> MyClass <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #ff0000">$adminEmail</span><span style="color: #66cc66;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setAdminEmail <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$var</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
             <span style="color: #ff0000">$this</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">adminEmail</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000">$var</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getAdminEmail<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
             <span style="color: #b1b100;">return</span> <span style="color: #ff0000">$this</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">adminEmail</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #ff0000">$systemvars</span> <span style="color: #66cc66;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MyClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
    <span style="color: #ff0000">$systemvars</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">setAdminEmail</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'toto@toto.fr'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Il est important pour la pérennité du code de respecter les bonnes pratiques, mais parfois, il faut être flexible, voila l&#8217;idée de cet article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tellaw.org/2008/05/16/les-methodes-%c2%ab-magiques-%c2%bb-en-php5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Spring : Generer un document Excel comme vue</title>
		<link>http://www.tellaw.org/2008/04/25/spring-generer-un-document-excel-comme-vue/</link>
		<comments>http://www.tellaw.org/2008/04/25/spring-generer-un-document-excel-comme-vue/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 12:07:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.tellaw.org/?p=48</guid>
		<description><![CDATA[L&#8217;objectif de cet article est de présente une façon très simple de générer des rapports Excel en Java, via l&#8217;utilisation du framework MVC Spring.

1) Une petite explication :
Le framework spring (http://www.springframework.org) met à notre disposition tous les outils utiles à la création de documents PDF. Spring etant un framework MVC propre, la creation d&#8217;un Fichier [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;objectif de cet article est de présente une façon très simple de générer des rapports Excel en Java, via l&#8217;utilisation du framework MVC Spring.</p>
<p><span id="more-48"></span></p>
<p><b>1) Une petite explication :</b><br/></p>
<p>Le framework spring (http://www.springframework.org) met à notre disposition tous les outils utiles à la création de documents PDF. Spring etant un framework MVC propre, la creation d&#8217;un Fichier Excel passe par <strong>la réalisation d&#8217;un Controller et d&#8217;une Vue qui etend AbstractExcelView</strong>.</p>
<p>Voici un exemple de code&#8230;</p>
<p><b>2) Un controller&#8230; :</b><br/><br />
Alors voici un exemple de controller Spring très simple, qui va juste deposer dans le model une valeur de test, utile pour valider le fonctionnement de notre vue.<br/><br />
<i><b>Chemin</b> : com.tellaw.test.controllers</i></p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">package</span> com.<span style="color: #006600;">tellaw</span>.<span style="color: #006600;">test</span>.<span style="color: #006600;">controllers</span><span style="color: #66cc66;">;</span>
&nbsp;
<span style="color: #a1a100;">import java.util.*;</span>
<span style="color: #a1a100;">import javax.servlet.http.*;</span>
&nbsp;
<span style="color: #a1a100;">import org.apache.commons.logging.Log;</span>
<span style="color: #a1a100;">import org.apache.commons.logging.LogFactory;</span>
<span style="color: #a1a100;">import org.springframework.web.servlet.ModelAndView;</span>
&nbsp;
@SuppressWarnings<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;unchecked&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ExcelController <span style="color: #000000; font-weight: bold;">extends</span> AbstractController
<span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000000; font-weight: bold;">final</span> Log logger = LogFactory.<span style="color: #006600;">getLog</span><span style="color: #66cc66;">&#40;</span>getClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> ModelAndView handleRequest<span style="color: #66cc66;">&#40;</span>HttpServletRequest request, HttpServletResponse response<span style="color: #66cc66;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #aaaadd; font-weight: bold;">Exception</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
    	Map<span style="color: #66cc66;">&lt;</span>String, Object<span style="color: #66cc66;">&gt;</span> model = <span style="color: #000000; font-weight: bold;">new</span> HashMap<span style="color: #66cc66;">&lt;</span>String, Object<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
	model.<span style="color: #006600;">put</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;testValue&quot;</span>, <span style="color: #ff0000;">&quot;Ma String de test de ma vue Excel !!!&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> ModelAndView<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;excel-view&quot;</span>, <span style="color: #ff0000;">&quot;model&quot;</span>, model<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><b>3) Une vue excel :</b><br/><br />
Voici la vue, qui va permettre de mettre en forme le document Excel. La vue se base sur l&#8217;API POI de Apache, permettant l&#8217;exploitation de documents microsofts (excels, words, powerpoints&#8230;) en Java.<br/><br />
<i><b>Chemin</b> : com.tellaw.test.controllers</i></p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">package</span> com.<span style="color: #006600;">tellaw</span>.<span style="color: #006600;">test</span>.<span style="color: #006600;">view</span><span style="color: #66cc66;">;</span>
&nbsp;
<span style="color: #a1a100;">import java.util.*;</span>
&nbsp;
<span style="color: #a1a100;">import javax.servlet.http.*;</span>
&nbsp;
<span style="color: #a1a100;">import org.apache.commons.logging.Log;</span>
<span style="color: #a1a100;">import org.apache.commons.logging.LogFactory;</span>
<span style="color: #a1a100;">import org.apache.poi.hssf.usermodel.HSSFCell;</span>
<span style="color: #a1a100;">import org.apache.poi.hssf.usermodel.HSSFCellStyle;</span>
<span style="color: #a1a100;">import org.apache.poi.hssf.usermodel.HSSFFont;</span>
<span style="color: #a1a100;">import org.apache.poi.hssf.usermodel.HSSFSheet;</span>
<span style="color: #a1a100;">import org.apache.poi.hssf.usermodel.HSSFWorkbook;</span>
<span style="color: #a1a100;">import org.apache.poi.hssf.util.HSSFColor;</span>
<span style="color: #a1a100;">import org.apache.poi.hssf.util.Region;</span>
<span style="color: #a1a100;">import org.springframework.web.servlet.view.document.AbstractExcelView;</span>
&nbsp;
@SuppressWarnings<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;unchecked&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ExcelExportView <span style="color: #000000; font-weight: bold;">extends</span> AbstractExcelView  <span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000000; font-weight: bold;">final</span> Log logger = LogFactory.<span style="color: #006600;">getLog</span><span style="color: #66cc66;">&#40;</span>getClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #aaaadd; font-weight: bold;">String</span> SHEET_NAME = <span style="color: #ff0000;">&quot;feuille&quot;</span><span style="color: #66cc66;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #993333;">void</span> buildExcelDocument<span style="color: #66cc66;">&#40;</span>	  <span style="color: #aaaadd; font-weight: bold;">Map</span> model, 
    							HSSFWorkbook workbook, 
    							HttpServletRequest request, 
    							HttpServletResponse response <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
        model = <span style="color: #66cc66;">&#40;</span>Map<span style="color: #66cc66;">&lt;</span>String, Object<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#41;</span>model.<span style="color: #006600;">get</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;model&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">// Get Active Datas</span>
        workbook = addSkeleton<span style="color: #66cc66;">&#40;</span> workbook <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
    	<span style="color: #808080; font-style: italic;">// Define Style</span>
    	HSSFCellStyle style = workbook.<span style="color: #006600;">createCellStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        HSSFFont boldFont = workbook.<span style="color: #006600;">createFont</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        boldFont.<span style="color: #006600;">setBoldweight</span><span style="color: #66cc66;">&#40;</span>HSSFFont.<span style="color: #006600;">BOLDWEIGHT_NORMAL</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        style.<span style="color: #006600;">setFillForegroundColor</span><span style="color: #66cc66;">&#40;</span> HSSFColor.<span style="color: #006600;">LIGHT_TURQUOISE</span>.<span style="color: #006600;">index</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        style.<span style="color: #006600;">setFillPattern</span><span style="color: #66cc66;">&#40;</span>HSSFCellStyle.<span style="color: #006600;">SOLID_FOREGROUND</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        style.<span style="color: #006600;">setFont</span><span style="color: #66cc66;">&#40;</span>boldFont<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
    	<span style="color: #808080; font-style: italic;">// Define headers</span>
        cell = getCell<span style="color: #66cc66;">&#40;</span> sheet, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        cell.<span style="color: #006600;">setCellStyle</span><span style="color: #66cc66;">&#40;</span> style <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">// Number</span>
    	setText <span style="color: #66cc66;">&#40;</span> cell , model.<span style="color: #006600;">get</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;testValue&quot;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> HSSFWorkbook addSkeleton <span style="color: #66cc66;">&#40;</span> HSSFWorkbook workbook <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
    	HSSFSheet sheet<span style="color: #66cc66;">;</span>
        HSSFCell cell<span style="color: #66cc66;">;</span>
&nbsp;
    	sheet = workbook.<span style="color: #006600;">createSheet</span><span style="color: #66cc66;">&#40;</span> ExcelExportView.<span style="color: #006600;">SHHET_NAME</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
    	<span style="color: #808080; font-style: italic;">// Define Style</span>
    	HSSFCellStyle style = workbook.<span style="color: #006600;">createCellStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        HSSFFont boldFont = workbook.<span style="color: #006600;">createFont</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        boldFont.<span style="color: #006600;">setBoldweight</span><span style="color: #66cc66;">&#40;</span>HSSFFont.<span style="color: #006600;">BOLDWEIGHT_BOLD</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        style.<span style="color: #006600;">setFont</span><span style="color: #66cc66;">&#40;</span>boldFont<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
    	<span style="color: #808080; font-style: italic;">// Define headers</span>
        cell = getCell<span style="color: #66cc66;">&#40;</span> sheet, <span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        cell.<span style="color: #006600;">setCellStyle</span><span style="color: #66cc66;">&#40;</span>style<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
    	setText <span style="color: #66cc66;">&#40;</span> cell , <span style="color: #ff0000;">&quot;valeur de test du model ?&quot;</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
    	autoSizeCols<span style="color: #66cc66;">&#40;</span> sheet <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
    	<span style="color: #000000; font-weight: bold;">return</span> workbook<span style="color: #66cc66;">;</span>
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><b>4) Configurer sur contexte Spring :</b><br/><br />
Il suffit ensuite de faire le wiring de ces objets dans le contexte de Spring&#8230;<br/><br />
<i><b>Chemin</b> : WEB-INF/springapp-servlet.xml (propre à mon test)</i></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="font-weight: bold; color: black;">?&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;beans</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/beans&quot;</span>
		<span style="color: #000066;">xmlns:p</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/p&quot;</span>
       	<span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>
       	<span style="color: #000066;">xmlns:aop</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/aop&quot;</span>
       	<span style="color: #000066;">xmlns:tx</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/tx&quot;</span>
       	<span style="color: #000066;">xmlns:context</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/context&quot;</span>
       	<span style="color: #000066;">xsi:schemaLocation</span>=<span style="color: #ff0000;">&quot;
       		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
       		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
       		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- 
		Abstract Controller
	 --&gt;</span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;bean</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;abstractController&quot;</span> <span style="color: #000066;">abstract</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;com.tellaw.test.controllers.AbstractController&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- EXCEL Export controller --&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;bean</span> 	<span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;excelView&quot;</span> 
    		<span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;com.tellaw.test.controllers.ExcelExportView&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/bean<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;bean</span> 	<span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;excelController&quot;</span> 
    		<span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;com.tellaw.test.controllers.ExcelController&quot;</span>
    		<span style="color: #000066;">parent</span>=<span style="color: #ff0000;">&quot;abstractController&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- 
		Url Mapping Definition With Authentication
	 --&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;bean</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;urlMapping&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;org.springframework.web.servlet.handler.SimpleUrlHandlerMapping&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
&nbsp;
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;mappings&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;props<span style="font-weight: bold; color: black;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;prop</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;/report.xls&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>excelController<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/prop<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/props<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/property<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/bean<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- 
		View Resolver
	 --&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;bean</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;org.springframework.web.servlet.view.ResourceBundleViewResolver&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;basename&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;views&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/bean<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/beans<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p><b>5) Mapper la vue via un properties :</b><br/><br />
J&#8217;aime bien séparer le mapping des vues dans un fichier Properties externe, voici le détail du mien :<br/><br />
<i><b>Chemin</b> : ressources/views.properties (propre à mon test et à ma compilation maven)</i></p>

<div class="wp_syntax"><div class="code"><pre class="xml">excel-view.(class)=com.tellaw.test.controllers.ExcelExportView</pre></div></div>

<p><b>5) Annèxes, et la suite ????</b><br/></p>
<ul>
<li>Framework Spring : <a href="http://www.springframework.org" target="_blank">http://www.springframework.org</a></li>
<li>Apache POI (Apache POI &#8211; Java API To Access Microsoft Format Files): <a href="http://poi.apache.org/" target="_blank">http://poi.apache.org/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tellaw.org/2008/04/25/spring-generer-un-document-excel-comme-vue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Riot &#8211; Comment Java peut devenir très simple.</title>
		<link>http://www.tellaw.org/2008/04/15/riot-comment-java-peux-devenir-tres-simple/</link>
		<comments>http://www.tellaw.org/2008/04/15/riot-comment-java-peux-devenir-tres-simple/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 07:52:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[riot]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.tellaw.org/?p=19</guid>
		<description><![CDATA[Riot est un framework open source mettant à disposition un CMS (Content Management System). Riot est une surcouche à Spring ajoutant des fonctionnalitées que nous allons passer en revue&#8230;

Alors, riot, ca permet de faire quoi ?
1) C&#8217;est un CMS très simple à mettre en oeuvre.
En fait Riot propose un service de CRUD (CReate Update Delete) [...]]]></description>
			<content:encoded><![CDATA[<p>Riot est un framework open source mettant à disposition un CMS (Content Management System). Riot est une surcouche à Spring ajoutant des fonctionnalitées que nous allons passer en revue&#8230;</p>
<p><span id="more-19"></span></p>
<h1><strong>Alors, riot, ca permet de faire quoi ?</strong></h1>
<p><strong>1) C&#8217;est un CMS très simple à mettre en oeuvre.</strong></p>
<p>En fait Riot propose un service de CRUD (CReate Update Delete) de données pour vos POJO (Plain Old Java Object) via l&#8217;utilisation d&#8217;un DAO générique (en général, il est très simple de mapper ses POJO sur Hibernate avec riot).</p>
<p>Pour cela il met à votre disposition 3 fichiers :</p>
<ul>
<li>list-config.xml -&gt; Qui configure les listes d&#8217;objets de l&#8217;interface.</li>
<li>form-config.xml -&gt; Qui configure le formulaire d&#8217;edition du pojo, et des regles de validations de données.</li>
<li>editor-config.xml -&gt; Qui sert de colle entre les deux éléments précédents.</li>
</ul>
<p>Un article complet va détailler toutes ces fonctionnalitées.</p>
<p style="text-align: center;"><a href="http://www.tellaw.org/wp-content/uploads/2008/04/00060047.gif"><img class="alignnone size-full wp-image-20" title="riot-list" src="http://www.tellaw.org/wp-content/uploads/2008/04/00060047.gif" alt="" width="470" height="215" /></a></p>
<p style="text-align: center;"><a href="http://www.tellaw.org/wp-content/uploads/2008/04/00060053.gif"><img class="alignnone size-full wp-image-21" title="riot - form" src="http://www.tellaw.org/wp-content/uploads/2008/04/00060053.gif" alt="" width="470" height="170" /></a></p>
<p style="text-align: left;clear:both"> </p>
<p style="text-align: center;"> </p>
<p style="text-align: left;"><strong>2) Un système basé sur l&#8217;utilisation de modules.</strong></p>
<p style="text-align: left;">Riot propose de simplifier l&#8217;utilisation de modules dans vos templates. Il suffit de définir des zone, et d&#8217;indiquer dans la configuration XML spring (soit via la syntaxe compacte riot, soit la syntaxe Spring), quels modules doivent etres empilés.</p>
<blockquote>
<p style="text-align: left;">&lt;template:definition name=&nbsp;&raquo;/posts.html&nbsp;&raquo; view-name=&nbsp;&raquo;default.ftl&nbsp;&raquo;&gt;<br />
&lt;template:insert slot=&nbsp;&raquo;navigation&nbsp;&raquo; url=&nbsp;&raquo;/inc/navigation.html&nbsp;&raquo; /&gt;<br />
&lt;template:insert slot=&nbsp;&raquo;content&nbsp;&raquo; url=&nbsp;&raquo;/inc/all-posts.ftl&nbsp;&raquo; /&gt;<br />
&lt;/template:definition&gt;</p>
</blockquote>
<p><strong>3) Un ré-ecriture des URLs très simple.</strong></p>
<p>La ré-écriture d&#8217;url tourne souvent à une enorme usine à gaz, alors que c&#8217;est en réalité quelque chose de très très simple, et systématique sur un site web.</p>
<p>Riot met donc en oeuvre des variable dans le nommage des bean, afin de mettre des URL &laquo;&nbsp;SEO compliantes&nbsp;&raquo;.</p>
<blockquote><p>&lt;bean name=&nbsp;&raquo;/some/@{myparam}/page.html&nbsp;&raquo; id=&nbsp;&raquo;myController&nbsp;&raquo; class=&nbsp;&raquo;eg.MyController&nbsp;&raquo; /&gt;</p></blockquote>
<p>Votre page aura l&#8217;url : /some/45/page.html. Pas mal non ? Ligne de code ????? 0!</p>
<p>Pour appeler ce controlleur depuis un template, pas question de codé l&#8217;url en dur, utilisez :</p>
<blockquote><p>&lt;a href=&nbsp;&raquo;${common.urlForHandler(&#8217;myController&#8217;, myparam)}&nbsp;&raquo;&gt;<br />
${category.title}<br />
&lt;/a&gt;</p></blockquote>
<p><strong>4) les controlleurs génériques.</strong></p>
<p>Généralement, une majoritée de pages Web, se contente de recuperer des objets et d&#8217;en afficher le contenu. Alors pourquoi utiliser de multiple controlleur pour faire cette opération ?</p>
<p>Riot propose un controlleur générique, suivant la syntaxe :</p>
<blockquote><p>&lt;generic:controller id=&nbsp;&raquo;postDetail&nbsp;&raquo; name=&nbsp;&raquo;/post-@{id:Long}.html&nbsp;&raquo;<br />
view-name=&nbsp;&raquo;/inc/post-detail.ftl&nbsp;&raquo;&gt;<br />
&lt;generic:hql hql=&nbsp;&raquo;from Post p where p.id = :id&nbsp;&raquo; /&gt;<br />
&lt;/generic:controller&gt;</p></blockquote>
<p>Qui va recuperer l&#8217;objet &laquo;&nbsp;post&nbsp;&raquo; et le passer simplement à la vue.</p>
<p><strong>5) Overriding de configuration Spring</strong></p>
<p>La c&#8217;est assez sympa, le principe est de se dire, que parfois, il faut pouvoir redéfinir un élément de configuration, sans redéfinir le bean complet. Pour cela, Riot propose quelques éléments :</p>
<blockquote><p>&lt;override:properties ref=&nbsp;&raquo;someBean&nbsp;&raquo;&gt;<br />
&lt;property name=&nbsp;&raquo;foo&nbsp;&raquo; value=&nbsp;&raquo;bar&nbsp;&raquo; /&gt;<br />
&lt;/override:properties&gt;</p></blockquote>
<p><strong>6) Plus beaucoup d&#8217;autres choses&#8230;</strong></p>
<ul>
<li>Push-up qui permettent la communication entre &laquo;&nbsp;modules&nbsp;&raquo;</li>
<li>Squelette de base pour débuter un projet.</li>
<li>Plus beaucoup d&#8217;élements à decouvrir.</li>
</ul>
<p><strong>Attention tout bonheur à ses petit defauts&#8230;</strong></p>
<p>Un gros manque de documentation sur le projet. Mais une communauté plus que réactive.</p>
<ul>
<li><span style="border-collapse: separate; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px; font-family: 'Lucida Grande'; color: #000000;">Site : <a href="http://www.riotfamily.org/" target="_blank">http://www.riotfamily.org/</a></span></li>
<li><span style="border-collapse: separate; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px; font-family: 'Lucida Grande'; color: #000000;">Le groupe google : </span><a href="http://groups.google.com/group/riotfamily" target="_blank"><span style="border-collapse: separate; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px; font-family: 'Lucida Grande'; color: #000000;">http://groups.google.com/group/riotfamily</span></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tellaw.org/2008/04/15/riot-comment-java-peux-devenir-tres-simple/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
