<?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>Gaétan Collaud</title>
	<atom:link href="http://gaetan.collaud.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://gaetan.collaud.net</link>
	<description></description>
	<lastBuildDate>Fri, 02 Dec 2011 23:18:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Customizable RichTextEditor</title>
		<link>http://gaetan.collaud.net/190/customizable-richtexteditor/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=customizable-richtexteditor</link>
		<comments>http://gaetan.collaud.net/190/customizable-richtexteditor/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 15:37:43 +0000</pubDate>
		<dc:creator>gaetan.collaud</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://gaetan.collaud.net/?p=190</guid>
		<description><![CDATA[Le champ RichTextEditor est bien pratique si l&#8217;on veut laisser à l&#8217;utilisateur une certaine liberté de mise en forme des textes. Seul problème, on ne peut pas choisir quels éléments d&#8217;édition (gras, italic, liste des polices,&#8230;) afficher ou pas. Voici &#8230;<p class="read-more"><a href="http://gaetan.collaud.net/190/customizable-richtexteditor/">Lire la suite &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Le champ RichTextEditor est bien pratique si l&#8217;on veut laisser à l&#8217;utilisateur une certaine liberté de mise en forme des textes. Seul problème, on ne peut pas choisir quels éléments d&#8217;édition (gras, italic, liste des polices,&#8230;) afficher ou pas.</p>
<p><span id="more-190"></span></p>
<p>Voici donc un composant qui résout le problème :</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:RichTextEditor</span> xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span></span>
<span style="color: #000000;">				   xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span></span>
<span style="color: #000000;">				   xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span></span>
<span style="color: #000000;">				   creationComplete=<span style="color: #ff0000;">&quot;creationComplete()&quot;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Script</span><span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;">&lt;!<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span></span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> public var displayAlignButtons:Boolean = true;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> public var displayFontList:Boolean = true;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> public var displayFontSizeList:Boolean = true;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> public var displayBoldButton:Boolean = true;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> public var displayItalicButton:Boolean = true;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> public var displayUnderlineButton:Boolean = true;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> public var displayColorPicker:Boolean = true;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> public var displayBulletButton:Boolean = true;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> public var displayLinkField:Boolean = true;</span>
&nbsp;
<span style="color: #000000;">			protected function creationComplete<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:void<span style="color: #66cc66;">&#123;</span></span>
<span style="color: #000000;">				if<span style="color: #66cc66;">&#40;</span>!displayAlignButtons<span style="color: #66cc66;">&#41;</span> alignButtons.parent.removeChild<span style="color: #66cc66;">&#40;</span>alignButtons<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">				if<span style="color: #66cc66;">&#40;</span>!displayFontList<span style="color: #66cc66;">&#41;</span> fontFamilyCombo.parent.removeChild<span style="color: #66cc66;">&#40;</span>fontFamilyCombo<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">				if<span style="color: #66cc66;">&#40;</span>!displayFontSizeList<span style="color: #66cc66;">&#41;</span> fontSizeCombo.parent.removeChild<span style="color: #66cc66;">&#40;</span>fontSizeCombo<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">				if<span style="color: #66cc66;">&#40;</span>!displayBoldButton<span style="color: #66cc66;">&#41;</span> boldButton.parent.removeChild<span style="color: #66cc66;">&#40;</span>boldButton<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">				if<span style="color: #66cc66;">&#40;</span>!displayItalicButton<span style="color: #66cc66;">&#41;</span> italicButton.parent.removeChild<span style="color: #66cc66;">&#40;</span>italicButton<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">				if<span style="color: #66cc66;">&#40;</span>!displayUnderlineButton<span style="color: #66cc66;">&#41;</span> underlineButton.parent.removeChild<span style="color: #66cc66;">&#40;</span>underlineButton<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">				if<span style="color: #66cc66;">&#40;</span>!displayColorPicker<span style="color: #66cc66;">&#41;</span> colorPicker.parent.removeChild<span style="color: #66cc66;">&#40;</span>colorPicker<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">				if<span style="color: #66cc66;">&#40;</span>!displayBulletButton<span style="color: #66cc66;">&#41;</span> bulletButton.parent.removeChild<span style="color: #66cc66;">&#40;</span>bulletButton<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">				if<span style="color: #66cc66;">&#40;</span>!displayLinkField<span style="color: #66cc66;">&#41;</span> linkTextInput.parent.removeChild<span style="color: #66cc66;">&#40;</span>linkTextInput<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#125;</span></span>
<span style="color: #000000;">		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Script</span><span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:RichTextEditor</span><span style="color: #7400FF;">&gt;</span></span></pre></div></div>

<p>Et voici un exemple d&#8217;utilisation :</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;custom:CustomRichTextEditor</span> width=<span style="color: #ff0000;">&quot;100%&quot;</span> height=<span style="color: #ff0000;">&quot;100%&quot;</span></span>
<span style="color: #000000;">	displayFontList=<span style="color: #ff0000;">&quot;false&quot;</span></span>
<span style="color: #000000;">	displayLinkField=<span style="color: #ff0000;">&quot;false&quot;</span></span>
<span style="color: #000000;">	id=<span style="color: #ff0000;">&quot;description&quot;</span></span>
<span style="color: #000000;">	htmlText=<span style="color: #ff0000;">&quot;{description}&quot;</span> <span style="color: #7400FF;">/&gt;</span></span></pre></div></div>

<p>Ici je supprime la liste des polices ainsi que le champ permettant d&#8217;ajouter des liens hypertextes.</p>
]]></content:encoded>
			<wfw:commentRss>http://gaetan.collaud.net/190/customizable-richtexteditor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex : Logout after inactivity</title>
		<link>http://gaetan.collaud.net/174/flex-logout-after-inativity/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=flex-logout-after-inativity</link>
		<comments>http://gaetan.collaud.net/174/flex-logout-after-inativity/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 21:52:20 +0000</pubDate>
		<dc:creator>gaetan.collaud</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://gaetan.collaud.net/?p=174</guid>
		<description><![CDATA[L&#8217;application que je développe pour Engiby utilises un système d&#8217;authentification. Et vu que certaines données peuvent être assez sensibles, on m&#8217;a demandé de faire un logout automatique après un certain temps. Voici comment je l&#8217;ai réalisé. L’évènement clé de cette astuce &#8230;<p class="read-more"><a href="http://gaetan.collaud.net/174/flex-logout-after-inativity/">Lire la suite &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>L&#8217;application que je développe pour Engiby utilises un système d&#8217;authentification. Et vu que certaines données peuvent être assez sensibles, on m&#8217;a demandé de faire un logout automatique après un certain temps. Voici comment je l&#8217;ai réalisé.</p>
<p>L’évènement clé de cette astuce est le déplacement de la souris dans l&#8217;application (mouseMove). A chaque mouvement de la souris, je remet un compteur à sa valeur initial, exemple 300 (secondes). En parallèle j&#8217;utilise un Timer qui se déclenche toutes les secondes et qui décrémente ce compteur. Si le compteur arrive à zéro alors j&#8217;appelle une méthode qui fera le logout.</p>
<p><span id="more-174"></span></p>
<p>Premièrement voici ma classe AcctivityChecker :</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ActivityChecker
<span style="color: #66cc66;">&#123;</span>
	protected <span style="color: #000000; font-weight: bold;">var</span> listener:<span style="color: #000000; font-weight: bold;">Function</span>;
	protected <span style="color: #000000; font-weight: bold;">var</span> timer:Timer;
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	 * Notre compteur
	 */</span>
	protected <span style="color: #000000; font-weight: bold;">var</span> counter:<span style="color: #0066CC;">int</span>;
	<span style="color: #808080; font-style: italic;">/**
	 * La valeur initial de notre compteur
	 */</span>
	protected <span style="color: #000000; font-weight: bold;">var</span> counterLimit:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">300</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> ActivityChecker<span style="color: #66cc66;">&#40;</span>listener:<span style="color: #000000; font-weight: bold;">Function</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">this</span>.<span style="color: #006600;">listener</span> = listener;
		counter = counterLimit;
		timer = <span style="color: #000000; font-weight: bold;">new</span> Timer<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1000</span><span style="color: #66cc66;">&#41;</span>;
		timer.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>TimerEvent.<span style="color: #006600;">TIMER</span>, timerUpdate<span style="color: #66cc66;">&#41;</span>;
		timer.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	 * On remet le compteur à sa valeur initiale
	 */</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> userActif<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>timer.<span style="color: #006600;">running</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			counter = counterLimit;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	 * On retourne l'état actuel du coteur
	 * Utile si vous voulez faire un décompte
	 */</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">getTime</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">return</span> counter;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	 * Est-ce que le compteur est encore actif ?
	 */</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> isRunning<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Boolean</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">return</span> timer.<span style="color: #006600;">running</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	 * Appelé toutes les secondes
	 */</span>
	protected <span style="color: #000000; font-weight: bold;">function</span> timerUpdate<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:TimerEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
		counter--;
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>counter<span style="color: #66cc66;">&amp;</span>lt;<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			timer.<span style="color: #0066CC;">stop</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			listener.<span style="color: #0066CC;">call</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Pour un effet sur l&#8217;ensemble du programme, il faut utiliser l&#8217;événement mouseMouve de l&#8217;Application. Voici comment l&#8217;utiliser :</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span></span>
<span style="color: #000000;">	xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span></span>
<span style="color: #000000;">	xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span></span>
<span style="color: #000000;">	xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span></span>
<span style="color: #000000;">	minWidth=<span style="color: #ff0000;">&quot;500&quot;</span> minHeight=<span style="color: #ff0000;">&quot;500&quot;</span></span>
<span style="color: #000000;">	mouseMove=<span style="color: #ff0000;">&quot;mouseMoveHandler()&quot;</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Script</span><span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;">&lt;!<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span></span>
<span style="color: #000000;">			protected var activityCheck:ActivityChecker;</span>
&nbsp;
<span style="color: #000000;">			/**</span>
<span style="color: #000000;">			 * Une fois le login effectué</span>
<span style="color: #000000;">			 */</span>
<span style="color: #000000;">			protected function onLoginHandler<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:void<span style="color: #66cc66;">&#123;</span></span>
<span style="color: #000000;">				activityCheck = new ActivityChecker<span style="color: #66cc66;">&#40;</span>userAway<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#125;</span></span>
&nbsp;
<span style="color: #000000;">			protected function mouseMoveHandler<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:void<span style="color: #66cc66;">&#123;</span></span>
<span style="color: #000000;">				if<span style="color: #66cc66;">&#40;</span>activityCheck!=null<span style="color: #66cc66;">&#41;</span> activityCheck.userActif<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#125;</span></span>
&nbsp;
<span style="color: #000000;">			protected function userAway<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:void<span style="color: #66cc66;">&#123;</span></span>
<span style="color: #000000;">				//action de déconnexion</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#125;</span></span>
&nbsp;
<span style="color: #000000;">		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Script</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
	<span style="color: #000000;"><span style="color: #808080; font-style: italic;">&lt;!-- ... --&gt;</span></span>
&nbsp;
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span></pre></div></div>

<p lang="mxml">On appelle cette classe uniquement quand un utilisateur est logué. Une fois logué le timer décrémente gentiment le compteur. Une fois le compteur terminé la méthode userAway() est appelée.</p>
]]></content:encoded>
			<wfw:commentRss>http://gaetan.collaud.net/174/flex-logout-after-inativity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bien configurer apache</title>
		<link>http://gaetan.collaud.net/163/bien-configurer-apache/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bien-configurer-apache</link>
		<comments>http://gaetan.collaud.net/163/bien-configurer-apache/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 11:31:37 +0000</pubDate>
		<dc:creator>gaetan.collaud</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Système]]></category>

		<guid isPermaLink="false">http://gaetan.collaud.net/?p=163</guid>
		<description><![CDATA[Bonjour, Il y a peu mon serveur ramait énormément. Il faut savoir qu&#8217;il héberge plusieurs sites dont un à moyen trafic (android.collaud.net). J&#8217;ai essayé plusieurs trucs pour le faire avancer un peu mais rien n&#8217;y faisait. J&#8217;avais déterminé que le &#8230;<p class="read-more"><a href="http://gaetan.collaud.net/163/bien-configurer-apache/">Lire la suite &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Bonjour,</p>
<p>Il y a peu mon serveur ramait énormément. Il faut savoir qu&#8217;il héberge plusieurs sites dont un à moyen trafic (<a href="http://android.collaud.net">android.collaud.net</a>). J&#8217;ai essayé plusieurs trucs pour le faire avancer un peu mais rien n&#8217;y faisait. J&#8217;avais déterminé que le problème venait d&#8217;apache. Mais à ces débuts (quasiment un an) le serveur allait bien. J&#8217;étais à 2 doigts de passer sous nginx qui me semble bien plus rapide et léger niveaux mémoire.</p>
<p><span id="more-163"></span></p>
<p>Je suis chez Gandi avec un server à une part. C&#8217;est à dire : 1 processeur, 256Mo de RAM, 8Go de disque dur et 5Mb/s de bande passante. Autant dire, ce n&#8217;est pas une bête de course, mais ça suffit à desservir mes différents sites. Je m&#8217;en sert également comme serveur Teamspeak, c&#8217;est bien pratique.</p>
<p>En cherchant un peu sur la toile, je suis tombé sur cet article : <a href="http://forum.webrankinfo.com/bien-configurer-apache-t63439.html">Bien configurer apache</a>. Il est bien détaillé et facilement compréhensible. J&#8217;espère que cela pourra en aider plus d&#8217;un. Pour infos (et pour ceux qui sont également chez Gandi est qui n&#8217;utilisent qu&#8217;une part pour leur serveur), ma config apache pour mon serveur est désormais :</p>
<pre>MaxClients 10
MaxRequestsPerChild 5
StartServers 10
KeepAlive On
keepAliveTimeout 5</pre>
]]></content:encoded>
			<wfw:commentRss>http://gaetan.collaud.net/163/bien-configurer-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Files and MySQL backups directly to an FTP server</title>
		<link>http://gaetan.collaud.net/131/files-and-mysql-backups-directly-to-an-ftp-server/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=files-and-mysql-backups-directly-to-an-ftp-server</link>
		<comments>http://gaetan.collaud.net/131/files-and-mysql-backups-directly-to-an-ftp-server/#comments</comments>
		<pubDate>Sun, 04 Sep 2011 19:59:25 +0000</pubDate>
		<dc:creator>gaetan.collaud</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Système]]></category>

		<guid isPermaLink="false">http://gaetan.collaud.net/?p=131</guid>
		<description><![CDATA[Pour des raisons évidentes de sécurité, j&#8217;ai cherché un script de backup automatique pour mon serveur. Je voulais un backup de plusieurs dossiers et des bases de données. Le backup devait être envoyé directement sur un serveur FTP. Jusque là &#8230;<p class="read-more"><a href="http://gaetan.collaud.net/131/files-and-mysql-backups-directly-to-an-ftp-server/">Lire la suite &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Pour des raisons évidentes de sécurité, j&#8217;ai cherché un script de backup automatique pour mon serveur. Je voulais un backup de plusieurs dossiers et des bases de données. Le backup devait être envoyé directement sur un serveur FTP. Jusque là pas trop de problème, j&#8217;ai trouvé 2-3 scripts qui faisait cela. Mais je voulais également indiquer des destinations différentes pour les backups. Je m&#8217;explique. Je me suis proposé pour heberger le <a href="http://wiki.syncany.org/">wiki de Syncany</a>, un Dropbox like mais où l’hébergement n&#8217;est pas assuré par une société mais par la personne elle même. Pour plus de sécurité je voulais faire des backups sur plusieurs serveurs FTP. Mais je voulais également séparer les backups de mes sites et de celui de Syncany.</p>
<p>J&#8217;ai donc écrit un petit script en PHP qui permet très simplement de configurer :</p>
<ul>
<li>Les serveurs FTP</li>
<li>Les dossiers à sauvegarder</li>
<li>Les bases de données à sauvegarder</li>
<li>Le temps de vie des backups</li>
</ul>
<p><span id="more-131"></span></p>
<p>Je pense que la configuration est assez clair. Sinon faites un commentaire et je préciserais les choses.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #990000;">set_time_limit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$deb</span> <span style="color: #339933;">=</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;start backup<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$servers</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #cc66cc;">1</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'monftp.mondomaine.me'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'myFTPUser'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'myFTPPass'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'/myBackupDir'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
	<span style="color: #cc66cc;">2</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'nestle.com'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'george'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'clonney'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'./nespresso'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// name =&gt; array(local dir, array(server1, server2, ...))</span>
<span style="color: #000088;">$backupDir</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'configSys'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/etc/'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'syncany'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/var/www/syncany'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'www'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/var/www'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// bdd name =&gt; array(server1, server2, ...)</span>
<span style="color: #666666; font-style: italic;">// 'all' mean all databases</span>
<span style="color: #000088;">$backupMysql</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'all'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
	<span style="color: #0000ff;">'syncany'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$TMP_DIR</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/var/tmp/'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// temp dir</span>
<span style="color: #000088;">$EMAIL</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'myEmailAddress'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//email address</span>
<span style="color: #000088;">$DAY</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">30</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//time to live of backup in days</span>
&nbsp;
<span style="color: #000088;">$sql_host</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'localhost'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//mysql host</span>
<span style="color: #000088;">$sql_user</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'mySqlUser'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//mysql user</span>
<span style="color: #000088;">$sql_pass</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'mySqlPass'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//mysql pass</span>
&nbsp;
<span style="color: #000088;">$errorMsg</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Errors list : <span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$oneErr</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> addError<span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$errorMsg</span><span style="color: #339933;">,</span> <span style="color: #000088;">$oneErr</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$errorMsg</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$msg</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;ERROR : &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$msg</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$oneErr</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$infosMsg</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Infos list : <span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> addMsg<span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$infosMsg</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$infosMsg</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$msg</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$msg</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$now</span> <span style="color: #339933;">=</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Y-m-d'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//localdir backup</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$backupDir</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$name</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$backup</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$backup</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	addMsg<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Backup of local dir : '<span style="color: #006699; font-weight: bold;">$dir</span>'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;file-<span style="color: #006699; font-weight: bold;">$name</span>-<span style="color: #006699; font-weight: bold;">$now</span>.tar.gz&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">exec</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;tar -zcvf <span style="color: #006699; font-weight: bold;">$TMP_DIR</span>/<span style="color: #006699; font-weight: bold;">$file</span> <span style="color: #006699; font-weight: bold;">$dir</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//compression</span>
&nbsp;
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$backup</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$srvID</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$srv</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$servers</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$srvID</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		addMsg<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>try to send to : &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$conn</span> <span style="color: #339933;">=</span> <span style="color: #990000;">ftp_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">21</span><span style="color: #009900;">&#41;</span> or addError<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Cannot connect to '</span><span style="color: #339933;">.</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">ftp_login</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #339933;">,</span> <span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> or addError<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Cannot login to '</span><span style="color: #339933;">.</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">ftp_put</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #339933;">,</span> <span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$TMP_DIR</span>/<span style="color: #006699; font-weight: bold;">$file</span>&quot;</span><span style="color: #339933;">,</span> FTP_BINARY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">ftp_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #990000;">exec</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;rm <span style="color: #006699; font-weight: bold;">$TMP_DIR</span>/<span style="color: #006699; font-weight: bold;">$file</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
addMsg<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//backup of database</span>
<span style="color: #000088;">$listDB</span><span style="color: #339933;">;</span>
<span style="color: #990000;">exec</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;mysql -u <span style="color: #006699; font-weight: bold;">$sql_user</span> -h <span style="color: #006699; font-weight: bold;">$sql_host</span> -p<span style="color: #006699; font-weight: bold;">$sql_pass</span> -Bse 'show databases'&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$listDB</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$backupMysql</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$name</span><span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$listSrv</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	addMsg<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;backup of bdd : <span style="color: #006699; font-weight: bold;">$name</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$list</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$name</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'all'</span> ? <span style="color: #000088;">$listDB</span> <span style="color: #339933;">:</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$listFile</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$list</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$db</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$db</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'information_schema'</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;mysql-<span style="color: #006699; font-weight: bold;">$db</span>-<span style="color: #006699; font-weight: bold;">$now</span>.gz&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$listFile</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">exec</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;mysqldump -u <span style="color: #006699; font-weight: bold;">$sql_user</span> -h <span style="color: #006699; font-weight: bold;">$sql_host</span> -p<span style="color: #006699; font-weight: bold;">$sql_pass</span> <span style="color: #006699; font-weight: bold;">$db</span> | gzip -9 &gt; <span style="color: #006699; font-weight: bold;">$TMP_DIR</span>/<span style="color: #006699; font-weight: bold;">$file</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$listSrv</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$srvID</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$srv</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$servers</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$srvID</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		addMsg<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>try to send to &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$conn</span> <span style="color: #339933;">=</span> <span style="color: #990000;">ftp_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">21</span><span style="color: #009900;">&#41;</span> or addError<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Cannot connect to '</span><span style="color: #339933;">.</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">ftp_login</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #339933;">,</span> <span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> or addError<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Cannot login to '</span><span style="color: #339933;">.</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$listFile</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">ftp_put</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #339933;">,</span> <span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$TMP_DIR</span>/<span style="color: #006699; font-weight: bold;">$file</span>&quot;</span><span style="color: #339933;">,</span> FTP_BINARY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #990000;">ftp_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$listFile</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span>
	<span style="color: #990000;">exec</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;rm <span style="color: #006699; font-weight: bold;">$TMP_DIR</span>/<span style="color: #006699; font-weight: bold;">$file</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//remove old backups</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$servers</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$srv</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	addMsg<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Delete of old file on : &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$conn</span> <span style="color: #339933;">=</span> <span style="color: #990000;">ftp_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">21</span><span style="color: #009900;">&#41;</span> or addError<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Cannot connect to '</span><span style="color: #339933;">.</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">ftp_login</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #339933;">,</span> <span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> or addError<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Cannot login to '</span><span style="color: #339933;">.</span><span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">ftp_chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #339933;">,</span> <span style="color: #000088;">$srv</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">ftp_nlist</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$delta</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #990000;">ftp_mdtm</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3600</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">24</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$delta</span><span style="color: #339933;">&gt;</span><span style="color: #000088;">$DAY</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">ftp_delete</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			addMsg<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\t</span> <span style="color: #006699; font-weight: bold;">$file</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #990000;">ftp_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conn</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
addMsg<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>Backup done in :&quot;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #000088;">$deb</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;sec&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$titre</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$oneErr</span> ? <span style="color: #0000ff;">&quot;[ERREUR] &quot;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$titre</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;Backup &quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">exec</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;hostname&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mail</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$EMAIL</span><span style="color: #339933;">,</span> <span style="color: #000088;">$titre</span><span style="color: #339933;">,</span> <span style="color: #000088;">$infosMsg</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$errorMsg</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Exemple d&#8217;email reçu :</p>
<blockquote><p>Liste des infos :</p>
<p>backup de &#8216;/etc/&#8217;<br />
Envoie sur ftp.monserver.me<br />
backup de &#8216;/var/www/syncany&#8217;<br />
Envoie sur ftp.monserver.me<br />
backup de &#8216;/var/www&#8217;<br />
Envoie sur ftp.monserver.me</p>
<p>backup de la bdd all<br />
Envoie sur ftp.monserver.me<br />
Suppression des vieux fichiers sur ftp.monserver.me<br />
mysql-graphsconcept-2011-07-31.gz<br />
mysql-passvacs-2011-07-31.gz<br />
mysql-syncany-2011-07-31.gz<br />
file-configSys-2011-07-31.tar.gz<br />
file-syncany-2011-07-31.tar.gz<br />
file-www-2011-07-31.tar.gz<br />
mysql-android-2011-07-31.gz<br />
mysql-android_new-2011-07-31.gz<br />
mysql-ddosproject-2011-07-31.gz<br />
mysql-engiby-2011-07-31.gz<br />
mysql-falconmedia-2011-07-31.gz<br />
mysql-gaetancollaud-2011-07-31.gz<br />
mysql-gagatemplate-2011-07-31.gz<br />
mysql-mysql-2011-07-31.gz<br />
mysql-proftpd-2011-07-31.gz</p>
<p>Backup effectue en :715sec</p>
<p>Liste des erreurs :</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://gaetan.collaud.net/131/files-and-mysql-backups-directly-to-an-ftp-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introduction de la catégorie &#171;&#160;astuces&#160;&#187;</title>
		<link>http://gaetan.collaud.net/50/intro-astuces/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=intro-astuces</link>
		<comments>http://gaetan.collaud.net/50/intro-astuces/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 12:27:09 +0000</pubDate>
		<dc:creator>gaetan.collaud</dc:creator>
				<category><![CDATA[Astuces]]></category>

		<guid isPermaLink="false">http://new.gaetan.collaud.net/?p=50</guid>
		<description><![CDATA[Cela fait déjà un moment que j&#8217;hésitais à lancer un blog pour vous parler de toutes les astuces que j&#8217;utilise dans mes applications ou sites web. C&#8217;est aujourd&#8217;hui chose faite. Je m&#8217;explique : pour mon boulot ou pour mes travaux &#8230;<p class="read-more"><a href="http://gaetan.collaud.net/50/intro-astuces/">Lire la suite &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Cela fait déjà un moment que j&#8217;hésitais à lancer un blog pour vous parler de toutes les astuces que j&#8217;utilise dans mes applications ou sites web. C&#8217;est aujourd&#8217;hui chose faite.</p>
<p>Je m&#8217;explique : pour mon boulot ou pour mes travaux personnels, il arrive souvent que je passe énormément de temps à rechercher des astuces, des bouts de code, des manières de faire, etc. Il peut arriver que ces recherches soient longues pour au final réaliser un truc tout con. C&#8217;est la qu&#8217;intervient ce blog. Je suis sûr que nous sommes plusieurs a rechercher les mêmes choses. Et plutôt que de les garder pour moi, je vais dorénavant les partager ici en espérant que cela pourra aider d&#8217;autres personnes. De plus vous laisse la possibilité (et je vous encourage à le faire) de commenter mes articles pour ainsi apporter vos idées ou vos améliorations.</p>
<p>Voili voilou, j&#8217;espère que cela vous sera utile.</p>
]]></content:encoded>
			<wfw:commentRss>http://gaetan.collaud.net/50/intro-astuces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Passeport-Vacances</title>
		<link>http://gaetan.collaud.net/93/passeport-vacances/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=passeport-vacances</link>
		<comments>http://gaetan.collaud.net/93/passeport-vacances/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 14:22:45 +0000</pubDate>
		<dc:creator>gaetan.collaud</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[graphisme]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://new.gaetan.collaud.net/?p=93</guid>
		<description><![CDATA[Il s&#8217;agit d&#8217;une application web pour gérer le passeport vacances. On ajoute les élèves (trié par classes) et les activités. Ensuite on remplit les inscriptions de chacun des élèves. Et pour finir on clique sur &#171;&#160;tirage au sort&#160;&#187;. Ainsi les &#8230;<p class="read-more"><a href="http://gaetan.collaud.net/93/passeport-vacances/">Lire la suite &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Il s&#8217;agit d&#8217;une application web pour gérer le passeport vacances. On ajoute les élèves (trié par classes) et les activités.</p>
<p>Ensuite on remplit les inscriptions de chacun des élèves.</p>
<p>Et pour finir on clique sur &laquo;&nbsp;tirage au sort&nbsp;&raquo;. Ainsi les activités seront remplient au mieux pour convenir à un maximum d&#8217;élèves.</p>
<p>Une fois tout ceci terminé il y a possibilité de sortir un fichier PDF imprimable pour afficher publiquement qui est inscrit à quelles activités.</p>
<p>La prochaine étape est que les élèves puissent s&#8217;inscrire directement sur le site. Cela sera encore un gain de temps pour les membres du comité.</p>

<div class="ngg-galleryoverview" id="ngg-gallery-8-93">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://gaetan.collaud.net/93/passeport-vacances/?show=slide">
			[Show as slideshow]		</a>
	</div>

	
	<!-- Thumbnails -->
		
	<div id="ngg-image-34" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_passvacs/39.png" title=" " class="shutterset_set_8" >
								<img title="39" alt="39" src="http://gaetan.collaud.net/wp-content/gallery/realisation_passvacs/thumbs/thumbs_39.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-35" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_passvacs/40.png" title=" " class="shutterset_set_8" >
								<img title="40" alt="40" src="http://gaetan.collaud.net/wp-content/gallery/realisation_passvacs/thumbs/thumbs_40.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-36" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_passvacs/41.png" title=" " class="shutterset_set_8" >
								<img title="41" alt="41" src="http://gaetan.collaud.net/wp-content/gallery/realisation_passvacs/thumbs/thumbs_41.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


]]></content:encoded>
			<wfw:commentRss>http://gaetan.collaud.net/93/passeport-vacances/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Engiby NG Server</title>
		<link>http://gaetan.collaud.net/88/engiby-ng-server/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=engiby-ng-server</link>
		<comments>http://gaetan.collaud.net/88/engiby-ng-server/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 14:20:10 +0000</pubDate>
		<dc:creator>gaetan.collaud</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[graphisme]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://new.gaetan.collaud.net/?p=88</guid>
		<description><![CDATA[Ce programme n&#8217;est autre que mon projet CFC. Engiby, une société qui s&#8217;occupe de l&#8217;automation dans différentes entreprisses m&#8217;a mandaté pour refaire l&#8217;application de management. J&#8217;ai depuis été engagé par cette entreprise. L&#8217;ancienne application fonctionnait sur Windows. L&#8217;administration ne pouvait &#8230;<p class="read-more"><a href="http://gaetan.collaud.net/88/engiby-ng-server/">Lire la suite &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Ce programme n&#8217;est autre que mon projet CFC. Engiby, une société qui s&#8217;occupe de l&#8217;automation dans différentes entreprisses m&#8217;a mandaté pour refaire l&#8217;application de management. J&#8217;ai depuis été engagé par cette entreprise.</p>
<p>L&#8217;ancienne application fonctionnait sur Windows. L&#8217;administration ne pouvait se faire qu&#8217;en interne. Mon projet a été de réaliser la même, mais en Flex avec des services web en PHP. De ce fait l&#8217;application est accessible depuis n&#8217;importe où dans le monde.</p>
<p>J&#8217;ai commencé par faire l&#8217;application coté manager mais depuis cette année je m&#8217;occupe également de l&#8217;application côté utilisateur.</p>
<p>Cette dernière application, permet d&#8217;afficher les valeurs retournées par les différents automates installés. La fonction la plus intéressante et la plus complète est les graphiques. Il y a de très nombreuses options dont certaines se configurent depuis le manager.</p>

<div class="ngg-galleryoverview" id="ngg-gallery-7-88">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://gaetan.collaud.net/88/engiby-ng-server/?show=slide">
			[Show as slideshow]		</a>
	</div>

	
	<!-- Thumbnails -->
		
	<div id="ngg-image-25" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/42.png" title=" " class="shutterset_set_7" >
								<img title="42" alt="42" src="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/thumbs/thumbs_42.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-26" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/43.png" title=" " class="shutterset_set_7" >
								<img title="43" alt="43" src="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/thumbs/thumbs_43.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-27" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/44.png" title=" " class="shutterset_set_7" >
								<img title="44" alt="44" src="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/thumbs/thumbs_44.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-28" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/45.png" title=" " class="shutterset_set_7" >
								<img title="45" alt="45" src="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/thumbs/thumbs_45.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-29" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/46.png" title=" " class="shutterset_set_7" >
								<img title="46" alt="46" src="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/thumbs/thumbs_46.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-30" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/47.png" title=" " class="shutterset_set_7" >
								<img title="47" alt="47" src="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/thumbs/thumbs_47.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-31" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/48.png" title=" " class="shutterset_set_7" >
								<img title="48" alt="48" src="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/thumbs/thumbs_48.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-32" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/49.png" title=" " class="shutterset_set_7" >
								<img title="49" alt="49" src="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/thumbs/thumbs_49.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-33" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/50.png" title=" " class="shutterset_set_7" >
								<img title="50" alt="50" src="http://gaetan.collaud.net/wp-content/gallery/realisation_engiby/thumbs/thumbs_50.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


]]></content:encoded>
			<wfw:commentRss>http://gaetan.collaud.net/88/engiby-ng-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiremote</title>
		<link>http://gaetan.collaud.net/83/multiremote/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=multiremote</link>
		<comments>http://gaetan.collaud.net/83/multiremote/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 14:15:14 +0000</pubDate>
		<dc:creator>gaetan.collaud</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[reseau]]></category>

		<guid isPermaLink="false">http://new.gaetan.collaud.net/?p=83</guid>
		<description><![CDATA[MultiRemote est une application pour mobile sous Android. Elle permet de télécommandé (par le wifi) un ordinateur. Liste des commandes : * Souris * Windows Media Center * PowerPoint * VLC * Winamp * et une commande personnalisée Site de &#8230;<p class="read-more"><a href="http://gaetan.collaud.net/83/multiremote/">Lire la suite &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>MultiRemote est une application pour mobile sous Android. Elle permet de télécommandé (par le wifi) un ordinateur.</p>
<p>Liste des commandes :<br />
* Souris<br />
* Windows Media Center<br />
* PowerPoint<br />
* VLC<br />
* Winamp<br />
* et une commande personnalisée</p>
<p><a href="http://android.collaud.net/multiremote">Site de présentation</a></p>

<div class="ngg-galleryoverview" id="ngg-gallery-6-83">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://gaetan.collaud.net/83/multiremote/?show=slide">
			[Show as slideshow]		</a>
	</div>

	
	<!-- Thumbnails -->
		
	<div id="ngg-image-22" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_multiremote/30.png" title=" " class="shutterset_set_6" >
								<img title="30" alt="30" src="http://gaetan.collaud.net/wp-content/gallery/realisation_multiremote/thumbs/thumbs_30.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-23" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_multiremote/31.png" title=" " class="shutterset_set_6" >
								<img title="31" alt="31" src="http://gaetan.collaud.net/wp-content/gallery/realisation_multiremote/thumbs/thumbs_31.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-24" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_multiremote/32.png" title=" " class="shutterset_set_6" >
								<img title="32" alt="32" src="http://gaetan.collaud.net/wp-content/gallery/realisation_multiremote/thumbs/thumbs_32.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


]]></content:encoded>
			<wfw:commentRss>http://gaetan.collaud.net/83/multiremote/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Hourri</title>
		<link>http://gaetan.collaud.net/77/hourri/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hourri</link>
		<comments>http://gaetan.collaud.net/77/hourri/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 14:11:23 +0000</pubDate>
		<dc:creator>gaetan.collaud</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://new.gaetan.collaud.net/?p=77</guid>
		<description><![CDATA[Hourri est ma première application sous Android, le nouvel OS pour téléphone mobile de Google. Le principe est simple, l&#8217;application (widget ou simple application) récupère un &#171;&#160;hourri&#160;&#187; aléatoire depuis le site hourri.fr et l&#8217;affiche. Dans l&#8217;application, il suffit de peser sur un &#8230;<p class="read-more"><a href="http://gaetan.collaud.net/77/hourri/">Lire la suite &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Hourri est ma première application sous Android, le nouvel OS pour téléphone mobile de Google.</p>
<p>Le principe est simple, l&#8217;application (widget ou simple application) récupère un &laquo;&nbsp;hourri&nbsp;&raquo; aléatoire depuis le site <a href="http://hourri.fr/">hourri.fr</a> et l&#8217;affiche.</p>
<p>Dans l&#8217;application, il suffit de peser sur un bouton pour en afficher un nouveau, tandis que le widget se met à jour de lui-même toutes les heures.</p>

<div class="ngg-galleryoverview" id="ngg-gallery-5-77">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://gaetan.collaud.net/77/hourri/?show=slide">
			[Show as slideshow]		</a>
	</div>

	
	<!-- Thumbnails -->
		
	<div id="ngg-image-13" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_hourri/23.png" title=" " class="shutterset_set_5" >
								<img title="23" alt="23" src="http://gaetan.collaud.net/wp-content/gallery/realisation_hourri/thumbs/thumbs_23.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-14" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_hourri/24.png" title=" " class="shutterset_set_5" >
								<img title="24" alt="24" src="http://gaetan.collaud.net/wp-content/gallery/realisation_hourri/thumbs/thumbs_24.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-15" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_hourri/25.png" title=" " class="shutterset_set_5" >
								<img title="25" alt="25" src="http://gaetan.collaud.net/wp-content/gallery/realisation_hourri/thumbs/thumbs_25.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-16" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_hourri/26.png" title=" " class="shutterset_set_5" >
								<img title="26" alt="26" src="http://gaetan.collaud.net/wp-content/gallery/realisation_hourri/thumbs/thumbs_26.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-17" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_hourri/27.png" title=" " class="shutterset_set_5" >
								<img title="27" alt="27" src="http://gaetan.collaud.net/wp-content/gallery/realisation_hourri/thumbs/thumbs_27.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


]]></content:encoded>
			<wfw:commentRss>http://gaetan.collaud.net/77/hourri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Communet</title>
		<link>http://gaetan.collaud.net/73/communet/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=communet</link>
		<comments>http://gaetan.collaud.net/73/communet/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 14:10:03 +0000</pubDate>
		<dc:creator>gaetan.collaud</dc:creator>
				<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[Sites Web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://new.gaetan.collaud.net/?p=73</guid>
		<description><![CDATA[Communet est une association. Elle se compose d&#8217;organisations à caractère public (souvent des communes). Elle permet d&#8217;organiser et de gérer les besoins informatiques de ses différent membres.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.communetfr.ch/">Communet</a> est une association. Elle se compose d&#8217;organisations à caractère public (souvent des communes). Elle permet d&#8217;organiser et de gérer les besoins informatiques de ses différent membres.</p>

<div class="ngg-galleryoverview" id="ngg-gallery-4-73">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://gaetan.collaud.net/73/communet/?show=slide">
			[Show as slideshow]		</a>
	</div>

	
	<!-- Thumbnails -->
		
	<div id="ngg-image-18" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_communet/19.png" title=" " class="shutterset_set_4" >
								<img title="19" alt="19" src="http://gaetan.collaud.net/wp-content/gallery/realisation_communet/thumbs/thumbs_19.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-19" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_communet/20.png" title=" " class="shutterset_set_4" >
								<img title="20" alt="20" src="http://gaetan.collaud.net/wp-content/gallery/realisation_communet/thumbs/thumbs_20.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-20" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_communet/21.png" title=" " class="shutterset_set_4" >
								<img title="21" alt="21" src="http://gaetan.collaud.net/wp-content/gallery/realisation_communet/thumbs/thumbs_21.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-21" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://gaetan.collaud.net/wp-content/gallery/realisation_communet/22.png" title=" " class="shutterset_set_4" >
								<img title="22" alt="22" src="http://gaetan.collaud.net/wp-content/gallery/realisation_communet/thumbs/thumbs_22.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


]]></content:encoded>
			<wfw:commentRss>http://gaetan.collaud.net/73/communet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

