<?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>Vectoris Blog</title>
	<atom:link href="http://blog.vectoris.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.vectoris.fr</link>
	<description></description>
	<lastBuildDate>Fri, 10 Jun 2011 23:53:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Garbage Collector PHP 5.3, démontré</title>
		<link>http://blog.vectoris.fr/2011/06/11/garbage-collector-php-5-3-demontre/</link>
		<comments>http://blog.vectoris.fr/2011/06/11/garbage-collector-php-5-3-demontre/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 23:53:02 +0000</pubDate>
		<dc:creator>trambo</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.vectoris.fr/?p=40</guid>
		<description><![CDATA[
PHP n&#8217;est pas fait pour des longs/lourds traitements, certes.
Et pire, pour un script public, il faut même y faire très attention.
Mais il peux arriver des besoins comme faire des traitements sur un volume de données important en CRON ou en ligne de commande.
On arrive très vite, alors,  sur une occupation de mémoire importante et [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-285" src="http://trambo.blog.vectoris.fr/files/2011/06/garbage-collector-4-memoire-occupee_m.png" alt="garbage-collector-4-memoire-occupee_m" width="448" height="245" /></p>
<p>PHP n&#8217;est pas fait pour des longs/lourds traitements, certes.<br />
Et pire, pour un script public, il faut même y faire très attention.</p>
<p>Mais il peux arriver des besoins comme faire des traitements sur un volume de données important en CRON ou en ligne de commande.<br />
On arrive très vite, alors,  sur une occupation de mémoire importante et on sent bien les performances de dégénérer &#8230;</p>
<p>Je suis pas mal fâché avec les développeurs de PHP, mais par contre, on ne peux que saluer l&#8217;arrivée des fonctions gc_* dans PHP 5.3 &#8230;<br />
Un bon article démonstratif, sur le sujet, ici : <a title="PHP 5.3 : Garbage Collector et consommation mémoire" href="http://blog.pascal-martin.fr/post/php-5.3-garbage-collector-vs-consommation-memoire" target="_blank">PHP 5.3 : Garbage Collector et consommation mémoire</a><br />
Et bien sûr, pour la pratique, le manuel officiel : <a title="PHP: Garbage Collection" href="http://php.net/manual/en/features.gc.php" target="_blank">PHP: Garbage Collection</a></p>
<p><em>Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le <a title="Garbage Collector PHP 5.3, démontré" href="http://trambo.blog.vectoris.fr/2011/06/11/garbage-collector-php-5-3-demontre/" target="_blank">blog</a> de ce dernier. Veuillez poster vos commentaires directement a son auteur.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vectoris.fr/2011/06/11/garbage-collector-php-5-3-demontre/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Artichow pour des graphes statistiques en PHP</title>
		<link>http://blog.vectoris.fr/2009/11/04/artichow-pour-des-graphes-statistiques-en-php/</link>
		<comments>http://blog.vectoris.fr/2009/11/04/artichow-pour-des-graphes-statistiques-en-php/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 15:54:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.vectoris.fr/?p=35</guid>
		<description><![CDATA[Voici une librairie qui merite d’être connu.
Utilisé pour faire des graphes statistiques en PHP ou générer des captcha.
C’est à la fois simple et beau. C’est rare que ce genre de solution puisses réunir ces deux qualités.
Site officiel : www.artichow.org
Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le blog de ce dernier. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-151" src="http://trambo.blog.vectoris.fr/files/2009/11/logo.png" alt="logo" width="500" height="100" />Voici une librairie qui merite d’être connu.</p>
<p>Utilisé pour faire des graphes statistiques en PHP ou générer des captcha.</p>
<p>C’est à la fois simple et beau. C’est rare que ce genre de solution puisses réunir ces deux qualités.</p>
<p>Site officiel : <a title="Artichow pour des graphes statistiques en PHP" href="http://www.artichow.org" target="_blank">www.artichow.org</a></p>
<p><em>Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le <a title="Artichow pour des graphes statistiques en PHP" href="http://trambo.blog.vectoris.fr/2009/11/04/artichow-pour-des-graphes-statistiques-en-php" target="_blank">blog</a> de ce dernier. Veuillez poster vos commentaires directement a son auteur.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vectoris.fr/2009/11/04/artichow-pour-des-graphes-statistiques-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>URL pour les pages d&#8217;un site Full-Flash avec SWFAddress</title>
		<link>http://blog.vectoris.fr/2009/10/10/url-pour-les-pages-dun-site-full-flash-avec-swfaddress/</link>
		<comments>http://blog.vectoris.fr/2009/10/10/url-pour-les-pages-dun-site-full-flash-avec-swfaddress/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 23:30:44 +0000</pubDate>
		<dc:creator>trambo</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://blog.vectoris.fr/?p=33</guid>
		<description><![CDATA[
Quand j&#8217;entends que l&#8217;utilisation de Flash &#8220;casse&#8221; les principes fondamentaux du web parce-que le bouton &#8220;retour&#8221;des navigateurs perdent leurs utilité sur Flash 99% Bad, je me sens obligé d&#8217;intervenir.
Le fond du problème est que dans un site full-flash, il n&#8217;y a très souvent qu&#8217;un seul .swf (voire plusieurs mais quand même un seul principal). Ce [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-133" src="http://trambo.blog.vectoris.fr/files/2009/10/asual-swfaddress.jpg" alt="asual-swfaddress" width="451" height="39" /></p>
<p>Quand j&#8217;entends que l&#8217;utilisation de Flash &#8220;casse&#8221; les principes fondamentaux du web parce-que le bouton &#8220;retour&#8221;des navigateurs perdent leurs utilité sur <a href="http://www.useit.com/alertbox/20001029.html" target="_blank">Flash 99% Bad</a>, je me sens obligé d&#8217;intervenir.</p>
<p>Le fond du problème est que dans un site full-flash, il n&#8217;y a très souvent qu&#8217;un seul .swf (voire plusieurs mais quand même un seul principal). Ce dernier comprend tout le site est est intégré dans une page HTML. Donc, quand on change de page, c&#8217;est l&#8217;animation qui réagi. On ne change pas réellement de page (En tout cas pas selon les principes web. Sinon l&#8217;url de la barre aurait changé). Du coup, on ne peut pas accéder à une page directement via un URL et quand on fait F5, on a l&#8217;impression qu&#8217;on reviens toujours sur la home.</p>
<p>Je vous apporte la solution : <a href="http://www.asual.com/swfaddress/" target="_blank">SWFAdress</a><br />
Il s&#8217;agit d&#8217;une application couple d&#8217;AJAX et de Flash permettant de gérer les pages dans un fichier swf et d&#8217;en associer à chacune un url pré-défini.</p>
<p>Voici un exemple d&#8217;un site full-flash: <a href="http://www.cobaltcat.net/" target="_blank">Cobaltcat</a> qui utilise cette technologie.<br />
Suitchez sur les pages <a href="http://www.cobaltcat.net/#/partners" target="_blank">Partners</a>, <a href="http://www.cobaltcat.net/#/web-design/carambole" target="_blank">Web design -Carambole</a> &#8230; Faites F5, retour &#8230;</p>
<p><em>Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le <a title="Firefox, 1 000 000 000 téléchargements" href="http://trambo.blog.vectoris.fr/2009/10/10/url-pour-les-pages-d-un-site-full-flash-avec-swfaddress/" target="_blank">blog</a> de ce dernier. Veuillez poster vos commentaires directement a son auteur.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vectoris.fr/2009/10/10/url-pour-les-pages-dun-site-full-flash-avec-swfaddress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox, 1 000 000 000 téléchargements</title>
		<link>http://blog.vectoris.fr/2009/08/01/firefox-1-000-000-000-telechargements/</link>
		<comments>http://blog.vectoris.fr/2009/08/01/firefox-1-000-000-000-telechargements/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 19:26:03 +0000</pubDate>
		<dc:creator>trambo</dc:creator>
				<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://blog.vectoris.fr/?p=31</guid>
		<description><![CDATA[
Firefox a annoncé récement son 1 000 000 000 ème téléchargement.
A l&#8217;occasion, la fondation vient de mettre en ligne le site onebillionplusyou.
Ca mérite une bouteille de champagne, d&#8217;accord. Toutefois, malgrès le chiffre qui semble énorme, Firefox n&#8217;atteint toujours pas le 1/4 du marché des navigateurs :
Firefox : 22 %
Internet Explorer : 65 %
Safari : 8 [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-115" src="http://trambo.blog.vectoris.fr/files/2009/08/images.jpeg" alt="images" width="150" height="144" /></p>
<p>Firefox a annoncé récement son <strong>1 000 000 000 ème</strong> téléchargement.<br />
A l&#8217;occasion, la fondation vient de mettre en ligne le site <a title="onebillionplusyou" href="http://www.onebillionplusyou.com/" target="_blank">onebillionplusyou</a>.</p>
<p>Ca mérite une bouteille de champagne, d&#8217;accord. Toutefois, malgrès le chiffre qui semble énorme, Firefox n&#8217;atteint toujours pas le 1/4 du marché des navigateurs :</p>
<p><strong>Firefox : </strong>22 %<br />
<strong>Internet Explorer : </strong>65 %<br />
<strong>Safari : </strong>8 %<br />
<strong>Chrome : </strong>2 %</p>
<p><em>Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le <a title="Firefox, 1 000 000 000 téléchargements" href="http://trambo.blog.vectoris.fr/2009/08/01/firefox-1-000-000-000-de-telechargements/" target="_blank">blog</a> de ce dernier. Veuillez poster vos commentaires directement a son auteur.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vectoris.fr/2009/08/01/firefox-1-000-000-000-telechargements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft prêt à proposer plusieurs navigateurs Internet sur Windows</title>
		<link>http://blog.vectoris.fr/2009/07/29/microsoft-pret-a-proposer-plusieurs-navigateurs-internet-sur-windows/</link>
		<comments>http://blog.vectoris.fr/2009/07/29/microsoft-pret-a-proposer-plusieurs-navigateurs-internet-sur-windows/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 09:43:04 +0000</pubDate>
		<dc:creator>trambo</dc:creator>
				<category><![CDATA[Navigateur]]></category>

		<guid isPermaLink="false">http://blog.vectoris.fr/?p=22</guid>
		<description><![CDATA[La politique marketing Microsoft, a jusque là marché, si bien qu&#8217;une majeure partie des ordinateurs ont Windows pré-installé et donc aussi Internet Explorer. Parmi cette majeure partie, une bonne partie d&#8217;utilisateur de base qui ne cherchera pas a mettre à jour ou a installer autre chose.
Sans ce fait, je suis sûr, Internet Explorer aurait rejoins, [...]]]></description>
			<content:encoded><![CDATA[<p>La politique marketing Microsoft, a jusque là marché, si bien qu&#8217;une majeure partie des ordinateurs ont Windows pré-installé et donc aussi Internet Explorer. Parmi cette majeure partie, une bonne partie d&#8217;utilisateur de base qui ne cherchera pas a mettre à jour ou a installer autre chose.</p>
<p>Sans ce fait, je suis sûr, Internet Explorer aurait rejoins, aujourd&#8217;hui, le club de Netscape.</p>
<p>Ceci étant, aux société comme nous, de s&#8217;adapter a cette situation.</p>
<p>Pour la suite, apparement, Microsoft s&#8217;ouvre a la pression de Bruxelles : <a title="Microsoft prêt à proposer plusieurs navigateurs Internet sur Windows" href="http://www.lemonde.fr/technologies/article/2009/07/24/microsoft-pret-a-proposer-plusieurs-navigateurs-internet-sur-windows_1222659_651865.html" target="_blank">microsoft-pret-a-proposer-plusieurs-navigateurs-internet-sur-windows</a></p>
<p>Toutefois, pour moi, l&#8217;issue n&#8217;est pas si concluante que ça, en gros: &#8220;Internet Explorer reste mais on peut en installer d&#8217;autres navigateurs si on a du temps à perdre&#8221;.</p>
<p>Mais je dirais : &#8220;C&#8217;est déjà ça&#8221;.</p>
<p><em>Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le <a title="Microsoft prêt à proposer plusieurs navigateurs Internet sur Windows" href="http://trambo.blog.vectoris.fr/2009/07/28/microsoft-pret-a-proposer-plusieurs-navigateurs-internet-sur-windows/" target="_blank">blog</a> de ce dernier. Veuillez poster vos commentaires directement a son auteur.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vectoris.fr/2009/07/29/microsoft-pret-a-proposer-plusieurs-navigateurs-internet-sur-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bing</title>
		<link>http://blog.vectoris.fr/2009/07/29/bing/</link>
		<comments>http://blog.vectoris.fr/2009/07/29/bing/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 09:36:43 +0000</pubDate>
		<dc:creator>trambo</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Référencement]]></category>

		<guid isPermaLink="false">http://blog.vectoris.fr/?p=20</guid>
		<description><![CDATA[
C&#8217;est facile de critiquer le monopole de Microsoft et d&#8217;oublier Google. C&#8217;est d&#8217;ailleurs le partenariat Google-Firefox qui a fait qu&#8217;aujourd&#8217;hui, tout le monde sait utiliser et n&#8217;utilise plus que Google. Ne laissant qu&#8217;une insignifiante part pour le reste.
Mais en même temps, si tout le monde utilise Google, c&#8217;est parce-que c&#8217;est celui qui a répondu au [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><a href="http://www.bing.com/"><img class="size-full wp-image-108 aligncenter" src="http://trambo.blog.vectoris.fr/files/2009/07/230px-bing_brand_logo.png" alt="Bing" width="230" height="99" /></a></p>
<p>C&#8217;est facile de critiquer le monopole de Microsoft et d&#8217;oublier Google. C&#8217;est d&#8217;ailleurs le partenariat Google-Firefox qui a fait qu&#8217;aujourd&#8217;hui, tout le monde sait utiliser et n&#8217;utilise plus que Google. Ne laissant qu&#8217;une insignifiante part pour le reste.</p>
<p>Mais en même temps, si tout le monde utilise Google, c&#8217;est parce-que c&#8217;est celui qui a répondu au mieux aux attentes des internautes. La conséquence, c&#8217;est qu&#8217;en référencement, on ne mise que sur lui. Lui permettant de proposer des prix, me semblant trop énormes, pour les AdWords. C&#8217;est du monopole, tout simplement. Impossible, aujourd&#8217;hui de penser promouvoir son site rapidement, sans passer par Google.</p>
<p>Il est donc, pour moi important, ne serais-ce que de connaitre que d&#8217;autres alternatives existent. Je veux, ici, parler de celui qui a été MSN Search, ensuite Live Search et enfin, seulement depuis juin, Bing.</p>
<p>J&#8217;ai eu l&#8217;occasion de tester un peu, j&#8217;ai été en premier surpris par la rapidité, sur ce soup, il n&#8217;a rien à envier à son Maître. Côté fonctionnalité, ils sont au même niveau, Maps, Images,  Shopping &#8230; Niveau pertinence, même niveau aussi sur mes premiers tests.</p>
<p>Par contre, l&#8217;affichage est supect, c&#8217;est trop &#8220;Google-User Friendly&#8221;.</p>
<p>C&#8217;est en éditant cet article que j&#8217;apprend un partenariat entre Microsoft et Yahoo : <a title="Microsoft et Yahoo! proches d'un accord pour contrer Google" href="http://www.lemonde.fr/technologies/article/2009/07/29/microsoft-et-yahoo-proches-d-un-accord-pour-contrer-google_1223694_651865.html" target="_blank">Microsoft et Yahoo! proches d&#8217;un accord pour contrer Google</a>. C&#8217;est clair qu&#8217;ils ont intérêt. C&#8217;est comme ça qu&#8217;ils pourront s&#8217;imposer.</p>
<p>Au final, je suis quand même agréablement surpris. Je ne m&#8217;attend pas a ce qu&#8217;il remplace, demain, Google chez tout le monde, mais en tout cas, il va forcer un peu ce dernier à s&#8217;améliorer, surtout pour son tarif. Vive la concurence.</p>
<p><em>Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le <a title="Bing" href="http://trambo.blog.vectoris.fr/2009/07/29/bing/" target="_blank">blog</a> de ce dernier. Veuillez poster vos commentaires directement a son auteur.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vectoris.fr/2009/07/29/bing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation Redmine sous Debian Lenny 5.0</title>
		<link>http://blog.vectoris.fr/2009/07/23/installation-redmine-sous-debian-lenny-50/</link>
		<comments>http://blog.vectoris.fr/2009/07/23/installation-redmine-sous-debian-lenny-50/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 12:10:12 +0000</pubDate>
		<dc:creator>trambo</dc:creator>
				<category><![CDATA[Gestion de projet]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.vectoris.fr/?p=17</guid>
		<description><![CDATA[J&#8217;introduis Redmine en le comparant avec Trac, que j&#8217;ai utilisé depuis presque un an sans véritable raison particulière alors qu&#8217;il y avait largement plus adapté au type d&#8217;activité de Vectoris.
Ses points forts par rapport à Trac :

Redmine est multi-projet.  C&#8217;est donc déjà un choix plus subtil que de copier-coller Trac à chaque nouveau projet.
Redmine [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;introduis Redmine en le comparant avec Trac, que j&#8217;ai utilisé depuis presque un an sans véritable raison particulière alors qu&#8217;il y avait largement plus adapté au type d&#8217;activité de Vectoris.</p>
<p>Ses points forts par rapport à Trac :</p>
<ul>
<li>Redmine est multi-projet.  C&#8217;est donc déjà un choix plus subtil que de copier-coller Trac à chaque nouveau projet.</li>
<li>Redmine gère ses utilisateurs et ses droits. Beaucoup mieux qu&#8217;un .htaccess</li>
<li>Redmine gère nativement les plus importants systèmes de gestion de versions. GIT, CVS, Subversion et Mercurial (qui me porte beaucoup d&#8217;intérêt). Vous me direz, sur Trac, il suffit d&#8217;intaller un plugin.</li>
<li>Redmine est un véritable outil de gestion de projet avec son planning, son Gantt. Tout est bien pensé.</li>
<li>Redmine est plus souple que Trac</li>
<li>Redmine gère aussi les documents, les fichiers, et a même un forum. Tout ça pour chaque projet.</li>
</ul>
<p>Pour gérer un projet, sans planning, ayant une poignée d&#8217;intervenants, le choix de Trac peut suffire. Un choix qui par contre nous met très vite face à ses limites, quand on est une SSII. J&#8217;ai donc décidé d&#8217;abandonner Trac définitivement pour Redmine.</p>
<p>Pour plus d&#8217;infos sur Redmine, le <a title="Redmine" href="http://www.redmine.org/" target="_blank">site officiel</a>.</p>
<p>Passons maintenant à l&#8217;installation. Pour la suite, je suppose que vous avez déjà un LAMP qui tournes sous Debian-Like. Sachez toutefois que la procédure qui va suivre a été faite et réussie sur la Lenny 5.0. Supposons aussi que nous allons installer Redmine en créant un utilisateur du même nom, de mot de passe &#8220;rdmn&#8221;, dont le répertoire home est /home/redmine et que vous voulez servir redmine sur le nom de domaine redmine.maboite.com (les noms de domaines redmine.maboite.com et maboite.com redirige déjà sur l&#8217;IP de la machine où vous allez effectuer l&#8217;installation).</p>
<p>Commençons par créer cet utilisateur :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">useradd -d /home/redmine -g <span style="color: #cc66cc;">33</span> -m -s /bin/bash redmine</pre></div></div>

<p>Notez qu&#8217;ici, on forces ce nouvel utilisateur à appartenir au GID 33, Apache. Il va vous demander le mot de passe, tapez &#8220;rdmn&#8221;. Une fois fait, faites un &#8220;ls -l&#8221; pour vérifiez que c&#8217;est bon, si c&#8217;est le cas, on passes à la suite.</p>
<p>Créez ensuite la base de donnée &#8220;redmine&#8221; sur MySQL, l&#8217;utilisateur du même nom et de mot de passe &#8220;rdmn&#8221; en lui donnant les doit sur la nouvelle base.</p>
<ol>
<li><strong>Installez RoR (Ruby on Rails)</strong></li>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">aptitude install ruby rdoc irb libyaml-ruby ruby1.8-dev libzlib-ruby ri libopenssl-ruby1.8</pre></div></div>

<p>Ca prend un petit moment. Une fois terminée, nous allons avoir besoin d&#8217;une version spécifique de RubyGems, qui est le gestionnaire de paquets de Ruby. Nous n&#8217;allons pas utiliser Aptitude, la version que vous aurez par ce moyen n&#8217;est pas la bonne.</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
tar xvzf rubygems-1.3.1.tgz
<span style="color: #b1b100; font-weight: bold;">cd</span> rubygems-1.3.1
ruby setup.rb</pre></div></div>

<p>Créez ensuite un lien symbolique, toujours utile:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">ln -s /usr/bin/gem1.8 /usr/bin/gem</pre></div></div>

<p>Une fois que tout est bon pour rubyGems, continuons en l&#8217;utilisant:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">gem install rails -v 2.1.2</pre></div></div>

<p>Il nous faut cette version là. Ensuite, nous allons faire en sorte que Ruby puisses utiliser MySQL :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">aptitude install libmysqlclient15-dev
gem install mysql</pre></div></div>

<p>Voilà, c&#8217;est presque prêt. Justes quelques derniers petits trucs:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">aptitude install imagemagick libmagick9-dev librmagick-ruby1.8
gem install rmagick</pre></div></div>

<p>rmagick va servir à Redmine pour les générations d&#8217;images, de graphes, etc &#8230;</p>
<li> <strong>Installez Redmine</strong></li>
<p>Vous étiez en root.Changez d&#8217;utilisateur, maintenant pour ne pas tout embrouiller dans vos droits. Et ensuite, allez dans votre répertoire home.</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">su redmine
<span style="color: #b1b100; font-weight: bold;">cd</span> /home/redmine</pre></div></div>

<p>C&#8217;est là que vous allez télécharger Redmine :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">wget http://rubyforge.org/frs/download.php/<span style="color: #cc66cc;">52944</span>/redmine-0.8.2.tar.gz
tar xvzf redmine-0.8.2.tar.gz
mv redmine-0.8.2 redmine</pre></div></div>

<p>On va maintenant s&#8217;occuper de la base de donnée que vous avez créé plus haut.</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"><span style="color: #b1b100; font-weight: bold;">cd</span> redmine/config
cp database.yml.example database.yml
vi database.yml</pre></div></div>

<p>Renseignez dedans les champs qui concernes PRODUCTION. C&#8217;est assez facile à comprendre. Une fois bon, initialisons la base et remplissons là par des données par défaut :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">rake db:migrate RAILS_ENV=&quot;production&quot;
rake redmine:load_default_data RAILS_ENV=&quot;production&quot;</pre></div></div>

<p>Faites un petit CHOWN :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">chown -R redmine:www-data /home/redmine</pre></div></div>

<p>Et c&#8217;est parti pour le premier lancement :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">ruby script/server -e production</pre></div></div>

<p>Sachez que Redmine est livré avec Webrick qui est un petit serveur. Une fois lancé, votre site est accessible http://maboite.com:3000.<br />
C&#8217;est cool, vous pouvez déjà vous amuser, mais ce n&#8217;est pas fini parce-que Webrick ne peut pas être utilisé en production et que de toute façon, le port 3000 vous gène.</p>
<li><strong>Installer Mongrel</strong></li>
<p>Nous allons installer un vrai serveur pour Rails, Mongrel:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">gem install gem_plugin mongrel mongrel_cluster</pre></div></div>

<p>Et ensuite créer le fichier de configuration :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">mongrel_rails cluster::configure -e production -p <span style="color: #cc66cc;">8000</span> -N <span style="color: #cc66cc;">3</span> -c /home/redmine/redmine -C /home/redmine/redmine/config/mongrel_cluster.yml -a 127.0.0.1 --user redmine --group www-data</pre></div></div>

<p>Indiquons, ensuite à Mongrel le chemin de ce dernier fichier :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"><span style="color: #b1b100; font-weight: bold;">mkdir</span> /etc/mongrel_cluster
ln -s /home/redmine/redmine/config/mongrel_cluster.yml /etc/mongrel_cluster/monsite.yml</pre></div></div>

<p>Et on installe le script qui va gérer Mongrel :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">cp /usr/lib/ruby/gems/<span style="color: #cc66cc;">1.8</span>/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/</pre></div></div>

<p>Et on va le modifier :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">vi /usr/lib/ruby/gems/<span style="color: #cc66cc;">1.8</span>/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster</pre></div></div>

<p>De façon à avoir ce genre de chose :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">#
# Copyright <span style="color: #66cc66;">&#40;</span>c<span style="color: #66cc66;">&#41;</span> 2007 Bradley Taylor, bradley<span style="color: #33cc33;">@</span>railsmachine.com
#
# mongrel_cluster Startup script <span style="color: #00b100; font-weight: bold;">for</span> Mongrel clusters.
#
# chkconfig: - 85 15
# description: mongrel_cluster manages multiple Mongrel processes <span style="color: #00b100; font-weight: bold;">for</span> use \
# behind a load balancer.
#
CONF_DIR=/etc/mongrel_cluster
PID_DIR=/home/redmine/redmine/tmp/pids
USER=redmine
RETVAL=0
# Gracefully <span style="color: #00b100; font-weight: bold;">exit</span> <span style="color: #00b100; font-weight: bold;">if</span> the controller is missing.
which mongrel_cluster_ctl &gt;/dev/null || <span style="color: #00b100; font-weight: bold;">exit</span> 0
# Go no further <span style="color: #00b100; font-weight: bold;">if</span> config directory is missing.
<span style="color: #66cc66;">&#91;</span> -d &quot;$CONF_DIR&quot; <span style="color: #66cc66;">&#93;</span> || <span style="color: #00b100; font-weight: bold;">exit</span> 0
case &quot;$1&quot; <span style="color: #00b100; font-weight: bold;">in</span>
start<span style="color: #66cc66;">&#41;</span>
# Create pid directory
<span style="color: #b1b100; font-weight: bold;">mkdir</span> -p $PID_DIR
chown $USER:www-data $PID_DIR
mongrel_cluster_ctl start -c $CONF_DIR --clean
RETVAL=$?
;;
stop<span style="color: #66cc66;">&#41;</span>
mongrel_cluster_ctl stop -c $CONF_DIR --clean
RETVAL=$?
;;
restart<span style="color: #66cc66;">&#41;</span>
mongrel_cluster_ctl restart -c $CONF_DIR --clean
RETVAL=$?
;;
status<span style="color: #66cc66;">&#41;</span>
mongrel_cluster_ctl status -c $CONF_DIR
RETVAL=$?
;;
*<span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100; font-weight: bold;">echo</span> &quot;Usage: mongrel_cluster <span style="color: #66cc66;">&#123;</span>start|stop|restart|status<span style="color: #66cc66;">&#125;</span>&quot;
<span style="color: #00b100; font-weight: bold;">exit</span> 1
;;
esac
<span style="color: #00b100; font-weight: bold;">exit</span> $RETVAL</pre></div></div>

<p>vous remarquerez que nous avons surtout ajouté &#8211;clean, ceci indique à Mongrel qu&#8217;il faut supprimer correctement le fichier pid, sinon lors d&#8217;un redémarrage du serveur il y aura une erreur du type &#8220;pid file locked&#8221;.<br />
Il faut maintenant le rendre éxecutable et on le met dans le système:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">chmod +x /etc/init.d/mongrel_cluster
update-rc.d -f mongrel_cluster defaults</pre></div></div>

<p>Lancez maintenant votre nouveau serveur (vous pourrez aussi le contrôler avec stop, restart) :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">/etc/init.d/mongrel_cluster start</pre></div></div>

<li><strong>Mettre en place le Proxy Apache</strong></li>
<p>Nous sommes à 2 doigts de finir. Activons certains modules d&#8217;apache si ce n&#8217;est pas encore fait et allons voir pour ce qui est du proxy</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">a2enmod rewrite
a2enmod proxy_http
a2enmod proxy_balancer
vi /etc/apache2/mods-available/proxy.conf</pre></div></div>

<p>Modifiez le de façon a avoir ceci :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">#turning ProxyRequests on and allowing proxying from all may allow
#spammers to use your proxy to send email.
ProxyRequests Off
&nbsp;
AddDefaultCharset off
Order allow,deny
Allow from all
#Allow from .example.com
# Define the character <span style="color: #b1b100; font-weight: bold;">set</span> <span style="color: #00b100; font-weight: bold;">for</span> proxied FTP directory listings
ProxyFtpDirCharset UTF-8
&nbsp;
# Enable/disable the handling of HTTP/1.1 &quot;Via:&quot; headers.
# <span style="color: #66cc66;">&#40;</span>&quot;Full&quot; adds the server version; &quot;Block&quot; removes all outgoing Via: headers<span style="color: #66cc66;">&#41;</span>
# <span style="color: #b1b100; font-weight: bold;">Set</span> to one of: Off | On | Full | Block
ProxyVia On</pre></div></div>

<p>Un doigt maintenant, il ne reste plus que le virtualHost :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">vi /etc/apache2/sites-available/redmine</pre></div></div>

<p>On va y mettre :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">ServerAdmin admin<span style="color: #33cc33;">@</span>maboite.com
ServerName redmine.maboite.com
DocumentRoot /home/redmine/redmine/public/
&nbsp;
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
&nbsp;
BalancerMember http://127.0.0.1:8000
BalancerMember http://127.0.0.1:8001
BalancerMember http://127.0.0.1:8002
&nbsp;
RewriteCond <span style="color: #33cc33;">%</span><span style="color: #448888;"><span style="color: #66cc66;">&#123;</span>DOCUMENT_ROOT<span style="color: #66cc66;">&#125;</span>/</span><span style="color: #33cc33;">%</span><span style="color: #66cc66;">&#123;</span>REQUEST_FILENAME<span style="color: #66cc66;">&#125;</span> -f
RewriteRule <span style="color: #66cc66;">&#40;</span>.*<span style="color: #66cc66;">&#41;</span> $<span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#91;</span>L<span style="color: #66cc66;">&#93;</span>
&nbsp;
ProxyPass / Balancer://mongrel_cluster/
ProxyPassReverse / balancer://mongrel_cluster/
&nbsp;
AddOutputFilter DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css
BrowserMatch ^Mozilla/<span style="color: #cc66cc;">4</span> gzip-only-text/html
BrowserMatch ^Mozilla/<span style="color: #cc66cc;">4.0</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">678</span><span style="color: #66cc66;">&#93;</span> no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
&nbsp;
ErrorLog /var/log/apache2/redmine.maboite.com.error.log
LogLevel warn
CustomLog /var/log/apache2/redmine.maboite.com.access.log combined
ServerSignature Off</pre></div></div>

<p>Là, nous indiquons à Apache de balancer les requettes de redmine.maboite.com:80 sur localhost:8000, soit sur mongrel_cluster. Par contre, Mongrel étant moins rapide que Apache, la directive DEFLATE dit que pour certains fichiers, il faut utiliser Apache plutôt que Mongrel.<br />
Deux dernieres commandes pour finir en activant notre nouveau site et en redémarrant Apache :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">a2ensite redmine
/etc/init.d/apache2 restart</pre></div></div>

<p>Votre Redmine est disponible : http://redmine.maboite.com.</p>
<p>Vous pouvez maintenant jouer avec votre nouveau bijou.<br />
Pour ma part, je n&#8217;en suis qu&#8217;à une semaine de réelle utilisation, je suis entièrement satisfait.<br />
Le seul hic, c&#8217;est le principe des WorkFlow qui est un peu dur à assimiler. Ca mérite d&#8217;ailleurs un autre billet.</ol>
<p><em>Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le <a title="Installation Redmine sous Debian Lenny 5.0" href="http://trambo.blog.vectoris.fr/2009/07/23/installation-redmine-sous-debian-lenny-50/" target="_self">blog</a> de ce dernier. Veuillez poster vos commentaires directement a son auteur.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vectoris.fr/2009/07/23/installation-redmine-sous-debian-lenny-50/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DataTables</title>
		<link>http://blog.vectoris.fr/2009/07/22/datatables/</link>
		<comments>http://blog.vectoris.fr/2009/07/22/datatables/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 14:12:02 +0000</pubDate>
		<dc:creator>trambo</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.vectoris.fr/?p=14</guid>
		<description><![CDATA[
Une des plus grandes révolution qu&#8217;apporte le Web 2.0 est le partage des tâches entre les deux machines intervenants, le serveur et le client. En effet, aujourd&#8217;hui, dans les conceptions technique, on peut se permettre de confier certaines tâches aux navigateurs de façon a soulager un peu le serveur.
D&#8217;autant plus la tâche est bien plus [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img class="size-full wp-image-53 aligncenter" src="http://trambo.blog.vectoris.fr/files/2009/07/datatables.jpg" alt="DataTables" width="77" height="75" /></p>
<p style="text-align: left">Une des plus grandes révolution qu&#8217;apporte le Web 2.0 est le partage des tâches entre les deux machines intervenants, le serveur et le client. En effet, aujourd&#8217;hui, dans les conceptions technique, on peut se permettre de confier certaines tâches aux navigateurs de façon a soulager un peu le serveur.</p>
<p style="text-align: left">D&#8217;autant plus la tâche est bien plus simple avec Flash, AJAX, JavaScript, JQuery, les WebServices &#8230; et il n&#8217;est plus question de portabilité puisque ces technologies sont maintenant quasi présentes sur tous les navigateurs, surtout JavaScript.</p>
<p style="text-align: left">C&#8217;est dans cet esprit que je vous présente un petit bijou en JQuery que je viens de découvrir récement : DataTables.</p>
<p style="text-align: left">En une seule phrase, tout est fait, prêt à être utilisé et une bonne partie des tâches usuelles mais fastidieuse se retrouve géré automatiquement par la machine cliente. Voici les plus grands avantages de son utilisation :</p>
<ul>
<li>Listing de donnée via flux AJAX</li>
<li>Gestion de la pagination</li>
<li>Gestion de la recherche (via un filtre)</li>
<li>Gestion du &#8220;order by&#8221;</li>
<li>Gestion du nombre de produit à afficher</li>
<li>Gestion rapide des checkbox pour effectuer des actions groupés</li>
</ul>
<p>On peut même effectuer des modifications rapides directement sur le tableau. Fonctionnalité que je n&#8217;utiliserai pas, je préfère rester sur l&#8217;esprit traditionnel de fiche modifiable. Mais pour une liste simple et courte, pourquoi pas.</p>
<p>Pour ce qui est de Vectoris, je l&#8217;adopte pour mon Back-Office, OurWeb.</p>
<p>Non seulement je vais simplifier le travail de mes développeurs mais aussi faciliter l&#8217;accès aux données a mes clients. Le seul souci qui m&#8217;inquiette, c&#8217;est justement sur cette histoire d&#8217;utilisation de ressources, qu&#8217;en est il quand il est question de lignes provenant d&#8217;une table dodue, dans le genre 10 000 enregistrements ?</p>
<p>Ca mérite ne serais-ce qu&#8217;un coup d&#8217;oeuil, <a title="DataTable" href="http://www.datatables.net/index" target="_blank">dataTables</a>.</p>
<p><em>Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le <a title="DataTables" href="http://trambo.blog.vectoris.fr/2009/07/02/datatables/" target="_blank">blog</a> de ce dernier. Veuillez poster vos commentaires directement a son auteur.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vectoris.fr/2009/07/22/datatables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prototype LoadImage en AS2</title>
		<link>http://blog.vectoris.fr/2009/07/22/prototype-loadimage-en-as2/</link>
		<comments>http://blog.vectoris.fr/2009/07/22/prototype-loadimage-en-as2/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 13:21:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 2]]></category>

		<guid isPermaLink="false">http://blog.vectoris.fr/?p=3</guid>
		<description><![CDATA[Ayant été confronté a plusieurs reprises a une situation, pour un projet, où je devais charger une image dans un movieClip que ce soit de manière dynamique ou statique.
J&#8217;ai fini par en créer un prototype, très simple, d&#8217;objet movieClip pour ce faire :

////////// Prototype loadImage=
////////// Aucun Preload
MovieClip.prototype.loadImage = function&#40;urlImage&#41;&#123;
 	this.createEmptyMovieClip&#40;&#34;container&#34;, 1&#41;;
	this&#91;&#34;container&#34;&#93;._x = 0;
	this&#91;&#34;container&#34;&#93;._y = 0;
	this&#91;&#34;container&#34;&#93;.loadMovie&#40;urlImage&#41;;
	this.onEnterFrame [...]]]></description>
			<content:encoded><![CDATA[<p>Ayant été confronté a plusieurs reprises a une situation, pour un projet, où je devais charger une image dans un movieClip que ce soit de manière dynamique ou statique.</p>
<p>J&#8217;ai fini par en créer un prototype, très simple, d&#8217;objet movieClip pour ce faire :</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">////////// Prototype loadImage=</span>
<span style="color: #808080; font-style: italic;">////////// Aucun Preload</span>
<span style="color: #0066CC;">MovieClip</span>.<span style="color: #0066CC;">prototype</span>.<span style="color: #006600;">loadImage</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>urlImage<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
 	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;container&quot;</span>, 1<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;container&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;container&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;container&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">loadMovie</span><span style="color: #66cc66;">&#40;</span>urlImage<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;container&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_width</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// Ajuste la position de movieClipContainer au milieu</span>
			<span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;container&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;container&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> - <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;container&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_width</span> <span style="color: #66cc66;">/</span> 2<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;container&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;container&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> - <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;container&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_height</span> <span style="color: #66cc66;">/</span> 2<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">delete</span> <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">onEnterFrame</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>A utiliser de cette façon :</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">MovieClip</span>.<span style="color: #006600;">loadImage</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;url/de/l/image/a/afficher.jpg&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>Le prototype centre automatiquement l&#8217;image.</p>
<p>J&#8217;espère avoir fait gagné quelques secondes a mes lecteurs-flasheurs. A vous de l&#8217;améliorer selon vos besoin.</p>
<p>Vous trouvez d&#8217;autres tâches répétitives et prototypable ? Je suis preneur.</p>
<p><em>Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le <a title="Prototype loadImage en AS2" href="http://trambo.blog.vectoris.fr/2009/06/16/prototype-loadimage-en-as2/" target="_blank">blog</a> de ce dernier. Veuillez poster vos commentaires directement a son auteur.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vectoris.fr/2009/07/22/prototype-loadimage-en-as2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LocalConnection en AS2</title>
		<link>http://blog.vectoris.fr/2009/07/22/localconnection-en-as2/</link>
		<comments>http://blog.vectoris.fr/2009/07/22/localconnection-en-as2/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 13:05:26 +0000</pubDate>
		<dc:creator>trambo</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 2]]></category>

		<guid isPermaLink="false">http://blog.vectoris.fr/?p=6</guid>
		<description><![CDATA[Supposons que pour la raison d&#8217;un mauvais découpage d&#8217;une charte, d&#8217;une mauvaise conception ou création, vous vous retrouvez confronté a un problème. Vous devez faire circuler des informations entre deux animations Flash.
L&#8217;alternative la plus simple, quoique pas forcément adapté à toutes les situations mais a l&#8217;avantage d&#8217;une implémentation très rapide, est LocalConnection. Un Objet AS2.
Considérons [...]]]></description>
			<content:encoded><![CDATA[<p>Supposons que pour la raison d&#8217;un mauvais découpage d&#8217;une charte, d&#8217;une mauvaise conception ou création, vous vous retrouvez confronté a un problème. Vous devez faire circuler des informations entre deux animations Flash.</p>
<p>L&#8217;alternative la plus simple, quoique pas forcément adapté à toutes les situations mais a l&#8217;avantage d&#8217;une implémentation très rapide, est LocalConnection. Un Objet AS2.</p>
<p>Considérons que nous avons deux animations qu&#8217;on appellera &#8220;action&#8221; et &#8220;evenement&#8221;.</p>
<p>On commence par créer l&#8217;objet réceptif dans le flash &#8220;action&#8221;:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #b1b100;">in</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">LocalConnection</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>Dans le même flash, nous allons déclarer la méthode qui éxecutera l&#8217;action proprement dite et qui recevra un paramètre:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #b1b100;">in</span>.<span style="color: #006600;">actionFunc</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>param<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//action</span>
<span style="color: #66cc66;">&#125;</span>;</pre></div></div>

<p>Ensuite on initialise la connexion de cet objet :</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #b1b100;">in</span>.<span style="color: #0066CC;">connect</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;evenement&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>On passe ensuite sur l&#8217;animation &#8220;evenement&#8221; :</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">out = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">LocalConnection</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
out.<span style="color: #0066CC;">send</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;action&quot;</span>, <span style="color: #ff0000;">&quot;actionFunc&quot;</span>, param<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//On supprime l'objet out.</span>
<span style="color: #0066CC;">delete</span> out;</pre></div></div>

<p>Il suffit de mettre ce dernier code sur l&#8217;évenement attendu. Le tour est joué.</p>
<p>L&#8217;implémentation est a la fois rapide et facile, toutefois sachez que LocalConnection est une connexion sur la machine cliente. Soit, si vous essayez d&#8217;ouvrir la page contenant les deux swf sur différents navigateurs, fenêtres ou onglets. Seule l&#8217;une des instances marchera.</p>
<p><em>Notez que cet article, écrit par Jean-Luc Ranaivoarivao, a été copié sur le <a title="LocalConnection en AS2" href="http://trambo.blog.vectoris.fr/2009/06/16/localconnection-en-as2/" target="_blank">blog</a> de ce dernier. Veuillez poster vos commentaires directement a son auteur.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vectoris.fr/2009/07/22/localconnection-en-as2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

