<?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>&#38; pourquoi j’n’écrirais pas ça ? &#187; Web</title>
	<atom:link href="http://blogs.wittwer.fr/whiler/category/computer/dev/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.wittwer.fr/whiler</link>
	<description>Pour partager des choses que j&#039;ai envie d&#039;écrire...</description>
	<lastBuildDate>Fri, 20 Jan 2012 19:07:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Nouvelle version de wFreeboxProxy</title>
		<link>http://blogs.wittwer.fr/whiler/2010/12/07/wfreeboxproxy-streaming/</link>
		<comments>http://blogs.wittwer.fr/whiler/2010/12/07/wfreeboxproxy-streaming/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 18:30:11 +0000</pubDate>
		<dc:creator>Whiler</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[freeware]]></category>

		<guid isPermaLink="false">http://blogs.wittwer.fr/whiler/?p=1895</guid>
		<description><![CDATA[Regardez le contenu FTP et les chaînes de votre Freebox, où que vous soyez...]]></description>
			<content:encoded><![CDATA[<p>Cette nouvelle version majeure apporte évidemment son lot de nouvelles fonctionnalités&#8230;</p>
<p>Pour bénéficier des mises à jours les plus intéressantes, il vous faudra une version minimum <a title="Télécharger la dernière version" href="http://www.whiler.com/freewares/download?wfp.exe">2.1 de wFreeboxProxy</a>, ainsi que le logiciel <a href="http://fr.wikipedia.org/wiki/VLC_media_player" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: VLC media player" style="" >VLC media player</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>.</p>
<p>J&#8217;ai effectué des tests concluants avec la version 1.1.5 de VLC (la version 0.8.4 ne permet pas de lire des fichiers à partir d&#8217;URL contenant des espaces.. comme dans <em>Disque dur</em> par exemple&#8230;).<br />
Les tests ont été réalisés sur un navigateur PC depuis un site distant et également sur des téléphones Android en utilisant le navigateur Web de celui-ci. Ça tombe bien, ces téléphones-là supportent <a href="http://fr.wikipedia.org/wiki/Adobe_Flash" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: Flash" style="" >Flash</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/rolleyes.gif' alt=':rollup:' class='wp-smiley' />  </p>
<p>Un nouvel onglet pour le paramétrage de VLC a été ajouté :</p>
<div id="attachment_1897" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/12/vlc.png" rel="lightbox[1895]" title="Configuration VLC"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/12/vlc-300x164.png" alt="Configuration VLC" title="Configuration VLC" width="300" height="164" class="size-medium wp-image-1897" /></a><p class="wp-caption-text">Configuration VLC</p></div>
<p>Pour utiliser ces fonctionnalités, il faut à minima :</p>
<ul>
<li>Paramétrer le chemin d&#8217;accès à l&#8217;application, vlc.exe</li>
<li>Un port d&#8217;écoute qui est disponible.</li>
<li>Ajouter au moins une chaîne télé ou radio pour cette option&#8230; sinon, vous ne pourrez lire que les vidéos du serveur FTP.</li>
</ul>
<p><span id="more-1895"></span></p>
<p>Ensuite, depuis l&#8217;interface Web, vous pourrez ainsi facilement visualiser vos vidéos, les chaînes disponibles ou écouter les radios :<br />
<div id="attachment_1898" class="wp-caption aligncenter" style="width: 298px"><a href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/12/channels.png" rel="lightbox[1895]" title="Liste des chaînes choisies"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/12/channels-288x300.png" alt="Liste des chaînes choisies" title="Liste des chaînes choisies" width="288" height="300" class="size-medium wp-image-1898" /></a><p class="wp-caption-text">Liste des chaînes choisies</p></div></p>
<div id="attachment_1899" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/12/streaming.png" rel="lightbox[1895]" title="Visualisation à distance"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/12/streaming-300x270.png" alt="Visualisation à distance" title="Visualisation à distance" width="300" height="270" class="size-medium wp-image-1899" /></a><p class="wp-caption-text">Visualisation à distance</p></div>
<p><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/08/stat_sys_warning_red.png" alt="Attention !!!" title="Attention !!!" width="32" height="32" class="size-full wp-image-1503" /> Si vous avez un routeur (sur votre réseau ou activé dans les options de la Freebox), vous devrez router ce port en plus. De même, les pare-feux devront le laisser passer&#8230;</p>
<p>Comme toujours, si vous avez des questions, des suggestions, laissez un commentaire <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/wink.gif' alt=';)' class='wp-smiley' />  </p>
<p><center><a href="http://blogs.wittwer.fr/whiler/category/computer/delphi/" title="Articles concernant Delphi"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2009/10/built_with_delphi.png" alt="Développé en Delphi" title="Développé en Delphi" width="125" height="51" class="size-full wp-image-2721" /></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.wittwer.fr/whiler/2010/12/07/wfreeboxproxy-streaming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>w Freebox Proxy</title>
		<link>http://blogs.wittwer.fr/whiler/2010/11/23/w-freebox-proxy/</link>
		<comments>http://blogs.wittwer.fr/whiler/2010/11/23/w-freebox-proxy/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 00:00:28 +0000</pubDate>
		<dc:creator>Whiler</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[freeware]]></category>

		<guid isPermaLink="false">http://blogs.wittwer.fr/whiler/?p=1729</guid>
		<description><![CDATA[Cette fois-ci je vous propose une nouvelle application, en français, qui permet de parcourir le serveur FTP de votre Freebox à travers : un explorateur FTP intégré, une interface Web HTTP accessible à distance et/ou l’interface de Freebox Recorder, une application disponible sur l’OS Android qui vous permet de gérer à distance vos enregistrements sur la Freebox...]]></description>
			<content:encoded><![CDATA[<p>Cette fois-ci je vous propose une nouvelle application, en français, qui permet de parcourir le serveur FTP de votre <a href="http://fr.wikipedia.org/wiki/Freebox" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: Freebox" style="" >Freebox</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> à travers :</p>
<ul>
<li>un explorateur FTP intégré,<br />
<div id="attachment_1731" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/11/explorer.png" rel="lightbox[1729]" title="Explorateur FTP intégré"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/11/explorer-300x163.png" alt="Explorateur FTP intégré" title="Explorateur FTP intégré" width="300" height="163" class="size-medium wp-image-1731" /></a><p class="wp-caption-text">Explorateur FTP intégré</p></div></li>
<li>une interface Web HTTP accessible à distance,<br />
<div id="attachment_1732" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/11/web.png" rel="lightbox[1729]" title="Interface Web"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/11/web-300x250.png" alt="Interface Web" title="Interface Web" width="300" height="250" class="size-medium wp-image-1732" /></a><p class="wp-caption-text">Interface Web</p></div></li>
<li>l&#8217;interface de <a target="_blank" href="http://sites.google.com/site/freeboxrecorder/">Freebox Recorder</a>, une application disponible sur l&#8217;OS <a href="http://fr.wikipedia.org/wiki/Android" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: Android" style="" >Android</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> qui vous permet de gérer à distance vos enregistrements sur la Freebox.<br />
<div id="attachment_1733" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/11/fbr.png" rel="lightbox[1729]" title="Interface de Freebox Recorder"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/11/fbr-300x250.png" alt="Interface de Freebox Recorder" title="Interface de Freebox Recorder" width="300" height="250" class="size-medium wp-image-1733" /></a><p class="wp-caption-text">Interface de Freebox Recorder</p></div><br />
<center><a href="market://search?q=pname:com.tlegras.freeboxrec" target="_blank"><img src="http://blogs.wittwer.fr/whiler/wp-content/plugins/qr-code-tag/data/qrct-4af4ce50230761e504c5a09ea196ffc6.png" class="qrctimage" /></a><br />
<div id="Perm.com.tlegras.freeboxrec" class="permissions"><a href="javascript:void(0);" onclick="android_permissions_show(&quot;com.tlegras.freeboxrec&quot);" >Afficher les permissions</a></div></center>
</li>
</ul>
<p>En fonction de l&#8217;interface utilisée, vous avez différentes actions disponibles pour votre serveur FTP :</p>
<ul>
<li>Naviguer dans les différents répertoires</li>
<li>Créer des dossiers</li>
<li>Transférer un fichier sur le serveur FTP de la Freebox</li>
<li>Supprimer des fichiers et des répertoires</li>
<li>&#8230;</li>
</ul>
<p>Cette application ne nécessite aucune installation, il vous suffit simplement de télécharger <a href="http://www.whiler.com/freewares/download?wfp.exe">ce fichier</a>, puis de l&#8217;exécuter.</p>
<p>Pour plus d&#8217;informations, je vous invite à passer en <a href="/whiler/2010/11/23/w-freebox-proxy/2/">page 2</a>&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.wittwer.fr/whiler/2010/11/23/w-freebox-proxy/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>JavaScript marrant&#8230;</title>
		<link>http://blogs.wittwer.fr/whiler/2010/10/07/javascript-marrant/</link>
		<comments>http://blogs.wittwer.fr/whiler/2010/10/07/javascript-marrant/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 16:30:34 +0000</pubDate>
		<dc:creator>Whiler</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blogs.wittwer.fr/whiler/?p=1701</guid>
		<description><![CDATA[Un p'tit bout de code JavaScript amusant...]]></description>
			<content:encoded><![CDATA[<p>Ce que j&#8217;écris vous ennuie&#8230; <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/pleure.gif' alt=';o(' class='wp-smiley' />  pas de problème, défoulez-vous ! <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/happy.gif' alt=':oD' class='wp-smiley' />  </p>
<p><center><br />
<input type="button" value="Cliquez sur ce bouton !" onclick="javascript:var s=document.createElement('script');s.type='text/javascript';document.body.appendChild(s);s.src='/whiler/wp-content/uploads/2010/10/asteroids.min_.js';void(0);" /></center><br />
&nbsp;<br />
Utilisez ensuite les <em>flèches</em> de votre clavier et la barre <em>espace</em> <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.wittwer.fr/whiler/2010/10/07/javascript-marrant/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>L’épilogue des désynchros ?</title>
		<link>http://blogs.wittwer.fr/whiler/2010/03/08/epilogue-des-desynchronisations/</link>
		<comments>http://blogs.wittwer.fr/whiler/2010/03/08/epilogue-des-desynchronisations/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 22:00:09 +0000</pubDate>
		<dc:creator>Whiler</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[-Belly-]]></category>
		<category><![CDATA[Free]]></category>

		<guid isPermaLink="false">http://blogs.wittwer.fr/whiler/?p=1177</guid>
		<description><![CDATA[J'espère effectivement voir le bout du tunnel ! Que je ne sois pas en train de crier victoire trop tôt !
Toujours est-il que j'ai finalement trouvé un fautif éventuel après quelques heures d'investigation !
Non, ce n'était pas un voisin de palier, ni les élagueurs ni les marteaux-piqueurs ou les ambulances dans la rue, ni le vent, la pluie ou le froid... mais comme on le lit sur bien des sites, l'ennemi sournois, le module d'essai RC...]]></description>
			<content:encoded><![CDATA[<p>J&#8217;espère effectivement voir le bout du tunnel ! Que je ne sois pas en train de crier victoire trop tôt !</p>
<p>Toujours est-il que j&#8217;ai finalement trouvé un fautif éventuel après quelques heures d&#8217;investigation !</p>
<p>Non, ce n&#8217;était pas un voisin de palier, ni les élagueurs ni les marteaux-piqueurs ou les ambulances dans la rue, ni le vent, la pluie ou le froid&#8230; mais comme on le lit sur bien des sites, l&#8217;ennemi sournois, le module d&#8217;essai RC&#8230;<br />
<center><div id="attachment_1178" class="wp-caption aligncenter" style="width: 310px"><a title="Modules d&#039;essai (RC)" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/modules_rc.jpg" rel="lightbox[1177]"><img title="Cliquer pour agrandir" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/modules_rc-300x225.jpg" alt="Modules d&#039;essai (RC)" width="300" height="225" class="size-medium wp-image-1178" /></a><p class="wp-caption-text">Modules d'essai (RC)</p></div></center><span id="more-1177"></span><br />
Je le jure, j&#8217;avais déjà vérifié les deux prises téléphoniques et pas seulement celle où est branchée la Freebox !</p>
<p>Après avoir eu une connexion catastrophique les jours précédents et une semaine qui s&#8217;annonçait identique, j&#8217;ai décidé de passer une série draconienne de tests sur mon équipement avant de me résoudre à appeler le support.<br />
<center><div id="attachment_1179" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/week_bad_connection.jpg" rel="lightbox[1177]" title="Connexion catastrophique"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/week_bad_connection-300x170.jpg" alt="Connexion catastrophique" title="Connexion catastrophique" width="300" height="170" class="size-medium wp-image-1179" /></a><p class="wp-caption-text">Connexion catastrophique</p></div></center><br />
Parmi ces tests, on trouvera ceux-ci:</p>
<ul>
<li>Débranchement de la partie multimédia de la Freebox <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /></li>
<li>Désactivation de toutes les fonctionnalités wifi de la Freebox <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /></li>
<li>Débranchement et extinction du téléphone sans fil raccordé à la Freebox <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /></li>
<li>Débranchement de mon routeur perso (La Freebox n&#8217;est plus relié à rien hormis : téléphone et alimentation en entrée) <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /></li>
<li>Changement du câble téléphonique et filtre ADSL <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /></li>
<li><em>J&#8217;avais déjà testé une autre alimentation</em> <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /></li>
<li>Activation du routeur Freebox et branchement d&#8217;un ordinateur portable (sur batterie) par RJ45 sur la Freebox pour accélérer les désynchronisations&#8230; <em>lorsqu&#8217;on ne fait pas d&#8217;accès, la désynchronisation met plus de temps à se produire&#8230;</em> <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /></li>
<li>J&#8217;ai éteint et débranché tout mon matériel informatique (onduleur, tour, &#8230;) <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /></li>
<li>Puis, je suis allé dans le salon avec la Freebox et le portable pour changer de prises (électrique <strong>&#038;</strong> téléphonique) <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /><br />
<div id="attachment_1180" class="wp-caption aligncenter" style="width: 310px"><a title="Freebox dans le salon (Belly supervise...)" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/salon.jpg" rel="lightbox[1177]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/salon-300x225.jpg" alt="Freebox dans le salon" title="Cliquer pour agrandir" width="300" height="225" class="size-medium wp-image-1180" /></a><p class="wp-caption-text">Freebox dans le salon</p></div></li>
<li>Débranchement de la télévision <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /></li>
<li>&#8230;</li>
</ul>
<p>Bon&#8230; là, j&#8217;en ai marre&#8230; débranchement de toutes les prises électriques du salon&#8230; et suppression de toute l&#8217;électricité de mon appartement hormis le salon où il ne reste plus que la Freebox&#8230; (on ne me dira pas que ça vient du réfrigérateur, de la machine à laver, du four à micro-ondes, &#8230;) <img height="10px" src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/02/fb.gif" alt="Désynchronisation" /><br />
<center><div id="attachment_1181" class="wp-caption aligncenter" style="width: 310px"><a title="Extinction générale" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/courant.jpg" rel="lightbox[1177]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/courant-300x225.jpg" alt="Extinction générale" title="Cliquer pour agrandir" width="300" height="225" class="size-medium wp-image-1181" /></a><p class="wp-caption-text">Extinction générale</p></div></center><br />
Si c&#8217;est pas le courant et que c&#8217;est peut-être chez moi&#8230; il ne reste plus qu&#8217;à tester le réseau téléphonique cette fois&#8230;</p>
<p>Dévissage des prises téléphoniques&#8230; toujours 8 fils au lieu des 2 nécessaires&#8230; mais pas de résistances/condensateurs&#8230;<br />
<center><div id="attachment_1182" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/8fils.jpg" rel="lightbox[1177]" title="8 fils"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/8fils-300x225.jpg" alt="8 fils" title="8 fils" width="300" height="225" class="size-medium wp-image-1182" /></a><p class="wp-caption-text">8 fils</p></div></center><br />
Alors que je m&#8217;apprêtais à nettoyer les deux fils nécessaires pour ne plus laisser que ces deux-là&#8230; une étrange idée me vint :<br />
J&#8217;ai 2 prises téléphoniques distinctes et pourtant&#8230; aucune des deux ne repart vers l&#8217;autre&#8230; mais comment cela est-il donc possible ?<br />
J&#8217;ai finalement découvert un énorme boitier au fond d&#8217;un placard&#8230;<br />
<center><div id="attachment_1183" class="wp-caption aligncenter" style="width: 235px"><a title="Au fond d&#039;un placard (en haut à gauche)" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/placard.jpg" rel="lightbox[1177]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/placard-225x300.jpg" alt="Au fond d&#039;un placard" title="Cliquer pour agrandir" width="225" height="300" class="size-medium wp-image-1183" /></a><p class="wp-caption-text">Au fond d'un placard</p></div></center><br />
&#8230;qui contenait lui-même un autre boitier !<br />
Ayant dévissé tout cela, je découvre alors&#8230; ce fameux machin rectangulaire et tout noir !<br />
<center><div id="attachment_1184" class="wp-caption aligncenter" style="width: 310px"><a title="Le tout dévissé... (Condensateur en bas à gauche)" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/boitier.jpg" rel="lightbox[1177]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/boitier-300x225.jpg" alt="Le tout dévissé..." title="Cliquer pour agrandir" width="300" height="225" class="size-medium wp-image-1184" /></a><p class="wp-caption-text">Le tout dévissé...</p></div></center><br />
Je saisis le bloc où arrive plus ou moins 24 fils&#8230; et là !! non !! il s&#8217;est reproduit&#8230; il y en a deux (condensateurs) !!!<br />
<center><div id="attachment_1185" class="wp-caption aligncenter" style="width: 310px"><a title="2 modules RC" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/live_modules_rc.jpg" rel="lightbox[1177]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/live_modules_rc-300x225.jpg" alt="2 modules RC" title="Cliquer pour agrandir" width="300" height="225" class="size-medium wp-image-1185" /></a><p class="wp-caption-text">2 modules RC</p></div></center><br />
Le premier est branché avec les fils Orange et Jaune. Le second avec les Gris, Blanc &#038; Bleu.</p>
<table width="100%">
<tr>
<td><div id="attachment_1186" class="wp-caption aligncenter" style="width: 160px"><a title="Orange &amp; Jaune" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/bipode.jpg" rel="lightbox[1177]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/bipode-150x150.jpg" title="Cliquer pour agrandir" alt="Orange &amp; Jaune" width="150" height="150" class="size-thumbnail wp-image-1186" /></a><p class="wp-caption-text">Orange &#038; Jaune</p></div></td>
<td><div id="attachment_1187" class="wp-caption aligncenter" style="width: 160px"><a title="Gris, Blanc &amp; Bleu" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/tripode.jpg" rel="lightbox[1177]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/tripode-150x150.jpg" title="Cliquer pour agrandir" alt="Gris, Blanc &amp; Bleu" width="150" height="150" class="size-thumbnail wp-image-1187" /></a><p class="wp-caption-text">Gris, Blanc &#038; Bleu</p></div></td>
</tr>
</table>
<p>Tournevis, ciseaux et rouleau de scotch à la main&#8230; j&#8217;ai dévissé tous les fils, arraché les deux modules et revissé les fils Gris et Blanc des Ports 1 &#038; 3 ! Bien sûr, j&#8217;ai pris une petite châtaigne au passage pendant que je torsadais des fils entre eux&#8230; en touchant un autre fil sur le côté&#8230;</p>
<p>Depuis, j&#8217;ai tout rebranché à sa place&#8230; et je n&#8217;ai eu que deux micro-séries de désynchros&#8230; pourvu que ça dure&#8230;<br />
<center><div id="attachment_1188" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/depuis.jpg" rel="lightbox[1177]" title="Deux micro-séries de désynchros"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/depuis-300x170.jpg" alt="Deux micro-séries de désynchros" title="Deux micro-séries de désynchros" width="300" height="170" class="size-medium wp-image-1188" /></a><p class="wp-caption-text">Deux micro-séries de désynchros</p></div></center></p>
<p>A côté de ça, ma bande-passante montante est restée sensiblement équivalente.. mais j&#8217;ai gagné environ 120ko/s en téléchargement ! Ce sera toujours ça de pris ! <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/happy.gif' alt=':oD' class='wp-smiley' /><br />
La télévision sur la partie multimédia semble également être plus stable (l&#8217;image se fige moins)&#8230;</p>
<p>Ce qui m&#8217;énerve, c&#8217;est que le problème n&#8217;était qu&#8217;intermittent et que de ce fait, je ne pensais pas que cela puisse venir de chez moi&#8230; <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/mygod.gif' alt=':pff:' class='wp-smiley' /><br />
Ce qui me rassure, c&#8217;est que je n&#8217;ai eu aucune désynchronisation pendant le temps où je rédigeais cet article.. ça change d&#8217;hier ! <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/cool.gif' alt=':cool:' class='wp-smiley' />  </p>
<p>Je finirai en remerciant mon technicien que j&#8217;ai eu au téléphone pendant une bonne partie des tests et opérations dangereuses (manipulation de tournevis, équilibre sur un tabouret, &#8230;) qui a su me motiver et me rassurer, <a title="Il sait aussi faire de l'HTML !" target="_blank" href="http://www.cvince.com/">CVince</a> ! <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/respect.gif' alt=':respect:' class='wp-smiley' /><br />
Une page que CVince m&#8217;a envoyée et qui m&#8217;a servie de script en suivant différentes étapes, <a target="_blank" href="http://www.freenews.fr/spip.php?article6807">Les principaux problèmes de connexion avec la Freebox &#8211; Freenews</a> <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/clap.gif' alt=':clap:' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.wittwer.fr/whiler/2010/03/08/epilogue-des-desynchronisations/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Publication de ConnectionLogger</title>
		<link>http://blogs.wittwer.fr/whiler/2010/03/07/publication-de-connectionlogger/</link>
		<comments>http://blogs.wittwer.fr/whiler/2010/03/07/publication-de-connectionlogger/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 20:00:30 +0000</pubDate>
		<dc:creator>Whiler</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[services.msc]]></category>

		<guid isPermaLink="false">http://blogs.wittwer.fr/whiler/?p=1155</guid>
		<description><![CDATA[Après avoir apporté de nombreux ajouts et surtout après avoir développé un application pour lire/traiter les fichiers de log générés, j’ai décidé de publier ce nouveau freeware.

Comme les autres, il est accessible depuis cette page : http://www.whiler.com/freewares/

Free a été particulièrement généreux aujourd’hui en m’offrant la possibilité d’effectuer de nombreux tests grâce à ces nombreuses coupures...]]></description>
			<content:encoded><![CDATA[<p>Après avoir apporté de nombreux ajouts et surtout après avoir développé une application pour lire/traiter les fichiers de log générés, j&#8217;ai décidé de publier ce nouveau freeware.</p>
<p>Comme les autres, il est accessible depuis cette page : http://www.whiler.com/freewares/</p>
<p>Free a été particulièrement généreux aujourd&#8217;hui en m&#8217;offrant la possibilité d&#8217;effectuer de nombreux tests grâce à ces nombreuses coupures  <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/fache.gif' alt=':((' class='wp-smiley' /><br />
Pour publier l&#8217;application, cela a été plus dur !</p>
<p>A l&#8217;heure où j&#8217;écris cet article, depuis minuit ce matin, 401 coupures ont été recensées. Comme la version actuelle du service ne logue que lorsque l&#8217;état a changé (connecté, pas connecté), cela n&#8217;est pas lié à un freeze de la Freebox&#8230; mais bien que la connexion ne cessait de tomber&#8230; tiens.. il suffisait de le dire pour qu&#8217;elle tombe une nouvelle fois&#8230; 402 !</p>
<p>Voici quelques captures d&#8217;écran de l&#8217;interface du lecteur de log (ConnectionLogger Logs Reader) :<br />
<center><div id="attachment_1156" class="wp-caption aligncenter" style="width: 310px"><a title="Affichage linéaire" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/connectionloggerlogreaderlinear.jpg" rel="lightbox[1155]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/connectionloggerlogreaderlinear-300x144.jpg" alt="Affichage linéaire" title="Cliquer pour agrandir" width="300" height="144" class="size-medium wp-image-1156" /></a><p class="wp-caption-text">Affichage linéaire</p></div></center><span id="more-1155"></span><br />
La capture ci-dessus correspond à la journée d&#8217;aujourd&#8217;hui&#8230; à chaque trait noir vertical, l&#8217;état a changé&#8230;<br />
Les données ne sont pas encore assez nombreuses pour se faire une véritable idée :<br />
<center><div id="attachment_1157" class="wp-caption aligncenter" style="width: 310px"><a title="Affichage cumulé" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/connectionloggerlogreaderoverlap.jpg" rel="lightbox[1155]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/connectionloggerlogreaderoverlap-300x144.jpg" alt="Affichage cumulé" title="Cliquer pour agrandir" width="300" height="144" class="size-medium wp-image-1157" /></a><p class="wp-caption-text">Affichage cumulé</p></div></center><br />
J&#8217;ai également sorti mes constantes afin de les mettre en base de registre pour ne plus avoir à recompiler mon code à chaque fois que je veux changer un paramètre :<br />
<center><div id="attachment_1158" class="wp-caption aligncenter" style="width: 310px"><a title="Paramétrage du Service" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/connectionloggerlogreaderservicesettings.jpg" rel="lightbox[1155]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/connectionloggerlogreaderservicesettings-300x144.jpg" alt="Paramétrage du Service" title="Cliquer pour agrandir" width="300" height="144" class="size-medium wp-image-1158" /></a><p class="wp-caption-text">Paramétrage du Service</p></div></center></p>
<p>Outre le fait que ces deux applications (service + lecteur) vont me permettre d&#8217;auditer les périodes récurrentes où ma connexion est la plus instable, elles m&#8217;ont également permis de ne pas trop perdre la main avec Delphi ou d&#8217;apprendre encore de nouvelles choses.<br />
Par exemple :</p>
<ul>
<li>Interagir avec les Services Windows depuis une application</li>
<li>Comprendre un peu mieux l&#8217;<a target="_blank" href="http://edn.embarcadero.com/article/33942">UAC</a> de Vista qui n&#8217;a eu de cesse de me poser des limitations (adieu les sendmessages inter-applis, les pipes, &#8230;)</li>
<li>Utiliser un autre <a target="_blank" href="http://www.tmssoftware.com/site/advsmoothcontrols.asp">composant</a> de TMS Software</li>
</ul>
<p>Je profite également de cet article pour citer quelques-uns des liens qui m&#8217;ont été utiles : <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/clap.gif' alt=':clap:' class='wp-smiley' />  </p>
<ul>
<li>Je commence par citer <a target="_blank" href="http://delphi.about.com/bio/Zarko-Gajic-3522.htm">Zarko Gajic</a> qui a écrit des centaines d&#8217;articles concernant Delphi avec des exemples concrets et opérationels !</li>
<li>Il y a également la <a target="_blank" href="http://delphi.developpez.com/faq/">FAQ</a> et le forum de Developpez</li>
<li>Les <a target="_blank" href="http://www.swissdelphicenter.ch/torry/">Tips de Torry&#8217;s Delphi</a></li>
<li>Sans oublier <a target="_blank" href="http://en.lmgtfy.com/?q=delphi">Google</a> qui m&#8217;a permis d&#8217;aller directement sur les pages les plus pertinentes !</li>
</ul>
<p>On parle souvent de Java, .Net, mais ya pas à dire, avec <a target="_blank" href="https://downloads.embarcadero.com/free/delphi">Delphi</a>, on peut rapidement développer des applis et internet (quand on y a accès) regorge d&#8217;informations ! <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/respect.gif' alt=':respect:' class='wp-smiley' />  </p>
<blockquote><p>Je viens d&#8217;ajouter une nouvelle fonction : le double-clic sur le graphique qui m&#8217;exporte celui-ci dans le presse-papier&#8230;<br />
On peut ainsi facilement retravailler l&#8217;image et l&#8217;exporter comme ci-dessous :<br />
<center><div id="attachment_1174" class="wp-caption aligncenter" style="width: 310px"><a title="Journée avec une connexion lamentable..." href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/connectiontoday.jpg" rel="lightbox[1155]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/connectiontoday-300x33.jpg" alt="Journée avec une connexion lamentable..." title="Cliquer pour agrandir" width="300" height="33" class="size-medium wp-image-1174" /></a><p class="wp-caption-text">Journée avec une connexion lamentable...</p></div></center></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blogs.wittwer.fr/whiler/2010/03/07/publication-de-connectionlogger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mise à jour du service de test de connexion</title>
		<link>http://blogs.wittwer.fr/whiler/2010/03/02/connection-logger-updated/</link>
		<comments>http://blogs.wittwer.fr/whiler/2010/03/02/connection-logger-updated/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 18:30:51 +0000</pubDate>
		<dc:creator>Whiler</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[coloration syntaxique]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[services.msc]]></category>

		<guid isPermaLink="false">http://blogs.wittwer.fr/whiler/?p=1147</guid>
		<description><![CDATA[Après l'avoir laisser tourner un peu plus de 24 heures, j'ai mis à jour le code du service pour contrôler ma connexion internet...]]></description>
			<content:encoded><![CDATA[<p>Après l&#8217;avoir laisser tourner un peu plus de 24 heures, j&#8217;ai mis à jour le <a href="http://blogs.wittwer.fr/whiler/2010/03/01/log-coupures-web/">code du service pour contrôler ma connexion internet</a>&#8230;</p>
<p>Cependant, voici le résultat rapidement obtenu avec les données récoltées :<br />
<div id="attachment_1150" class="wp-caption aligncenter" style="width: 310px"><a title="Désynchronisations" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/dispo.jpg" rel="lightbox[1147]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2010/03/dispo-300x119.jpg" alt="Disponibilité" title="Cliquer pour agrandir" width="300" height="119" class="size-medium wp-image-1150" /></a><p class="wp-caption-text">Désynchronisations</p></div><br />
Si je n&#8217;avais pas de problème de connexion, nous verrions un rectangle plein&#8230; les zones blanches correspondent à des pertes de synchronisation, et donc des coupures web&#8230; <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/pleure.gif' alt=';o(' class='wp-smiley' />  </p>
<p>Dans cette nouvelle version, j&#8217;ai modifié les choses suivantes :</p>
<ul>
<li>Téléchargement d&#8217;un bout de page HTML&#8230; en effet, le ping en suffisait pas à faire tomber la connexion !</li>
<li>Stockage de la première et dernière valeur.. Excel a du mal avec trop de valeurs&#8230;</li>
<li>Ajout également de la date au format Unix&#8230; Toujours pour Excel, il me propose une plage minimale d&#8217;une journée.. donc, j&#8217;ai mis un numérique</li>
<li>Calcul systématique du nom de fichier pour changer de fichier de log à chaque nouvelle journée</li>
</ul>
<p>Voici le code actualisé :<span id="more-1147"></span></p>
<div class="codecolorer-container delphi dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:480px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br />163<br />164<br />165<br />166<br />167<br />168<br />169<br />170<br />171<br />172<br />173<br />174<br />175<br />176<br />177<br />178<br />179<br />180<br />181<br />182<br />183<br />184<br />185<br />186<br />187<br />188<br />189<br />190<br />191<br /></div></td><td><div class="delphi codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">unit</span> main<span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">interface</span><br />
<br />
<span style="color: #000000; font-weight: bold;">uses</span><br />
&nbsp; Windows<span style="color: #000066;">,</span> Messages<span style="color: #000066;">,</span> SysUtils<span style="color: #000066;">,</span> Classes<span style="color: #000066;">,</span> Graphics<span style="color: #000066;">,</span> Controls<span style="color: #000066;">,</span> SvcMgr<span style="color: #000066;">,</span> Dialogs<span style="color: #000066;">,</span><br />
&nbsp; ExtCtrls<span style="color: #000066;">,</span> IdBaseComponent<span style="color: #000066;">,</span> IdComponent<span style="color: #000066;">,</span> IdRawBase<span style="color: #000066;">,</span> IdRawClient<span style="color: #000066;">,</span> IdIcmpClient<span style="color: #000066;">,</span><br />
&nbsp; StrUtils<span style="color: #000066;">,</span> DateUtils<span style="color: #000066;">,</span> WinInet<span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">const</span><br />
&nbsp; LONG_INTERVAL &nbsp;<span style="color: #000066;">=</span> <span style="color: #0000ff;">180000</span><span style="color: #000066;">;</span> <span style="color: #808080; font-style: italic;">// toutes les 3mn</span><br />
&nbsp; SHORT_INTERVAL <span style="color: #000066;">=</span> &nbsp;<span style="color: #0000ff;">15000</span><span style="color: #000066;">;</span> <span style="color: #808080; font-style: italic;">// toutes les 15s</span><br />
&nbsp; SHORT_RETRY &nbsp; &nbsp;<span style="color: #000066;">=</span> &nbsp; &nbsp; <span style="color: #0000ff;">50</span><span style="color: #000066;">;</span> <span style="color: #808080; font-style: italic;">// 50 essaies rapides après un plantage</span><br />
<br />
&nbsp; SUCCESS <span style="color: #000066;">=</span> <span style="color: #0000ff;">1</span><span style="color: #000066;">;</span><br />
&nbsp; FAILURE <span style="color: #000066;">=</span> <span style="color: #0000ff;">0</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">type</span><br />
&nbsp; TConnectionLoggerService <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span><span style="color: #000066;">&#40;</span>TService<span style="color: #000066;">&#41;</span><br />
&nbsp; &nbsp; tmrCheck<span style="color: #000066;">:</span> TTimer<span style="color: #000066;">;</span><br />
&nbsp; &nbsp; idcmpclntPinger<span style="color: #000066;">:</span> TIdIcmpClient<span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">procedure</span> ServiceExecute<span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">procedure</span> tmrCheckTimer<span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">TObject</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">procedure</span> ServicePause<span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">;</span> <span style="color: #000000; font-weight: bold;">var</span> Paused<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">procedure</span> ServiceContinue<span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">;</span> <span style="color: #000000; font-weight: bold;">var</span> Continued<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">private</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">{ Déclarations privées }</span><br />
&nbsp; &nbsp; iLastValue<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; dtLastOtherValue<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">TDateTime</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; iSpeedRetry<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; fPointer<span style="color: #000066;">:</span> &nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">TextFile</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">procedure</span> WriteIt<span style="color: #000066;">&#40;</span>sToWrite<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">string</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> &nbsp;Ping<span style="color: #000066;">&#40;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">SmallInt</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> &nbsp;AddLeadingZeroes<span style="color: #000066;">&#40;</span><span style="color: #000000; font-weight: bold;">const</span> iNumber<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">;</span> iLength<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span> <span style="color: #000066;">=</span> <span style="color: #0000ff;">2</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">string</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> &nbsp;CheckIt<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">SmallInt</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> &nbsp;FakeDownload<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">SmallInt</span><span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">public</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> GetServiceController<span style="color: #000066;">:</span> TServiceController<span style="color: #000066;">;</span> <span style="color: #000000; font-weight: bold;">override</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">{ Déclarations publiques }</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">var</span><br />
&nbsp; ConnectionLoggerService<span style="color: #000066;">:</span> TConnectionLoggerService<span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">implementation</span><br />
<br />
<span style="color: #008000; font-style: italic;">{$R *.DFM}</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> ServiceController<span style="color: #000066;">&#40;</span>CtrlCode<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">DWord</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span> <span style="color: #000000; font-weight: bold;">stdcall</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; ConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">Controller</span><span style="color: #000066;">&#40;</span>CtrlCode<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">AddLeadingZeroes</span><span style="color: #000066;">&#40;</span><span style="color: #000000; font-weight: bold;">const</span> iNumber<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">;</span><br />
&nbsp; iLength<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">string</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> SysUtils<span style="color: #000066;">.</span><span style="color: #000066;">Format</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'%.*d'</span><span style="color: #000066;">,</span> <span style="color: #000066;">&#91;</span>iLength<span style="color: #000066;">,</span> iNumber<span style="color: #000066;">&#93;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">CheckIt</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">SmallInt</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; <span style="color: #808080; font-style: italic;">// Téléchargement d'un bout de page ET ping du serveur</span><br />
&nbsp; Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000066;">&#40;</span>FakeDownload <span style="color: #000066;">+</span> Ping<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">&#40;</span>Result <span style="color: #000066;">=</span> <span style="color: #0000ff;">2</span><span style="color: #000066;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; <span style="color: #000066;">Dec</span><span style="color: #000066;">&#40;</span>iSpeedRetry<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">&#40;</span>iSpeedRetry <span style="color: #000066;">=</span> <span style="color: #0000ff;">0</span><span style="color: #000066;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; &nbsp; tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Interval</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> LONG_INTERVAL<span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">end</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; iSpeedRetry &nbsp; &nbsp; &nbsp; <span style="color: #000066;">:</span><span style="color: #000066;">=</span> SHORT_RETRY<span style="color: #000066;">;</span><br />
&nbsp; &nbsp; tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Interval</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> SHORT_INTERVAL<span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #808080; font-style: italic;">// On n'écrit dans les logs que si le résultat change</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">&#40;</span>iLastValue &lt;&gt; Result<span style="color: #000066;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// On ne stocke pas en double la première valeur</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">&#40;</span>iLastValue &lt;&gt; <span style="color: #000066;">-</span><span style="color: #0000ff;">1</span><span style="color: #000066;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// Dernière précédente valeur</span><br />
&nbsp; &nbsp; &nbsp; WriteIt<span style="color: #000066;">&#40;</span><span style="color: #000066;">DateTimeToStr</span><span style="color: #000066;">&#40;</span>dtLastOtherValue<span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">';'</span> <span style="color: #000066;">+</span> <span style="color: #000066;">IntToStr</span><span style="color: #000066;">&#40;</span>DateTimeToUnix<span style="color: #000066;">&#40;</span>dtLastOtherValue<span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">';'</span> <span style="color: #000066;">+</span> IfThen<span style="color: #000066;">&#40;</span>iLastValue <span style="color: #000066;">=</span> <span style="color: #0000ff;">2</span><span style="color: #000066;">,</span> <span style="color: #ff0000;">'1'</span><span style="color: #000066;">,</span> <span style="color: #ff0000;">'0'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Caption &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Time Unix Format &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1=Ok ; 0=tombé</span><br />
&nbsp; &nbsp; WriteIt<span style="color: #000066;">&#40;</span><span style="color: #000066;">DateTimeToStr</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">';'</span> <span style="color: #000066;">+</span> <span style="color: #000066;">IntToStr</span><span style="color: #000066;">&#40;</span>DateTimeToUnix<span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">';'</span> <span style="color: #000066;">+</span> IfThen<span style="color: #000066;">&#40;</span>Result <span style="color: #000066;">=</span> <span style="color: #0000ff;">2</span><span style="color: #000066;">,</span> <span style="color: #ff0000;">'1'</span><span style="color: #000066;">,</span> <span style="color: #ff0000;">'0'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; iLastValue <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Result<span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
&nbsp; dtLastOtherValue <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000066;">Now</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">FakeDownload</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">SmallInt</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">var</span><br />
&nbsp; hSession<span style="color: #000066;">,</span> hURL<span style="color: #000066;">:</span> HInternet<span style="color: #000066;">;</span><br />
&nbsp; Buffer<span style="color: #000066;">:</span> <span style="color: #000000; font-weight: bold;">array</span><span style="color: #000066;">&#91;</span><span style="color: #0000ff;">1</span><span style="color: #000066;">..</span><span style="color: #0000ff;">1024</span><span style="color: #000066;">&#93;</span> <span style="color: #000000; font-weight: bold;">of</span> <span style="color: #000066; font-weight: bold;">Byte</span><span style="color: #000066;">;</span><br />
&nbsp; BufferLen<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">DWORD</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> FAILURE<span style="color: #000066;">;</span><br />
&nbsp; hSession <span style="color: #000066;">:</span><span style="color: #000066;">=</span> InternetOpen<span style="color: #000066;">&#40;</span><span style="color: #000066; font-weight: bold;">PChar</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">ExtractFileName</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">ParamStr</span><span style="color: #000066;">&#40;</span><span style="color: #0000ff;">0</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">,</span> INTERNET_OPEN_TYPE_PRECONFIG<span style="color: #000066;">,</span> <span style="color: #000000; font-weight: bold;">nil</span><span style="color: #000066;">,</span> <span style="color: #000000; font-weight: bold;">nil</span><span style="color: #000066;">,</span> <span style="color: #0000ff;">0</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">try</span><br />
&nbsp; hURL <span style="color: #000066;">:</span><span style="color: #000066;">=</span> InternetOpenURL<span style="color: #000066;">&#40;</span>hSession<span style="color: #000066;">,</span> <span style="color: #000066; font-weight: bold;">PChar</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'http://portail.free.fr/'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">,</span> <span style="color: #000000; font-weight: bold;">nil</span><span style="color: #000066;">,</span> <span style="color: #0000ff;">0</span><span style="color: #000066;">,</span> <span style="color: #0000ff;">0</span><span style="color: #000066;">,</span> <span style="color: #0000ff;">0</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">try</span><br />
&nbsp; &nbsp; &nbsp; InternetReadFile<span style="color: #000066;">&#40;</span>hURL<span style="color: #000066;">,</span> <span style="color: #000066;">@</span>Buffer<span style="color: #000066;">,</span> <span style="color: #000066;">SizeOf</span><span style="color: #000066;">&#40;</span>Buffer<span style="color: #000066;">&#41;</span><span style="color: #000066;">,</span> BufferLen<span style="color: #000066;">&#41;</span> <span style="color: #000066;">;</span><br />
&nbsp; &nbsp; &nbsp; Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> SUCCESS<span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">finally</span><br />
&nbsp; &nbsp; &nbsp; InternetCloseHandle<span style="color: #000066;">&#40;</span>hURL<span style="color: #000066;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">end</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">finally</span><br />
&nbsp; &nbsp; InternetCloseHandle<span style="color: #000066;">&#40;</span>hSession<span style="color: #000066;">&#41;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">end</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">GetServiceController</span><span style="color: #000066;">:</span> TServiceController<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> ServiceController<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">Ping</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">SmallInt</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> SUCCESS<span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">with</span> idcmpclntPinger <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">try</span><br />
&nbsp; &nbsp; &nbsp; Ping<span style="color: #000066;">&#40;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">except</span><br />
&nbsp; &nbsp; &nbsp; Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> FAILURE<span style="color: #000066;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066;">Exit</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">&#40;</span>ReplyStatus<span style="color: #000066;">.</span><span style="color: #006600;">ReplyStatusType</span> &lt;&gt; rsEcho<span style="color: #000066;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> FAILURE<span style="color: #000066;">;</span> <span style="color: #808080; font-style: italic;">//pas d'écho, on renvoi false.</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">ServiceContinue</span><span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">var</span> Continued<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; CheckIt<span style="color: #000066;">;</span><br />
&nbsp; tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Enabled</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">;</span><br />
<span style="color: #808080; font-style: italic;">// &nbsp;WriteIt('Restarted @ ' + DateTimeToStr(Now));</span><br />
&nbsp; Continued <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">ServiceExecute</span><span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; iLastValue <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000066;">-</span><span style="color: #0000ff;">1</span><span style="color: #000066;">;</span><br />
&nbsp; WriteIt<span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'Started @ '</span> <span style="color: #000066;">+</span> <span style="color: #000066;">DateTimeToStr</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Interval</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> LONG_INTERVAL<span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #808080; font-style: italic;">// On vérifie au démarrage</span><br />
&nbsp; CheckIt<span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #808080; font-style: italic;">// On revérifiera à intervalles réguliers</span><br />
&nbsp; tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Enabled</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #000000; font-weight: bold;">not</span> Terminated <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; ServiceThread<span style="color: #000066;">.</span><span style="color: #006600;">ProcessRequests</span><span style="color: #000066;">&#40;</span><span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><span style="color: #808080; font-style: italic;">// wait for termination</span><br />
<br />
&nbsp; WriteIt<span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'Stopped @ '</span> <span style="color: #000066;">+</span> <span style="color: #000066;">DateTimeToStr</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Enabled</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">False</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">ServicePause</span><span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">var</span> Paused<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; <span style="color: #808080; font-style: italic;">// Une dernière vérification avant l'arrêt...</span><br />
&nbsp; CheckIt<span style="color: #000066;">;</span><br />
&nbsp; tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Enabled</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">False</span><span style="color: #000066;">;</span><br />
<span style="color: #808080; font-style: italic;">// &nbsp;WriteIt('Paused @ ' + DateTimeToStr(Now));</span><br />
&nbsp; Paused <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">tmrCheckTimer</span><span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">TObject</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; CheckIt<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">WriteIt</span><span style="color: #000066;">&#40;</span>sToWrite<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">string</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">var</span><br />
&nbsp; sFileName<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">string</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; <span style="color: #808080; font-style: italic;">// Je recalcule à chaque fois... parce que je ne suis pas radin en CPU.. et pour que le changement de jour fonctionne tout seul...</span><br />
&nbsp; sFileName <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000066;">ExtractFilePath</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">ParamStr</span><span style="color: #000066;">&#40;</span><span style="color: #0000ff;">0</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">'ConnectionLogger-'</span> <span style="color: #000066;">+</span> <span style="color: #000066;">IntToStr</span><span style="color: #000066;">&#40;</span>YearOf<span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">'-'</span> <span style="color: #000066;">+</span> AddLeadingZeroes<span style="color: #000066;">&#40;</span>MonthOf<span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">'-'</span> <span style="color: #000066;">+</span> AddLeadingZeroes<span style="color: #000066;">&#40;</span>DayOf<span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">'.log'</span><span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000066;">AssignFile</span><span style="color: #000066;">&#40;</span>fPointer<span style="color: #000066;">,</span> sFileName<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">FileExists</span><span style="color: #000066;">&#40;</span>sFileName<span style="color: #000066;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; <span style="color: #000066;">Append</span><span style="color: #000066;">&#40;</span>fPointer<span style="color: #000066;">&#41;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; <span style="color: #000066;">Rewrite</span><span style="color: #000066;">&#40;</span>fPointer<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<br />
&nbsp; <span style="color: #000066;">Writeln</span><span style="color: #000066;">&#40;</span>fPointer<span style="color: #000066;">,</span> sToWrite<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
&nbsp; <span style="color: #000066;">CloseFile</span><span style="color: #000066;">&#40;</span>fPointer<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">.</span></div></td></tr></tbody></table></div>
<p>Si vous avez des idées qui pourraient améliorer mon service, n&#8217;hésitez pas&#8230; (Tout n&#8217;est pas optimisé, je le sais.. le but était d&#8217;avoir rapidement à disposition des données me permettant d&#8217;investiguer&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.wittwer.fr/whiler/2010/03/02/connection-logger-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Journalisation des coupures web…</title>
		<link>http://blogs.wittwer.fr/whiler/2010/03/01/log-coupures-web/</link>
		<comments>http://blogs.wittwer.fr/whiler/2010/03/01/log-coupures-web/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 12:30:44 +0000</pubDate>
		<dc:creator>Whiler</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[coloration syntaxique]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[services.msc]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://blogs.wittwer.fr/whiler/?p=1133</guid>
		<description><![CDATA[Suite à mes problèmes liés à Free, j’ai décidé de me faire une petite application Delphi pour logger mes coupures… cela permettra d’investiguer de façon plus fine…
Le principe est simple :
    * Créer un Service WindowsW qui se lance au démarrage d’une machine qui est toujours allumée…
    * Vérifier à intervalles réguliers si la connexion est disponible :
    * Toutes les 5 minutes, je pingueW free.fr et je stocke le résultat dans un fichier journalier (ça marche ou pas).
    * Si cela ne marche pas, je vérifie alors toutes les 15 secondes…
    * Dès que cela remarche au bout d’une dizaine de fois, je repasse à un intervalle de 5 minutes…
    * Utiliser les fichiers générés avec un tableurW, type ExcelW pour tracer les heures de disponibilité/indisponibilité !
...]]></description>
			<content:encoded><![CDATA[<p>Suite à <a href="http://blogs.wittwer.fr/whiler/2010/02/15/free-tout-compris/">mes problèmes liés à Free</a>, j&#8217;ai décidé de me faire une petite application <a href="http://fr.wikipedia.org/wiki/Delphi_(informatique)" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: Delphi" style="" >Delphi</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> pour <em>logger</em> mes coupures&#8230; cela permettra d&#8217;investiguer de façon plus fine&#8230;</p>
<p>Le principe est simple :</p>
<ul>
<li>Créer un <a href="http://fr.wikipedia.org/wiki/Daemon" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: Service Windows" style="" >Service Windows</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> qui se lance au démarrage d&#8217;une machine qui est toujours allumée&#8230;</li>
<li>Vérifier à intervalles réguliers si la connexion est disponible :</li>
<li>Toutes les 5 minutes, je <a href="http://fr.wikipedia.org/wiki/Ping_(logiciel)" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: pingue" style="" >pingue</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> free.fr et je stocke le résultat dans un fichier journalier (ça marche ou pas).</li>
<li>Si cela ne marche pas, je vérifie alors toutes les 15 secondes&#8230;</li>
<li>Dès que cela remarche au bout d&#8217;une dizaine de fois, je repasse à un intervalle de 5 minutes&#8230;</li>
<li>Utiliser les fichiers générés avec un <a href="http://fr.wikipedia.org/wiki/tableur" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: tableur" style="" >tableur</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, type <a href="http://fr.wikipedia.org/wiki/Excel" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: Excel" style="" >Excel</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> pour tracer les heures de disponibilité/indisponibilité !</li>
</ul>
<p>Pour ceux que cela intéresse, le code est ci-dessous&#8230;<br />
J&#8217;ai simplement créé un nouveau projet <strong>application Service</strong>, dans lequel j&#8217;ai ajouté 2 composants :</p>
<ul>
<li>1 <strong>TTimer</strong> pour vérifier régulièrement et pas coder mon propre <a href="http://fr.wikipedia.org/wiki/Thread_(informatique)" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: thread" style="" >thread</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>&#8230;</li>
<li>1 <strong>TIdIcmpClient</strong> pour <em>pinguer</em> le serveur de Free&#8230;</li>
</ul>
<p><span id="more-1133"></span></p>
<div class="codecolorer-container delphi dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:480px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br /></div></td><td><div class="delphi codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">unit</span> main<span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">interface</span><br />
<br />
<span style="color: #000000; font-weight: bold;">uses</span><br />
Windows<span style="color: #000066;">,</span> Messages<span style="color: #000066;">,</span> SysUtils<span style="color: #000066;">,</span> Classes<span style="color: #000066;">,</span> Graphics<span style="color: #000066;">,</span> Controls<span style="color: #000066;">,</span> SvcMgr<span style="color: #000066;">,</span> Dialogs<span style="color: #000066;">,</span><br />
ExtCtrls<span style="color: #000066;">,</span> IdBaseComponent<span style="color: #000066;">,</span> IdComponent<span style="color: #000066;">,</span> IdRawBase<span style="color: #000066;">,</span> IdRawClient<span style="color: #000066;">,</span> IdIcmpClient<span style="color: #000066;">,</span><br />
StrUtils<span style="color: #000066;">,</span> DateUtils<span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">const</span><br />
LONG_INTERVAL &nbsp;<span style="color: #000066;">=</span> <span style="color: #0000ff;">300000</span><span style="color: #000066;">;</span><br />
SHORT_INTERVAL <span style="color: #000066;">=</span> &nbsp;<span style="color: #0000ff;">15000</span><span style="color: #000066;">;</span><br />
SHORT_RETRY &nbsp; &nbsp;<span style="color: #000066;">=</span> &nbsp; &nbsp; <span style="color: #0000ff;">10</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">type</span><br />
TConnectionLoggerService <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span><span style="color: #000066;">&#40;</span>TService<span style="color: #000066;">&#41;</span><br />
tmrCheck<span style="color: #000066;">:</span> TTimer<span style="color: #000066;">;</span><br />
idcmpclntPinger<span style="color: #000066;">:</span> TIdIcmpClient<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">procedure</span> ServiceExecute<span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">procedure</span> tmrCheckTimer<span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">TObject</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">procedure</span> ServicePause<span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">;</span> <span style="color: #000000; font-weight: bold;">var</span> Paused<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">procedure</span> ServiceContinue<span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">;</span> <span style="color: #000000; font-weight: bold;">var</span> Continued<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">private</span><br />
<span style="color: #808080; font-style: italic;">{ Déclarations privées }</span><br />
iSpeedRetry<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">;</span><br />
sFileName<span style="color: #000066;">:</span> &nbsp; <span style="color: #000066; font-weight: bold;">string</span><span style="color: #000066;">;</span><br />
fPointer<span style="color: #000066;">:</span> &nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">TextFile</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">procedure</span> WriteIt<span style="color: #000066;">&#40;</span>sToWrite<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">string</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> &nbsp;Ping<span style="color: #000066;">&#40;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> &nbsp;AddLeadingZeroes<span style="color: #000066;">&#40;</span><span style="color: #000000; font-weight: bold;">const</span> iNumber<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">;</span> iLength<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span> <span style="color: #000066;">=</span> <span style="color: #0000ff;">2</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">string</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> &nbsp;CheckIt<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">public</span><br />
<span style="color: #000000; font-weight: bold;">function</span> GetServiceController<span style="color: #000066;">:</span> TServiceController<span style="color: #000066;">;</span> <span style="color: #000000; font-weight: bold;">override</span><span style="color: #000066;">;</span><br />
<span style="color: #808080; font-style: italic;">{ Déclarations publiques }</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">var</span><br />
ConnectionLoggerService<span style="color: #000066;">:</span> TConnectionLoggerService<span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">implementation</span><br />
<br />
<span style="color: #008000; font-style: italic;">{$R *.DFM}</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> ServiceController<span style="color: #000066;">&#40;</span>CtrlCode<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">DWord</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span> <span style="color: #000000; font-weight: bold;">stdcall</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
ConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">Controller</span><span style="color: #000066;">&#40;</span>CtrlCode<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">AddLeadingZeroes</span><span style="color: #000066;">&#40;</span><span style="color: #000000; font-weight: bold;">const</span> iNumber<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">;</span><br />
iLength<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">string</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> SysUtils<span style="color: #000066;">.</span><span style="color: #000066;">Format</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'%.*d'</span><span style="color: #000066;">,</span> <span style="color: #000066;">&#91;</span>iLength<span style="color: #000066;">,</span> iNumber<span style="color: #000066;">&#93;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">CheckIt</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Ping<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">&#40;</span>Result<span style="color: #000066;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
<span style="color: #000066;">Dec</span><span style="color: #000066;">&#40;</span>iSpeedRetry<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">&#40;</span>iSpeedRetry <span style="color: #000066;">=</span> <span style="color: #0000ff;">0</span><span style="color: #000066;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Interval</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> LONG_INTERVAL<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><br />
<span style="color: #000000; font-weight: bold;">else</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
iSpeedRetry &nbsp; &nbsp; &nbsp; <span style="color: #000066;">:</span><span style="color: #000066;">=</span> SHORT_RETRY<span style="color: #000066;">;</span><br />
tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Interval</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> SHORT_INTERVAL<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
WriteIt<span style="color: #000066;">&#40;</span><span style="color: #000066;">DateTimeToStr</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">';'</span> <span style="color: #000066;">+</span> IfThen<span style="color: #000066;">&#40;</span>Result<span style="color: #000066;">,</span> <span style="color: #ff0000;">'1'</span><span style="color: #000066;">,</span> <span style="color: #ff0000;">'0'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">GetServiceController</span><span style="color: #000066;">:</span> TServiceController<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> ServiceController<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">Ping</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">with</span> idcmpclntPinger <span style="color: #000000; font-weight: bold;">do</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
<span style="color: #000000; font-weight: bold;">try</span><br />
Ping<span style="color: #000066;">&#40;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">except</span><br />
Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">False</span><span style="color: #000066;">;</span><br />
<span style="color: #000066;">Exit</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">&#40;</span>ReplyStatus<span style="color: #000066;">.</span><span style="color: #006600;">ReplyStatusType</span> &amp;lt<span style="color: #000066;">;</span>&amp;gt<span style="color: #000066;">;</span> rsEcho<span style="color: #000066;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">False</span><span style="color: #000066;">;</span> <span style="color: #808080; font-style: italic;">//pas d'écho, on renvoi false.</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">ServiceContinue</span><span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">var</span> Continued<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Enabled</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">;</span><br />
WriteIt<span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'Restarted @ '</span> <span style="color: #000066;">+</span> <span style="color: #000066;">DateTimeToStr</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
Continued <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">ServiceExecute</span><span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
sFileName <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000066;">ExtractFilePath</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">ParamStr</span><span style="color: #000066;">&#40;</span><span style="color: #0000ff;">0</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">'ConnectionLogger-'</span> <span style="color: #000066;">+</span> <span style="color: #000066;">IntToStr</span><span style="color: #000066;">&#40;</span>YearOf<span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">'-'</span> <span style="color: #000066;">+</span> AddLeadingZeroes<span style="color: #000066;">&#40;</span>MonthOf<span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">'-'</span> <span style="color: #000066;">+</span> AddLeadingZeroes<span style="color: #000066;">&#40;</span>DayOf<span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">+</span> <span style="color: #ff0000;">'.log'</span><span style="color: #000066;">;</span><br />
WriteIt<span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'Started @ '</span> <span style="color: #000066;">+</span> <span style="color: #000066;">DateTimeToStr</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Interval</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> LONG_INTERVAL<span style="color: #000066;">;</span><br />
<span style="color: #808080; font-style: italic;">// On vérifie au démarrage</span><br />
CheckIt<span style="color: #000066;">;</span><br />
<span style="color: #808080; font-style: italic;">// On revérifiera à intervalles réguliers</span><br />
tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Enabled</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #000000; font-weight: bold;">not</span> Terminated <span style="color: #000000; font-weight: bold;">do</span><br />
ServiceThread<span style="color: #000066;">.</span><span style="color: #006600;">ProcessRequests</span><span style="color: #000066;">&#40;</span><span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><span style="color: #808080; font-style: italic;">// wait for termination</span><br />
<br />
WriteIt<span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'Stopped @ '</span> <span style="color: #000066;">+</span> <span style="color: #000066;">DateTimeToStr</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Enabled</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">False</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">ServicePause</span><span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> TService<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">var</span> Paused<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Boolean</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
tmrCheck<span style="color: #000066;">.</span><span style="color: #006600;">Enabled</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">False</span><span style="color: #000066;">;</span><br />
WriteIt<span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'Paused @ '</span> <span style="color: #000066;">+</span> <span style="color: #000066;">DateTimeToStr</span><span style="color: #000066;">&#40;</span><span style="color: #000066;">Now</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
Paused <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">True</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">tmrCheckTimer</span><span style="color: #000066;">&#40;</span>Sender<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">TObject</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
CheckIt<span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">procedure</span> TConnectionLoggerService<span style="color: #000066;">.</span><span style="color: #006600;">WriteIt</span><span style="color: #000066;">&#40;</span>sToWrite<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">string</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
<span style="color: #000066;">AssignFile</span><span style="color: #000066;">&#40;</span>fPointer<span style="color: #000066;">,</span> sFileName<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">FileExists</span><span style="color: #000066;">&#40;</span>sFileName<span style="color: #000066;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
<span style="color: #000066;">Append</span><span style="color: #000066;">&#40;</span>fPointer<span style="color: #000066;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">else</span><br />
<span style="color: #000066;">Rewrite</span><span style="color: #000066;">&#40;</span>fPointer<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000066;">Writeln</span><span style="color: #000066;">&#40;</span>fPointer<span style="color: #000066;">,</span> sToWrite<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000066;">CloseFile</span><span style="color: #000066;">&#40;</span>fPointer<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span><br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">.</span></div></td></tr></tbody></table></div>
<p>J&#8217;l'ai implémenté pendant ma pause-déjeuner.. Merci d&#8217;être tolérant  <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/rolleyes.gif' alt=':rollup:' class='wp-smiley' /><br />
Attention, sous <a href="http://fr.wikipedia.org/wiki/Microsoft_Windows_Vista" rel="glossary" target="_blank" title="Wikipedia, D&eacute;finition de&nbsp;: Vista" style="" >Vista</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, pour installer le service, il faut être administrateur (élévation des droits)&#8230; Personnellement, j&#8217;ai ouvert une console DOS en tant qu&#8217;administrateur, et j&#8217;ai installé le service (<em>ConnectionLogger.exe /install</em>)&#8230;</p>
<p>Il ne me reste plus qu&#8217;à attendre une semaine ou deux pour avoir suffisamment de données à comparer&#8230;  <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/dub.gif' alt=':bof:' class='wp-smiley' /><br />
<font size="-2">Si à tout hasard, vous souhaiteriez la version binaire pour l&#8217;utiliser chez vous&#8230; vous pouvez poster un commentaire&#8230;</font></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.wittwer.fr/whiler/2010/03/01/log-coupures-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Random Number Generator 1.2 &amp; 1.3</title>
		<link>http://blogs.wittwer.fr/whiler/2009/11/27/random-number-generator-1-3/</link>
		<comments>http://blogs.wittwer.fr/whiler/2009/11/27/random-number-generator-1-3/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 11:30:15 +0000</pubDate>
		<dc:creator>Whiler</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[addons]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[RNG]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blogs.wittwer.fr/whiler/?p=1069</guid>
		<description><![CDATA[Une extension qui génère un nombre aléatoire... on peut spécifier : les valeurs minimales et maximales, le format de sortie... on peut l’appeler de différentes façons... 
L’extension répond au cahier des charges. Alors que pouvons-nous lui ajouter ? 
Les deux dernières versions publiées, la 1.2 et la 1.3 illustrent entre autres...]]></description>
			<content:encoded><![CDATA[<p>Une extension qui génère un nombre aléatoire&#8230;</p>
<ul>
<li> on peut spécifier :
<ul>
<li>les valeurs minimales et maximales</li>
<li>le format de sortie</li>
</ul>
</li>
<li>on peut l&#8217;appeler de différentes façons&#8230;</li>
</ul>
<p>L&#8217;extension répond au cahier des charges. Alors que pouvons-nous lui ajouter ? <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/dub.gif' alt=':bof:' class='wp-smiley' />  </p>
<p>D&#8217;autres langues&#8230; une traduction pour une version en russe a été incluse dans l&#8217;extension. <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/respect.gif' alt=':respect:' class='wp-smiley' />  Un grand merci à <a title="Visiter le site de ShinePHP" href="http://www.shinephp.com/" target="_blank">ShinePHP</a> pour son travail et son aide.</p>
<p>Pour le moment, n&#8217;ayant pas trouvé de vraie nouvelle idée qui reste cohérente avec sa fonction, j&#8217;ai enrichi l&#8217;interface d&#8217;administration en utilisant diverses méthodes afin d&#8217;illustrer au mieux cet exemple et que vous puissiez ainsi implémenter vos propres extensions avec un maximum de fonctionnalités <img src='http://blogs.wittwer.fr/whiler/wp-includes/images/smilies/glass.gif' alt=':et?:' class='wp-smiley' /> </p>
<p>Les deux dernières versions publiées, la 1.2 et la 1.3 illustrent entre autres :<span id="more-1069"></span></p>
<ul>
<li>sur la page de réglage des options :
<ul>
<li>Icone dans le titre qui rappelle le menu parent utilisé</li>
<li>Utilisation d&#8217;images propres à l&#8217;extension</li>
<li>Choix du menu parent qui affiche le sous-élément permettant d&#8217;ouvrir cette page de réglages</li>
</ul>
</li>
</ul>
<div id="attachment_1070" class="wp-caption aligncenter" style="width: 285px"><a title="Page de réglage des options" href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2009/11/rng_custom_menu.jpg" rel="lightbox[1069]"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2009/11/rng_custom_menu-275x300.jpg" title="Cliquer pour agrandir" alt="Page de réglage des options" width="275" height="300" class="size-medium wp-image-1070" /></a><p class="wp-caption-text">Page de réglage des options</p></div>
<ul>
<li>sur la page des extensions installées :
<ul>
<li>lien additionnel sous le nom de l&#8217;extension</li>
<li>traduction de la description de l&#8217;extension</li>
<li>liens additionnels sous cette description</li>
</ul>
</li>
</ul>
<div id="attachment_1071" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.wittwer.fr/whiler/wp-content/uploads/2009/11/rng_plugins_page.jpg" rel="lightbox[1069]" title="Page des extensions installées"><img src="http://blogs.wittwer.fr/whiler/wp-content/uploads/2009/11/rng_plugins_page-300x19.jpg" alt="Page des extensions installées" title="Page des extensions installées" width="300" height="19" class="size-medium wp-image-1071" /></a><p class="wp-caption-text">Page des extensions installées</p></div>
<p>N&#8217;hésitez pas à éditer le source afin de voir le code et les commentaires qui y sont inclus.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.wittwer.fr/whiler/2009/11/27/random-number-generator-1-3/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

