<?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>Nous vous ouvrons les portes du Web</description>
	<lastBuildDate>Wed, 04 Nov 2009 15:54: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>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.gil-holsters.com/" target="_blank">Gil holsters</a> qui utilise cette technologie.<br />
Suitchez sur les pages <a href="http://www.gil-holsters.com/#/gilholsters/savoirfaire/" target="_blank">Savoir Faire</a>, <a href="http://www.gil-holsters.com/#/boutiques/" target="_blank">Boutiques</a> &#8230; Faites F5 &#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>4</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>1</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>2</slash:comments>
		</item>
	</channel>
</rss>
