Warning: Parameter 1 to behaviorsPagesStatiques::addTplPath() expected to be a reference, value given in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php on line 304

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/public/lib.urlhandlers.php on line 580

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/libs/clearbricks/common/lib.http.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/libs/clearbricks/common/lib.http.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/libs/clearbricks/common/lib.http.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/libs/clearbricks/common/lib.http.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/public/lib.urlhandlers.php on line 85

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/libs/clearbricks/common/lib.http.php on line 273
Flyou.net [Dev] : Développements - Outils & Développements 2017-05-04T04:41:02+02:00 Flyounet urn:md5:69f091255befd3717a2b2e45b9aa3688 Dotclear Retrouver ses Librairies urn:md5:faee7a168b5759f3d2fd641a8c8008ab 2012-07-31T09:07:00+02:00 2012-07-31T09:12:40+02:00 Flyounet Outils & Développements AIXbashkshShell <p>Comme bien souvent quand on écrit un script en <a href="http://dev.flyou.net/tag/Shell">Shell</a>, on se pose la question des fichiers de paramètres et régulièrement on en arrive à gérer le petit <code>-c configFile</code> ou <code>-f configFile</code>. Cependant, lorsque des librairies sont à charger on veut être sûr de là où elles sont.</p> <p>Dans mon cas, je mets mes librairies dans un sous répertoire du script à appeler. C'est classic et simple. Par contre, là où ça devient un brin chiant, c'est quand le file system contenant le script est truffé de liens symboliques et que le script est appelé via un lien&nbsp;; une fois sur deux on retrouve pas ses petits.</p> <p>J'ai donc pris l'habitude de commencer chacun de mes scripts avec les lignes suivantes (qui fonctionnent avec un vieux <a href="http://dev.flyou.net/tag/ksh">KSH</a> ou <a href="http://dev.flyou.net/tag/bash">Bash</a> (et même sur <a href="http://dev.flyou.net/tag/AIX">AIX</a>)&nbsp;:</p> <pre> __sName=&quot;${0}&quot;; __pName=&quot;${0}&quot;; if [ -L &quot;${0}&quot; ]; then __=&quot;$(command -v &quot;readlink&quot;)&quot; if [ &quot;readlink&quot; = &quot;${__##*/}&quot; ]; then __sName=&quot;$(readlink -m &quot;${__sName}&quot;)&quot; else __sName=&quot;$(set -- $(LC_ALL=C file &quot;${0}&quot;); echo ${5:1:$((${#5} - 2))})&quot;; __sName=&quot;$(dirname &quot;${__pName}&quot;)/$(dirname &quot;${__sName}&quot;)/${__sName##*/}&quot; fi fi __pName=&quot;$( cd &quot;${__sName%/*}&quot; ; pwd )&quot;; __sName=&quot;${__pName}/${__sName##*/}&quot;; __fName=&quot;${__sName##*/}&quot;</pre> <p>Ainsi, je peux charger ce que j'ai besoin avec un <code>. ${__pName}/lib/F01/common.lib</code></p> <p>Donc&nbsp;:</p> <ul> <li><code>__pName</code> contient le chemin absolu du script (avec les liens suivis et tout et tout),</li> <li><code>__sName</code> contient le chemin complet et nom du script (avec les liens <em>résolus</em>, donc absolu),</li> <li><code>__fName</code> contient le nom final du script (et pas le nom du lien si appelé par un lien).</li> </ul> http://dev.flyou.net/post/2012/07/31/Retrouver-ses-Librairies#comment-form http://dev.flyou.net/feed/atom/comments/43 Comment déterminer les répertoires associés à un disque sur AIX urn:md5:4f8f2b67d68d445b7043ff2b4e28c8fd 2011-09-26T12:50:00+02:00 2011-09-26T13:16:49+02:00 Flyounet Outils & Développements AIXShellUnix <p>Alors qu'il y a peu, je me posais la question inverse, à savoir&nbsp;: <a href="http://dev.flyou.net/post/2011/07/20/Comment-d%C3%A9terminer-un-disque-en-partant-d-un-r%C3%A9pertoire-sur-AIX" hreflang="fr">Comment déterminer un disque en partant d'un répertoire sur AIX</a>, j'ai aujourd'hui la problématique inverse et ça fait chier&nbsp;!</p> <p>Donc pour pas perdre de temps voici comment faire simple&nbsp;:</p> <pre> # r='hdisk5';for vg in $(lsvg); do lsvg -l $vg | tail +3 | awk '{print $1,$NF}' | while read dsk lv; do if lslv -l $dsk|grep $r&gt;/dev/null; then echo &quot;$vg - $lv&quot;; fi;done; done appvg - N/A appvg - /var/mqm appvg - /opt/IBM/ITM appvg - /u01 appvg - /app_nfs </pre> <p>On remplace le <code>r=blabla</code> et on lance en <code>root</code> évidemment.</p> http://dev.flyou.net/post/2011/09/26/Comment-d%C3%A9terminer-les-r%C3%A9pertoires-associ%C3%A9s-%C3%A0-un-disque-sur-AIX#comment-form http://dev.flyou.net/feed/atom/comments/42 RFC 1924 : IPv6 compression (A Compact Representation of IPv6 Addresses) urn:md5:516f095dae50a45824b1cda00b57b7f8 2011-08-29T23:53:00+02:00 2011-09-05T10:06:36+02:00 Flyounet Outils & Développements bashLinuxRFCShellUnix <p>You know how it works, your wife left you with childrens to see her mother... And you're alone for the entire week end. So you read April Fool's <acronym title="Request For Coment">RFC</acronym>, and you decide to implement one for fun.</p> <h3>What is it about ?</h3> <p>First of all, the <acronym title="Request For Coment">RFC</acronym>, i choose, was the <a href="http://tools.ietf.org/rfc/rfc1924.txt" hreflang="en" title="The RFC on IETF site">1924</a>. To make it simple, it's only a sort of <em>How to compress IPv6</em> to store them more efficiently.</p> <pre> $ ./ipv6Converter.sh -I ab:CD:ef:01:23:45:67:89 The IPv6 you enter is : [ab:CD:ef:01:23:45:67:89] --------------------------------------------------------- IPv6 expanded is : [00ab:00cd:00ef:0001:0023:0045:0067:0089] IPv6 shrinked (RFC5952) is : [ab:cd:ef:1:23:45:67:89] IPv6 decimal format is : 887899004871704238012413915815149705 IPv6 compressed (RFC1924) is : Gk+pw{*-scXTvbLbnhP </pre> <h3>More info ?</h3> <p><a href="http://code.flyou.net/trac/wiki/ipv6Converter.sh" hreflang="en" title="Wiki article">ipv6Converter.sh</a> on Trac.</p> <h3>Download</h3> <p><del>v0.03</del><sup>[<a href="http://dev.flyou.net/post/2011/08/29/RFC-1924-%3A-IPv6-compression-%28A-Compact-Representation-of-IPv6-Addresses%29#pnote-37-1" id="rev-pnote-37-1">1</a>]</sup><br /> <a href="http://dev.flyou.net/public/rfc1924/rfc1924-ipv6Converter_v0.04.tar.bz2">v0.04</a> (SHA1SUM : 63f5f5abd9b9d8fdb5556b284a254bca3ed64920)</p> <h3>Pre-requisites</h3> <ul> <li>Bash 4 minimum</li> <li>your happyness</li> </ul> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2011/08/29/RFC-1924-%3A-IPv6-compression-%28A-Compact-Representation-of-IPv6-Addresses%29#rev-pnote-37-1" id="pnote-37-1">1</a>] A little bug forced me to release v0.04...</p></div> http://dev.flyou.net/post/2011/08/29/RFC-1924-%3A-IPv6-compression-%28A-Compact-Representation-of-IPv6-Addresses%29#comment-form http://dev.flyou.net/feed/atom/comments/37 TaskFreak ! v0.6.3b (unofficial) urn:md5:5822134a98e512080b94c5c3624e2c62 2010-06-07T23:31:00+02:00 2010-06-12T23:53:46+02:00 Flyounet Outils & Développements <p><a href="http://www.taskfreak.com" hreflang="en">TaskFreak !</a> is a <acronym>PHP</acronym> tools to manage your Todo list. Based on the v0.6.3 <em>multi</em>, here is my modified version.</p> <h4>What's added ?</h4> <ul> <li>the Plugin manager : with a little modification to avoid it to look into subversion subdirectories,</li> <li>the 99% task finished : instead of closing a task, you have to raise the 99% percent level to close task,</li> <li>the id an requester column,</li> <li>the File transfer plugin,</li> <li>EmailNotify : email when a task is created, modified, deleted, closed,</li> <li><a href="http://dev.flyou.net/post/2010/05/20/dueTasks.php-v0.01-for-TaskFreak-%21" hreflang="en">dueTasks</a> : email when a task is due,</li> <li>the Deadline updater plugin with a little modification (it sends an email when date is changed),</li> <li>the beginning of the implementation of a backup user (not finished yet),</li> <li>when a task is Priority 1, you cannot miss it,</li> <li>some informations in the header,</li> <li>1 or 2 modifications in the redfreak template,</li> <li>you can search an ID of task,</li> <li>there is some help,</li> <li>and maybe I forget 1 or 2 things.</li> </ul> <h4>And after what ?</h4> <p><code>svn co http://code.flyou.net/webDev/taskfreak_multi/trunk</code><br /> <del><strong>Update 09/06/2010 : I'd to restrict access to the svn, due to my mistake. I added a config file with live informations...</strong></del><br /> <del>So, <code>svn</code> close until i correct the problem...</del> <br />Ok <code>svn</code> is reopen.</p> <h4>HowTo install this script:<a name="HowTo"></a></h4> <p>Backup your directory, uncompress the archive and update the config file.<br /> If you need to update the database, check the file <code>doc/database_structure.txt</code>.</p> <h4>Files are :<a name="FileList"></a></h4> <ul> <li><code>taskfreak-0.6.3b-Fly.tar.bz2</code> : Archive in the bzip2 format,</li> <li><code>taskfreak-0.6.3b-Fly.tar.gz</code> : Archive in the gzip format,</li> <li><code>taskfreak-0.6.3b-Fly.zip</code> : Archive in the zip format,</li> </ul> <h4>MD5 files :<a name="Md5List"></a></h4> <pre>fa926f21be85939d8c39285d3f9a9e3c taskfreak-0.6.3b-Fly.tar.bz2 81114e0590ad6ca87ff91f7a574f412b taskfreak-0.6.3b-Fly.tar.gz e7bc8ae507ff8c72b0bbb24b4df4ceb1 taskfreak-0.6.3b-Fly.zip</pre> <h4>Sha1 files :<a name="Sha1List"></a></h4> <pre>ff195a6bff6276f08fefed1292b04ef7d1aab1e3 taskfreak-0.6.3b-Fly.tar.bz2 65f86eef728ee2abb067a1e5ab6b9b8766013f19 taskfreak-0.6.3b-Fly.tar.gz cf6907c97f74486eb8526e0b1411bd8390306e39 taskfreak-0.6.3b-Fly.zip</pre> <h4>Licenses:<a name="Licenses"></a></h4> <ul> <li><a href="http://www.gnu.org/licenses/" hreflang="en">GPLv3</a></li> <li><a href="http://dssl.flyounet.net/licenses" hreflang="fr">DSSLv1</a></li> </ul> http://dev.flyou.net/post/2010/06/07/TaskFreak-%21-v0.6.3b-%28unofficial%29#comment-form http://dev.flyou.net/feed/atom/comments/29 dueTasks.php v0.01 for TaskFreak ! urn:md5:f6e9bbba3d342fe68c6e35309562f644 2010-05-20T11:04:00+02:00 2010-05-20T11:13:56+02:00 Flyounet Outils & Développements PHPScriptTaskFreak! <p><a href="http://www.taskfreak.com" hreflang="en">TaskFreak !</a> is a <acronym>PHP</acronym> tools to manage your Todo list. Written by Stan Ozier the v0.62/v0.63 lacks a tool to send email for due tasks. Here is my little contribution.</p> <p>Please note, it has only be tested with the <em>multi</em> version (not the <em>single</em>).</p> <h4>HowTo install this script:<a name="HowTo"></a></h4> <p>Simply copy the file directly into the directory containing your <a href="http://www.taskfreak.com" hreflang="en">TaskFreak !</a> directory.</p> <h4>Files are :<a name="FileList"></a></h4> <ul> <li><code>dueTasks.php</code> : The file (have a look on <a href="http://dev.flyou.net/public/TaskFreak/dueTasks/v0.01/dueTasks.phps">it</a>).</li> </ul> <h4>MD5 files :<a name="Md5List"></a></h4> <pre>d5b1c1e1e713b61a9bd111f5223d43e5 dueTasks.php</pre> <h4>Sha1 files :<a name="Sha1List"></a></h4> <pre>2c6e6e58a80494b46d3bc930c96ebdecad75d462 dueTasks.php</pre> <h4>Licenses:<a name="Licenses"></a></h4> <ul> <li><a href="http://www.gnu.org/licenses/" hreflang="en">GPLv3</a></li> <li><a href="http://dssl.flyounet.net/licenses" hreflang="fr">DSSLv1</a></li> </ul> http://dev.flyou.net/post/2010/05/20/dueTasks.php-v0.01-for-TaskFreak-%21#comment-form http://dev.flyou.net/feed/atom/comments/26 F01common.lib v0.28 urn:md5:36df6dad5e231dee988d2ac43182277f 2010-05-03T17:58:00+02:00 2010-05-03T18:12:47+02:00 Flyounet Outils & Développements bashF01common.libkshLinuxScriptShellUnix <p>Because I need it, I implement the <code>statusBar</code> <a href="http://dev.flyou.net/post/2010/05/03/F01common.lib-v0.28#FunctionList" hreflang="en">function</a>. <a href="http://dev.flyou.net/public/F01common.lib/v0.28/doc/F01_statusBar_01.png" title="Test statusBar 01"><img src="http://dev.flyou.net/public/F01common.lib/v0.28/doc/.F01_statusBar_01_m.jpg" alt="Test statusBar 01" style="display:block; margin:0 auto;" title="Test statusBar 01, mai 2010" /></a> <a href="http://dev.flyou.net/public/F01common.lib/v0.28/doc/F01_statusBar_02.png" title="Test statusBar 02"><img src="http://dev.flyou.net/public/F01common.lib/v0.28/doc/.F01_statusBar_02_m.jpg" alt="Test statusBar 02" style="display:block; margin:0 auto;" title="Test statusBar 02, mai 2010" /></a> I tested with KSH and Bash and it seems to work with both.</p> <h4>Changelog :<a name="ChangeLog"></a></h4> <pre>+ statusBar : generate the informations to have a status bar. eg. 0%....5%....10%.... and so on until 100%</pre> <h4>Variables &amp; Functions diagram :<a name="Schema"></a></h4> <p><img src="http://dev.flyou.net/public/F01common.lib/v0.28/doc/.common.lib_m.jpg" alt="common.lib.png" style="display:block; margin:0 auto;" title="Liste des variables et fonctions" /></p> <h4>Files are :<a name="FileList"></a></h4> <ul> <li><code>common.lib_v0.28.tar.bz2</code>&nbsp;: L'archive qui contient tous les fichiers,</li> <li><code>common.lib.README</code>&nbsp;: Une micro documentation,</li> <li><code>common.lib</code>&nbsp;: La librairie Shell,</li> <li><code>_common4bash.lib</code>&nbsp;: L'extension pour Bash de la fonction <code>textBox()</code>,</li> <li><code>doc/common.lib.mm</code>&nbsp;: La liste de fonctions et variables sous forme de fichier Free(Mind|Plane),</li> <li><code>doc/common.lib.png</code>&nbsp;: La liste de fonctions et variables sous forme de fichier image,</li> <li><code>test/libHelp.sh</code>&nbsp;: Un script de test qui retourne de l'aide sur les fonctions,</li> <li><code>test/test_common-lib.conf</code>&nbsp;: Un fichier de configuration pour exécuter le script de test,</li> <li><code>test/test_common-lib.sh</code>&nbsp;: Un script de test, qui exécute quasiment toutes les fonctions de la librairie.</li> </ul> <h5>MD5 files :<a name="Md5List"></a></h5> <pre>9fa4b288ecc8e77c4fc34e712191c738 _common4bash.lib a8483e625e5218b308230f6a1cbf3ef9 common.lib da48aa769eb642b15683dddf9df6b09c common.lib.README c1d1416cd585ba0bb4f676571a8d16c9 doc/common.lib.mm 92071c09cb37d37bcc2669d5d4461fae doc/common.lib.png d04d3958e604ffdd69d5387d6c95110f test/libHelp.sh 727d5784f66d1a3f73c60e6179e97ca0 test/test_common-lib.conf f69437db303a6cda03f7964dc007bd68 test/test_common-lib.sh 8f4700e95ca3f8d1aa6e6e25a23bb194 F01common.lib_v0.28.tar.bz2</pre> <h5>Sha1 files :<a name="Sha1List"></a></h5> <pre>c525977312841d164ff589621fed70310b23b9c9 _common4bash.lib 868d379be8e4d22618d9714fe736ebb7d2426216 common.lib 33a81e3d04be359c60b2b9b7c67d918881415e1c common.lib.README eae8091cc12cd768d00f827f893ac2284367144c doc/common.lib.mm fb5379fb12394a4094e98b70bf2a99986db0ea64 doc/common.lib.png f8f1bf4afb8e54ec122f5f6e67a8a0bba72e98c8 test/libHelp.sh c21039c426cf47f9c9e0cc6c36e67c6e458e1978 test/test_common-lib.conf 6494f41cfde70c9fc6a811c0e316ad864492a232 test/test_common-lib.sh 772236b0435bcc54ea812eecd879ea2b009efec2 F01common.lib_v0.28.tar.bz2</pre> <h4>Function list :<a name="FunctionList"></a></h4> <p>Have a look in the <a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26#FunctionList" hreflang="fr">previous note</a> (related to version <a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26">v0.26</a>)</p> <pre>#F01.25.02 #Function : statusBar, Print (or return) datas to make a status bar</pre> http://dev.flyou.net/post/2010/05/03/F01common.lib-v0.28#comment-form http://dev.flyou.net/feed/atom/comments/24 bashColors.sh v0.03 urn:md5:77e11df1dfe29647677136afa90ec942 2010-04-29T00:14:00+02:00 2010-04-29T18:55:07+02:00 Flyounet Outils & Développements bashbashColors.shkshScriptShellUnix <h4>Purpose :<a name="Purpose"></a></h4> <p>As I am writting more <a href="http://dev.flyou.net/tag/Shell">Shell</a> code every day. I often need to use color to show to my users the huge mistake they're trying to put with my Shell script<sup>[<a href="http://dev.flyou.net/post/2010/04/29/bashColors.sh-v0.03#pnote-23-1" id="rev-pnote-23-1">1</a>]</sup><br /> As my wife calls me <em>Red Fish</em><sup>[<a href="http://dev.flyou.net/post/2010/04/29/bashColors.sh-v0.03#pnote-23-2" id="rev-pnote-23-2">2</a>]</sup>, I rarely figure what is the reference for Shell colors. That's why I made this little <a href="http://dev.flyou.net/tag/Script">Script</a>.</p> <h4>Changelog :<a name="ChangeLog"></a></h4> <pre>v0.01 [30/03/2010] Flyounet [@Home] : &gt; Initiale Release &gt; Prerequisites : F01 common.lib (at least v0.24) v0.02 [21/04/2010] Flyounet [@Home] : &gt; Now Under <a href="http://dssl.flyounet.net/" hreflang="fr" title="Demerden Sie Sich Licence">DSSL</a> &amp; <a href="http://www.gnu.org/licenses/" hreflang="en">GPLv3</a> &gt; set ts=4 ; set noai + Add information how to quit * When run with Ksh, it show errors about declare... Erased them &amp; use typeset instead. v0.03 [27/04/2010] Flyounet [@Home] : + Added the work 'effect' in the rainbowTable function &gt; Now use the <a href="http://dev.flyou.net/tag/F01common.lib">F01common.lib</a> v0.27</pre> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2010/04/29/bashColors.sh-v0.03#rev-pnote-23-1" id="pnote-23-1">1</a>] It remembers me a newbie that wants to put his saves in <code>/dev/null</code>, because he read on Internet, this folder compress incredibly everything. Don't laught ! I'm pretty sure everyone already met one of this people...</p> <p>[<a href="http://dev.flyou.net/post/2010/04/29/bashColors.sh-v0.03#rev-pnote-23-2" id="pnote-23-2">2</a>] I now know it's for my memory.</p></div> <h4>Screenshots :<a name="ScreenShots"></a></h4> <p>The first flavour : <a href="http://dev.flyou.net/public/bashColors.sh/v0.03/bashColors_01.png" title="bashColors.sh : Simple colors table"><img src="http://dev.flyou.net/public/bashColors.sh/v0.03/.bashColors_01_s.jpg" alt="bashColors.sh : Simple colors table" style="display:block; margin:0 auto;" title="bashColors.sh : Simple colors table, avr. 2010" /></a> The second flavour: <a href="http://dev.flyou.net/public/bashColors.sh/v0.03/bashColors_02.png" title="bashColors.sh : RainbowTable"><img src="http://dev.flyou.net/public/bashColors.sh/v0.03/.bashColors_02_s.jpg" alt="bashColors.sh : RainbowTable" style="display:block; margin:0 auto;" title="bashColors.sh : RainbowTable, avr. 2010" /></a></p> <h4>Prerequisites :<a name="PreRequisites"></a></h4> <p>The <a href="http://dev.flyou.net/tag/F01common.lib">F01common.lib</a> is required to execute the <a href="http://dev.flyou.net/tag/bashColors.sh">bashColors.sh</a> script. This library need to be at least in version 0.24.</p> <h4>Files are :<a name="FileList"></a></h4> <ul> <li><code>bashColors.sh_v0.03.tar.bz2</code> : The archive which contains all files,</li> <li><code>bashColors.sh</code> : The script itself,</li> <li><code>bashColors.sh.README</code> : The complete documentation (but light),</li> <li><code>prereqs/_common4bash.lib</code> : The extension library for <a href="http://dev.flyou.net/tag/bash">Bash</a>,</li> <li><code>prereqs/common.lib</code> : A library containing lot of function.</li> </ul> <h4>MD5 files :<a name="MD5List"></a></h4> <pre>ee0b046b5a20bdb352401e16c7d8a86c bashColors.sh 2bcd647284682fc577295e868f8e03d2 bashColors.sh.README 17b9c2eed07500fc618cff158d170185 prereqs/common.lib 9fa4b288ecc8e77c4fc34e712191c738 prereqs/_common4bash.lib 5a643a56f6facded12f81f6f0dd24fe7 bashColors.sh_v0.03.tar.bz2</pre> <h4>Sha1 files :<a name="Mha1List"></a></h4> <pre>62211e320b5a56631a10275c377acc9ff3e470b2 bashColors.sh 2988c08a5761c5850ddad2c231371f0d767f0feb bashColors.sh.README 28e303ffca0d9e3d251c1322a34f09fd3099a30e prereqs/common.lib c525977312841d164ff589621fed70310b23b9c9 prereqs/_common4bash.lib fc10789d9da69e0b95bd070a415421764f46c057 bashColors.sh_v0.03.tar.bz2</pre> http://dev.flyou.net/post/2010/04/29/bashColors.sh-v0.03#comment-form http://dev.flyou.net/feed/atom/comments/23 F01common.lib v0.27 urn:md5:6dc23ccfe5b0af2d0e857e66807927e2 2010-04-27T14:00:00+02:00 2010-05-03T18:14:18+02:00 Flyounet Outils & Développements bashF01common.libkshLinuxScriptShellUnix <p>Due to lots of bugs in the <a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26" hreflang="fr">previous version</a>, I'm happy to show you this one with I hope no bug inside.</p> <p>Nearly all tests have been done with <a href="http://dev.flyou.net/tag/ksh">Ksh</a>, and unfortunately I forget to test under <a href="http://dev.flyou.net/tag/bash">Bash</a>, and that's the result... Sorry.</p> <h4>Changelog :<a name="ChangeLog"></a></h4> <pre> &gt; Problem with the <a href="http://dev.flyou.net/tag/bash">Bash</a> version. If old <a href="http://dev.flyou.net/tag/bash">Bash</a> is use BASH_SOURCE doesn't exist... Now looks for the files instead of trying to load it directly to avoid, error messages. Search in above and under directory. * F01Version return the path of the Bash extension. * trim : Huge bug ! Instead of unsetting __ltrim &amp; __trim, i unsetted functions ltrim &amp; rtrim... &gt; ltrim &amp; rtrim don't work under Bash ! ARGGGGGGGGGGGGG !!!!! * iniParseFile : In case of a line only containing a left var with incorrect character (like a dash -), the awk version sent an error to the output (and under <a href="http://dev.flyou.net/tag/ksh">Ksh</a> stops). Function has been rewritted purely in <a href="http://dev.flyou.net/tag/Shell">Shell</a>... * sprintf : Problem under Bash. Bash doesn't support only one _ as a variable name : Corrected. * iniGetValue : Not use grep anymore. Only Shell ! * fileCheck : Problem under Bash. Bash doesn't support only one _ as a variable name : Corrected. * logMe : Problem under Bash. Bash doesn't support only one _ as a variable name : Corrected. &gt; Now only logRotate use non-shell programs ! + myError : If none args then empty __lastError</pre> <h4>Variables &amp; Functions diagram :<a name="Schema"></a></h4> <p><img src="http://dev.flyou.net/public/F01common.lib/v0.27/doc/.common.lib_m.jpg" alt="common.lib.png" style="display:block; margin:0 auto;" title="Liste des variables et fonctions" /></p> <h4>Files are :<a name="FileList"></a></h4> <ul> <li><code>common.lib_v0.27.tar.bz2</code> : L'archive qui contient tous les fichiers,</li> <li><code>common.lib.README</code> : Une micro documentation,</li> <li><code>common.lib</code> : La librairie Shell,</li> <li><code>_common4bash.lib</code> : L'extension pour Bash de la fonction <code>textBox()</code>,</li> <li><code>doc/common.lib.mm</code> : La liste de fonctions et variables sous forme de fichier Free(Mind|Plane),</li> <li><code>doc/common.lib.png</code> : La liste de fonctions et variables sous forme de fichier image,</li> <li><code>test/libHelp.sh</code> : Un script de test qui retourne de l'aide sur les fonctions,</li> <li><code>test/test_common-lib.conf</code> : Un fichier de configuration pour exécuter le script de test,</li> <li><code>test/test_common-lib.sh</code> : Un script de test, qui exécute quasiment toutes les fonctions de la librairie.</li> </ul> <h5>MD5 files :<a name="Md5List"></a></h5> <pre>d04d3958e604ffdd69d5387d6c95110f test/libHelp.sh 727d5784f66d1a3f73c60e6179e97ca0 test/test_common-lib.conf cef5238682be487c62fd55f9054321fb test/test_common-lib.sh 16e92798581ba2f57b82dbdfdbb60645 doc/common.lib.png 882c79e3ff9b15510f6fc457aef94b8d doc/common.lib.mm 9fa4b288ecc8e77c4fc34e712191c738 _common4bash.lib faa364482cbf69235561956c2b14f464 common.lib.README e72679facbec1adc7bd938e7d01d3b53 common.lib 68ce26b91ce97f5b521c96289718e286 F01common.lib_v0.27.tar.bz2</pre> <h5>Sha1 files :<a name="Sha1List"></a></h5> <pre>f8f1bf4afb8e54ec122f5f6e67a8a0bba72e98c8 test/libHelp.sh c21039c426cf47f9c9e0cc6c36e67c6e458e1978 test/test_common-lib.conf d47f2071c31cf653019e3c9b92fd1bde4503c21d test/test_common-lib.sh 1abdfbf61ef8f0b003e990c4145dd3be675c1936 doc/common.lib.png 43f7a0673984fc8653cc4469d5a9a28229955d85 doc/common.lib.mm c525977312841d164ff589621fed70310b23b9c9 _common4bash.lib d4c8767c77a60dfa2fb97872f22b9030beb6844f common.lib.README 2eaf7218008d8ac5588598bf5093301dfb21e8c5 common.lib b6e842358c2461118b696696ee24f49e9afb7910 F01common.lib_v0.27.tar.bz2</pre> <h4>Function list :<a name="FunctionList"></a></h4> <p>Have a look in the <a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26#FunctionList" hreflang="fr">previous note</a> (related to version <a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26">v0.26</a>)</p> http://dev.flyou.net/post/2010/04/27/F01common.lib-v0.27#comment-form http://dev.flyou.net/feed/atom/comments/22 F01common.lib v0.26 urn:md5:3be75f99c70206f5c01a7362f93023ab 2010-04-22T21:21:00+02:00 2010-04-27T16:04:15+02:00 Flyounet Outils & Développements bashF01common.libkshLinuxScriptShellUnix <p>J'ai oublié de publier les précédentes versions, aussi je vous présente cette nouvelle version.</p> <p>Après pas mal de boulot, il ne reste plus que la fonction <code>iniParseFile</code> qui continue d'utiliser <code>awk</code>, sinon tout le reste n'utilise plus que le Shell avec lequel il a été exécuté.<br /> Et j'en ai profité pour passer le code sous GPLv3 et <acronym title="Demerden Sie Sich License">DSSL</acronym> (disponible <a href="http://dssl.flyounet.net/licenses" hreflang="fr">là</a>).</p> <p>L'incontournable Changelog :<a name="ChangeLog"></a></p> <pre> v0.23 [30/01/2010] Flyounet [@Home] : * fileCreate: In case of error during touch an ugly message is now sent to /dev/null (for chmod too) v0.24 [03/03/2010] Flyounet [@Home] : &gt; First svn version v0.25 [01/04/2010] Flyounet [@Home] : + textFill: equivalent to perl "string" x number + textBox: put a caracter all around a text * textBox: not working with KSH + _str2lower &amp; _str2upper have been added, cause to KSH that doesn't support Case modification of Bash. * textBox: now use _str2*er and work with KSH * iniGetValue: Remove the call to awk (Yeah ! Love shell !) v0.26 [22/04/2010] Flyounet [@Home] : + parseHeadersForHelp: Print the headers of each function in a file. Headers are based on a first line containing a #F??. &gt; textBox: Only works with KSH... Fuck ! * textBox: A subfile is needed to make it works with bash.</pre> <p>J'ai tenté de la rendre la plus indépendante possible de <code>sed</code> et <code>awk</code> qui sont assez incontournable<sup>[<a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26#pnote-21-1" id="rev-pnote-21-1">1</a>]</sup>. Elle fonctionne sous <a href="http://dev.flyou.net/tag/bash">bash</a> ou <a href="http://dev.flyou.net/tag/ksh">ksh</a>.</p> <p>Ci-dessous un aperçu des variables et fonctions :<a name="Schema"></a> <img src="http://dev.flyou.net/public/F01common.lib/v0.26/doc/.common.lib_m.jpg" alt="common.lib.png" style="display:block; margin:0 auto;" title="Liste des variables et fonctions" /></p> <p>En annexes sont fournis les fichiers indépendants, ainsi qu'une archive regroupant le tout.<br /> Les fichiers sont :<a name="FileList"></a></p> <ul> <li><code>common.lib_v0.26.tar.bz2</code>&nbsp;: L'archive qui contient tous les fichiers,</li> <li><code>common.lib.README</code>&nbsp;: Une micro documentation,</li> <li><code>common.lib</code>&nbsp;: La librairie Shell,</li> <li><code>_common4bash.lib</code>&nbsp;: L'extension pour Bash de la fonction <code>textBox()</code>,</li> <li><code>doc/common.lib.mm</code>&nbsp;: La liste de fonctions et variables sous forme de fichier Free(Mind|Plane),</li> <li><code>doc/common.lib.png</code>&nbsp;: La liste de fonctions et variables sous forme de fichier image,</li> <li><code>test/libHelp.sh</code>&nbsp;: Un script de test qui retourne de l'aide sur les fonctions,</li> <li><code>test/test_common-lib.conf</code>&nbsp;: Un fichier de configuration pour exécuter le script de test,</li> <li><code>test/test_common-lib.sh</code>&nbsp;: Un script de test, qui exécute quasiment toutes les fonctions de la librairie.</li> </ul> <p>Les md5 des fichiers :<a name="Md5List"></a></p> <pre>26ecc237a2dcc4f74f3a21ed3db809d6 _common4bash.lib 2c540c2a2516829a7f0796ebdc789979 common.lib 07d486cdcf8c5623a2a17b7183c0b7be common.lib.README dde7d1862448a90eaadfd8e2ee5ec811 doc/common.lib.png 606b099e82e48e846c71555b2827237a doc/common.lib.mm d04d3958e604ffdd69d5387d6c95110f test/libHelp.sh 51504fd29f5fd1aa73137d73657536ae test/test_common-lib.conf 21793fdcd0cc20cf16743e223d157a63 test/test_common-lib.sh 4cef5fce3dc9d224333540b91bd53f61 F01common.lib_v0.26.tar.bz2</pre> <p>Les sha1 des fichiers :<a name="Sha1List"></a></p> <pre>123dfbdbce15d27c0d5ca8a927d5d2fe0a575b41 _common4bash.lib 72e7de48dd30ef059bc16bbd809536505de62cdf common.lib fa9dead34dbc604a49ddf15b81805d288a9a0157 common.lib.README 0acab9ac384dfb9ce9e30baa4195cd2088fc069b doc/common.lib.png d32b6a8c2ad02816031b1e2f39dde6d7f41818af doc/common.lib.mm f8f1bf4afb8e54ec122f5f6e67a8a0bba72e98c8 test/libHelp.sh 34a05abbd28321b353c34b4003b7e001afd8a1b0 test/test_common-lib.conf db07298d8710c78ca681dc4496408ee4901aa000 test/test_common-lib.sh b849101928c71eec69f7623b233f369bf0dcfd3c F01common.lib_v0.26.tar.bz2</pre> <p>Ci-dessous la liste des fonctions :<a name="FunctionList"></a></p> <pre>#F01.01.03 #Function : ps2, Print to screen string passed in argument #F01.02.02 #Function : p2st, Print to screen string passed in argument, with Time before #F01.03.01 #Function : oops, Print to screen string passed in argument, and exit 1 #F01.04.01 #Function : oopst, Print to screen string passed in argument, with time before, and exit 1 #F01.05.06 #Function : myDebug, Print to screen string passed in argument if debug level is reach #F01.06.02 #Function : myError, Store error in variables #F01.07.02 #Function : fileCheck, Check file for presence and permission #F01.08.02 #Function : fileCreate, Create file with permissions if asked #F01.09.01 #Function : fileDelete, Delete the specified file #F01.10.04 #Function : iniGetValue, Get the value from a specified INI file #F01.11.04 #Function : iniParseFile, Set all values from a specified INI file #F01.12.03 #Function : trim, Remove all blank from begining and end #F01.13.03 #Function : logRotate, Transfer the begining of a file to the rotationned version. #F01.14.01 #Function : logMe, Send the log to the log files #F01.15.01 #Function : logMeV, Send the log to the verbose log files #F01.16.03 #Function : isFunction, Verify that the function exists #F01.17.07 #Function : sprintf, return a formatted string #F01.18.02 #Function : ltrim, Remove all blank from begining #F01.19.02 #Function : rtrim, Remove all blank from end #F01.20.01 #Function : _str2lower, lower all characters #F01.21.01 #Function : _str2upper, upper all characters #F01.22.01 #Function : textFill, Create a text filled by the caracter #F01.23.03 #Function : textBox, Create a box around the text #F01.24.05 #Function : parseHeadersForHelp, Print headers of function for a given file #F01.99.02 #Function : F01Version, Return/Print version information #F01.23-1.02 #Function : _textBox4Bash, Create a box around the text</pre> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26#rev-pnote-21-1" id="pnote-21-1">1</a>] Mes fonctions préférées sont sans aucun doute : <code>sprintf</code> et les <code>*trim</code>.</p></div> http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26#comment-form http://dev.flyou.net/feed/atom/comments/21 F01common.lib v0.22 urn:md5:4f89e4c349e1c30d131d3226a6c6efd9 2010-01-25T22:39:00+01:00 2010-01-26T00:00:25+01:00 Flyounet Outils & Développements bashF01common.libkshLinuxScriptShellUnix <p>Après plusieurs mois à codouiller<sup>[<a href="http://dev.flyou.net/post/2010/01/25/F01common.lib-v0.22#pnote-20-1" id="rev-pnote-20-1">1</a>]</sup> des petits bouts de script Shell, j'ai décidé d'en faire librairie&nbsp;: <strong>F01common.lib</strong>.</p> <p>J'ai tenté de la rendre la plus indépendante possible de <code>sed</code> et <code>awk</code> qui sont assez incontournable<sup>[<a href="http://dev.flyou.net/post/2010/01/25/F01common.lib-v0.22#pnote-20-2" id="rev-pnote-20-2">2</a>]</sup>. Elle fonctionne sous <a href="http://dev.flyou.net/tag/bash">bash</a> ou <a href="http://dev.flyou.net/tag/ksh">ksh</a>.</p> <p>Ci-dessous un aperçu des variables et fonctions&nbsp;: <img src="http://dev.flyou.net/public/F01common.lib/v0.22/.common.lib_v0.22_m.jpg" alt="common.lib_v0.22.png" style="display:block; margin:0 auto;" title="Liste des variables et fonctions" /></p> <p>En annexes sont fournis les fichiers indépendants, ainsi qu'une archive regroupant le tout.<br /> Les fichiers sont&nbsp;:</p> <ul> <li><code>common.lib.README</code>&nbsp;: Une micro documentation,</li> <li><code>common.lib_v0.22</code>&nbsp;: La librairie Shell,</li> <li><code>common.lib_v0.22.mm</code>&nbsp;: La liste de fonctions et variables sous forme de fichier Free(Mind|Plane),</li> <li><code>common.lib_v0.22.png</code>&nbsp;: La liste de fonctions et variables sous forme de fichier image,</li> <li><code>common.lib_v0.22.tar.bz2</code>&nbsp;: L'archive qui contient tous les fichiers,</li> <li><code>test_common-lib.conf</code>&nbsp;: Un fichier de configuration pour exécuter le script de test,</li> <li><code>test_common-lib.sh</code>&nbsp;: Un script de test, qui exécute quasiment toutes les fonctions de la librairie.</li> </ul> <p>Les md5 des fichiers&nbsp;:</p> <pre>16fc140f5a69acdcbe5e1a21be185772 common.lib.README 3f5c5a78a3bc2da85e86395d65b88188 common.lib_v0.22 31bd6704a048d38ba1479ec42a0e97b2 common.lib_v0.22.mm d273f4afd7a95aa8aa899e53f5dca904 common.lib_v0.22.png 1d0c7dd2ce3d264a14bfd442dadf0d24 common.lib_v0.22.tar.bz2 4c550b4593b12cd849af697313139e33 test_common-lib.conf 5520dd6882f166f4688ffef981187b41 test_common-lib.sh</pre> <p>Les sha1 des fichiers&nbsp;:</p> <pre>076770bedcfef3cc2568b0d00185c47a5c84ab89 common.lib.README b9f251ee69112e2357f716fac604f3bb3d73b627 common.lib_v0.22 b7cf30403aec92271678e14f79af9a4fd1f82df8 common.lib_v0.22.mm 30790cd148091e996415a5f620e5128feb40d986 common.lib_v0.22.png 832f5c6938657396f1361f80ebcb327f31956bd1 common.lib_v0.22.tar.bz2 7113349a4f5d1ddd74e790f4c2fa782ace0af949 test_common-lib.conf 7be004717f6ca2f9281955888c011ac6209b03e7 test_common-lib.sh</pre> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2010/01/25/F01common.lib-v0.22#rev-pnote-20-1" id="pnote-20-1">1</a>] Voir définition <a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC" hreflang="fr">ici</a>.</p> <p>[<a href="http://dev.flyou.net/post/2010/01/25/F01common.lib-v0.22#rev-pnote-20-2" id="pnote-20-2">2</a>] Mes fonctions préférées sont sans aucun doute : <code>sprintf</code> et les <code>*trim</code>.</p></div> http://dev.flyou.net/post/2010/01/25/F01common.lib-v0.22#comment-form http://dev.flyou.net/feed/atom/comments/20 Mon petit environnement IRC urn:md5:80a1c675a423d710899bbbfce18c5a04 2010-01-19T01:25:00+01:00 2010-04-29T19:25:20+02:00 Flyounet Outils & Développements IRCIRSSIScriptShellUnix <h3>Mais c'est quoi donc&nbsp;?</h3> <p>Depuis pas mal de temps, je codouille<sup>[<a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC#pnote-18-1" id="rev-pnote-18-1">1</a>]</sup> en Perlouille<sup>[<a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC#pnote-18-2" id="rev-pnote-18-2">2</a>]</sup> pour le plus beau, le trop méga génial hyper <acronym><img src="/themes/default/smilies/lol.png" alt="LOL" class="smiley" /></acronym>&nbsp;; j'ai bien sûr nommé <a href="http://www.irssi.org" hreflang="en" title="Un client IRC qui le vaut bien">IRSSI</a>.<br /> Comme je n'ai pas forcément Internet partout où je vais, il faut bien que je puisse continuer à Perlouiller, du coup ci-dessous une petite explication pour se faire un environnement <a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat" hreflang="en" title="Et non IRC, ce n&#039;est pas trop Old School !">IRC</a> quickly.</p> <h3>De quoi a-ton besoin&nbsp;?</h3> <ul> <li>D'un <a href="http://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients" hreflang="en" title="Comparaison entre clients IRC">Client IRC</a>, logiquement <a href="http://www.irssi.org" hreflang="en" title="Un bon client IRC bien light et bien extensible">IRSSI</a>,</li> <li>D'un <a href="http://en.wikipedia.org/wiki/Comparison_of_IRC_daemons" hreflang="en" title="Comparaison entre serveurs IRC">Serveur IRC</a>, soit du lourd, du velu comme <a href="http://www.unrealIRCd.com/" hreflang="en" title="Plus que beaucoup utilisé">UnrealIrcd</a>, soit du romantique extravagant avec une once de sophistication et surtout du Poil partout&nbsp;: <a href="http://www.inspircd.org/" hreflang="en" title="Rien qu&#039;en disant le nom, j&#039;en ai mis partout">inspIRCd</a> (celui que j'ai choisi pour aujourd'hui),</li> <li>D'un <a href="http://en.wikipedia.org/wiki/IRC_bot" hreflang="en" title="Aucun rapport avec la série TV">Bot</a> faisant du <a href="http://en.wikipedia.org/wiki/XDCC" hreflang="en" title="eXtended DCC">XDCC</a>, donc pour l'occasion&nbsp;: <a href="http://iroffer.org/" hreflang="en" title="Un vieux truc qui date de 2005 mais fonctionnel">Iroffer</a>.</li> <li>D'un Linux, et pour ma part du répertoire <code>/usr/local/src/IRC_dev/</code>.</li> </ul> <h3>Comment builder le serveur&nbsp;?</h3> <h2>Le Build en lui même&nbsp;:</h2> <pre>./configure --prefix=/usr/local/src/IRC_dev/inspIRCd make clean &amp;&amp; make &amp;&amp; make install</pre> <p>Pour résumer, on indique où vont se trouver les binaires après installation, on compile et on installe. Comptez 19 bonnes minutes sur mon Athlon mobile 2000+, mes 512 MiB de RAM et dont la RunQueue est en moyenne de 2 en permanence, ou alors 7 minutes sur un Sempron 3000+ qui fait semblant de router des paquets IP.</p> <h2>La configuration&nbsp;:</h2> <p>Si c'est pour du test, il n'y a pas grand chose à modifier&nbsp;; vous copiez le fichier <code>inspircd.conf.example</code> en <code>inspircd.conf</code> dans le sous-répertoire <code>conf/</code> et vous modifiez les quelques lignes suivantes&nbsp;:</p> <pre>name="localhost.localdomain" description="Mon Test IRC" name="Me" nick="myUglyNick" address="127.0.0.1"</pre> <p>Pour la partie <code>secret</code>&nbsp;:</p> <pre>allow="192.168.36.15"</pre> <p>Pour la partie <code>main</code>&nbsp;:</p> <pre>allow="127.0.0.1"</pre> <p>Et n'oubliez pas de commenter les lignes qui commencent par <code>&lt;die value="...</code>.</p> <h2>Le test&nbsp;:</h2> <p>Comme je suis pas un relou, d'une part je ne laisse pas ce genre de programme tourner en <code>root</code>, mon user me suffit, et d'autre part je le fais tourner en <code>debug</code> dans un <code>screen</code><sup>[<a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC#pnote-18-3" id="rev-pnote-18-3">3</a>]</sup>.</p> <pre>$ ./inspircd help Usage: ./inspircd (start|version|restart|checkconf|status|cron|help|rehash|stop) Developer arguments: (screendebug|valdebug|debug|valdebug-unattended|screenvaldebug)</pre> <p>Exemple&nbsp;:</p> <pre>$ ./inspircd debug [...] InspIRCd is now running as 'localhost.localdomain'[559] with 1024 max open sockets Mon Jan 18 23:51:47 2010: Keeping pseudo-tty open as we are running in the foreground. Mon Jan 18 23:51:47 2010: Startup complete as 'localhost.localdomain'[559], 1024 max open sockets</pre> <h3>Comment builder le Bot&nbsp;?</h3> <h2>Le Build en lui même&nbsp;:</h2> <p>D'abord je modifie le <code>Makefile.config</code> pour avoir mon installation où je veux. Je change <code>INSDIR = /usr/local/src/IRC_dev/iroffer</code>.</p> <pre>mkdir /usr/local/src/IRC_dev/iroffer ./Configure make clean &amp;&amp; make &amp;&amp; sudo make install sudo chown monuser:mongroup /usr/local/src/IRC_dev/iroffer/iroffer</pre> <p>Faites fi de tout ces Warning qui font chier, et vous aurez un beau binaire.</p> <h2>La configuration&nbsp;:</h2> <p>Si c'est pour du test, il n'y a pas grand chose à modifier&nbsp;; vous copiez le fichier <code>sample.conf</code> en <code>tupeuxpastest.conf</code> dans le répertoire du binaire et vous modifiez les quelques lignes suivantes&nbsp;:</p> <pre>connectionmethod direct server 127.0.0.1 channel #myTest -plist 2 -plistoffset 3 -pformat full user_nick mybotDCC user_realname My Bot # Pour la valeur suivante, c'est à voir pour vos tests downloadhost *!*@* # C'est du local overallmaxspeed 600 #adminpass montest (généré avec iroffer -c) adminpass Hffrt/W5SUFZk adminhost *!~me@*.domain.com adminhost *!me@192.168.10.# timestampconsole</pre> <h2>Le test&nbsp;:</h2> <p>Comme je suis pas un relou, d'une part je ne laisse pas ce genre de programme tourner en <code>root</code>, mon user me suffit, et d'autre part je le fais tourner en <code>debug</code> dans un <code>screen</code><sup>[<a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC#pnote-18-4" id="rev-pnote-18-4">4</a>]</sup>.</p> <pre>$ ./iroffer ./iroffer: no configuration file specifed iroffer v1.3.b11 [20051213023024] by PMG, see http://iroffer.org/ Usage: ./iroffer [-vc] [-bdkns] [-u user] [-t dir] configfile [ configfile ... ] -v Print version and exit. -c Generate encrypted password and exit. -d Increase debug level -b Go to background mode -k Attempt to adjust ulimit to allow core files -n No colors in foreground mode -s No screen manipulation in foreground mode -u user Run as user (you have to start as root). -t dir Chroot to dir (you have to start as root).</pre> <p>Exemple&nbsp;:</p> <pre>$ ./iroffer -d tupeuxpastest.config [...] ** 2010-01-19-00:24:04: Attempting Connection to 127.0.01 (direct) ** 2010-01-19-00:24:04: Connecting to 127.0.0.1:6667 ** 2010-01-19-00:24:04: ircserver socket = 5 ** 2010-01-19-00:24:04: Server Connection Established, Logging In ** 2010-01-19-00:24:04: ourip = 127.0.0.1 ** 2010-01-19-00:24:04: &lt;SND&lt;: NICK mybotDCC [...] ** 2010-01-19-00:24:54: &lt;SND&lt;: PING localhost.localdomain ** 2010-01-19-00:24:54: &gt;IRC&gt;: :localhost.localdomain PONG localhost.localdomain :localhost.localdomain [ Stat: 0/20 Sls, 0/10 Q, 0.0K/s Rcd, 0 SrQ (Bdw: 0K, 0.0K/s, 0.0K/s Rcd) ] [ iroffer (mybotDCC) &gt;</pre> <h3>Comment builder le client&nbsp;?</h3> <p>M'en fous&nbsp;! Un <code>sudo apt-get install irssi</code> m'a suffi.</p> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC#rev-pnote-18-1" id="pnote-18-1">1</a>] Concaténation du verbe <em>coder</em> et du verbe <em>merdouiller</em>.</p> <p>[<a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC#rev-pnote-18-2" id="pnote-18-2">2</a>] Concaténation de <em>Perl</em> (langage de programmation) et de <em>couilles</em> (diminutif de boulettes, et dans de nombreux cas aussi appelées "Brave merde").</p> <p>[<a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC#rev-pnote-18-3" id="pnote-18-3">3</a>] Une des meilleures commande au monde...</p> <p>[<a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC#rev-pnote-18-4" id="pnote-18-4">4</a>] Une des meilleures commande au monde... Sans déconner, j'ai grave l'impression d'un déjà vu, non ?!</p></div> http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC#comment-form http://dev.flyou.net/feed/atom/comments/18 Quelle est mon IP ? v0.02 urn:md5:005e3c478d499274c2b9d2dd59821c9f 2008-05-11T02:31:00+02:00 2008-05-11T02:37:01+02:00 Flyounet Outils & Développements "Quelle est mon IP"PHP <p>C'est souvent une question que ma famille se pose, et donc me pose. Je leur ai fait un petit bout de code que je vous livre <a href="http://dev.flyou.net/ip" hreflang="fr" title="Petite application donnant l&#039;information voulue">ici</a>.</p> http://dev.flyou.net/post/2008/05/11/Quelle-est-mon-IP-v002#comment-form http://dev.flyou.net/feed/atom/comments/10 AnalDup.sh v0.21 (anciennement allcompare.sh) urn:md5:42e97141941c93057853593e0a6e52c2 2008-04-10T22:41:00+02:00 2010-04-29T19:25:21+02:00 Flyounet Outils & Développements allcompareAnalDupScriptShell <h2>Script shell pour trouver vos fichiers dupliqués.</h2> <p>Cette mise à jour (et ce changement de nom depuis la version 0.20) est un début de la mise en place de la limitation du nombre de traitements concurrents.</p> <p>Cette version est remplie de débug. Cependant, elle est fonctionnelle et la limite de fonctionne pour l'instant que sur la recherche des fichiers. Pour contrôler cette fonction, l'argument <code>-y</code> sera utilisé.</p> <h3>Un peu d'aide&nbsp;:</h3> <pre>~# ./allcompare.sh -h [-h] [-P] [-M|-S] [-R] [-i bytes] [-I bytes] [-o filename] [-t directory] [-f filename|-s FS]* -h this help -K do not remove temporary folder at end -Q do not write any information (quiet mode) (only errors will be written) -P do not parallelize research -M use md5sum for file analyze -S use sha1sum for file analyze (default) -R don't search recursivly -y max proc. number of maximum concurrent process (default 10) -i bytes don't search files that have more than -i bytes -I bytes don't search files that have less than -I bytes -o filename write results to this file -t directory use this directory as prefix for temporary files -f filename find FS in the file instead of argument -s FS filesystem are separated by a semi colon * Mandatory field</pre> <p>A vu de nez, ça devrait se comprendre tout seul, mais bon, dans le doute...<br /> Le <code>-K</code> est utile si on veut débugguer,<br /> Le <code>-Q</code> est utile pour les batch,<br /> Le <code>-P</code> existe mais c'est dommage de l'utiliser, ça ralenti grandement la recherche,<br /> Le <code>-M</code> est là si le md5sum n'existe pas...<br /> Le <code>-R</code> est là pour les cochons qui mettent tout dans le même répertoire,<br /> Le <code>-y</code> est utile pour contrôler le nombre maximum de processus devant tourner simultanément (valeur par défaut 10),<br /> Les <code>-i</code> et <code>-I</code><sup>[<a href="http://dev.flyou.net/post/2008/04/10/AnalDupsh-v021-anciennement-allcomparesh#pnote-9-1" id="rev-pnote-9-1">1</a>]</sup> permettent de limiter la recherche sur des fichiers d'une taille donnée,<br /> Le <code>-o</code> est là pour indiquer un fichier de sortie,<br /> Le <code>-t</code> m'est utile pour les batchs (maintenant ça peut servir à quelqu'un d'autre),<br /> Le <code>-f</code> ressemble au <code>-s</code> sauf qu'il faut le mettre dans un fichier,<br /> Il est obligatoire d'avoir au le <code>-f</code> ou le <code>-s</code>...</p> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2008/04/10/AnalDupsh-v021-anciennement-allcomparesh#rev-pnote-9-1" id="pnote-9-1">1</a>] Minuscule et majuscule...</p></div> http://dev.flyou.net/post/2008/04/10/AnalDupsh-v021-anciennement-allcomparesh#comment-form http://dev.flyou.net/feed/atom/comments/9 allcompare.sh v0.15 (Blennorragie) urn:md5:bdb0bb2ad5dc34be35932086c8d2eebe 2008-04-08T23:37:00+02:00 2008-04-10T22:46:03+02:00 Flyounet Outils & Développements allcompareScriptShell <h2>Permettre à tous vos petits fichiers en double<sup>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#pnote-7-1" id="rev-pnote-7-1">1</a>]</sup> d'être trouvés (même s'ils n'ont pas le même nom).</h2> <p>Je me doute qu'il doit bien exister une tétra chier de programme du même genre, mais ceux que j'ai pu trouver étaient soit graphiques, soit il me manquait quelque chose. Comme j'en ai principalement eu besoin au boulot pour mes serveurs, je suis sûr qu'il tourne sous Linux (et normalement il fonctionne encore sur AIX).</p> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#rev-pnote-7-1" id="pnote-7-1">1</a>] Triple, quadruple, quintuple, sextuple, et j'en passe...</p></div> <h3>Principe de fonctionnement et intérêt&nbsp;:</h3> <p>La plupart des outils que j'ai pu tester étaient assez lents dans leur fonctionnement. Le présent script étant principalement utilisé sur des serveurs, j'ai tenté d'optimiser un peu la recherche et l'analyse. <br />Ainsi, lorsque l'on cherche à comparer le contenu de répertoires il peut arriver que ces répertoires soient sur des disques physiques différents.</p> <p>Afin de rechercher plus vite on peut lancer plusieurs processus simultanéement. Le problème est que si on lance ces processus sur le même disque, on va se retrouver avec une contention au niveau du disque. C'est pourquoi le script tente de vérifier si les répertoires se trouvent ou sur le même disque. Dans l'<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#ExempleUtilisation" hreflang="fr">exemple</a> ci-dessous, plusieurs répertoires sont indiqués en ligne de commande. Comme ces répertoires sont sur des disques différents, le script traitera en parallèle les trois pour la recherche de fichiers<sup>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#pnote-7-1" id="rev-pnote-7-1">1</a>]</sup>.</p> <h3>Utilisation&nbsp;:</h3> <ul> <li>Première nécessité&nbsp;: Un shell digne de ce nom&nbsp;! (KSH, Bash, Tcsh, Zsh, etc.)<sup>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#pnote-7-2" id="rev-pnote-7-2">2</a>]</sup>.</li> <li>Dernière nécessité<sup>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#pnote-7-3" id="rev-pnote-7-3">3</a>]</sup>&nbsp;: Lancer votre ligne de commande.</li> </ul> <h3>Exemple d'utilisation&nbsp;: <a name="ExempleUtilisation"></a></h3> <pre>~# ./allcompare.sh -o ./Results4.comp -s '/mnt/partage/::/mnt/stockage/::/mnt/grosvol/' -i 50 + Verifications... Done - sha1sum will be used. - Destination file will be : ./Results4.comp - Temp. dir. will be /tmp/allcompare.sh.24559 + Analyse arguments... Done + Tri des FS... Done + Recherche des fichiers... sur /mnt/partage/... Done sur /mnt/grosvol/... Done sur /mnt/stockage/... Done Recherche des fichiers... Done + Recherche des doublons par taille... Files: 4470 - 0byte: 865 - Uniques: 0 - Doublons: 49 - Errors: 1 ... Done + Analyse des doublons... 0%....10%....20%....30%....40%......55%....65%....75%....85%....95%.100% Done</pre> <h3>Exemple de résultat (avec la commande utilisée ci-dessus)&nbsp;:</h3> <pre>################################################################################ 1) 2 fichiers de 49 octets [hash : 12cf188999d9640f9af759d6b1c601535da87398] 1) /mnt/stockage/Sauvegarde_LocoWeb/20070404/www.flyou.net/simple/modules/FCKeditorX/FCKeditor/editor/images/arrow_ltr.gif 2) /mnt/stockage/loco/www.flyou.net/simple/modules/FCKeditorX/FCKeditor/editor/images/arrow_ltr.gif</pre> <pre>################################################################################ 2) 8 fichiers de 49 octets [hash : 1ddefee04dc9e9b2576dc34eebcfa3de4aa82af9] 1) /mnt/stockage/Xavier/programme/Appz/winvnc/setup.lid 2) /mnt/stockage/Xavier/programme/x86/setup/setup.lid 3) /mnt/grosvol/Xavier/stockage/System Volume Information/_restore{B913CFC4-85E1-4B1A-8199-ED123641429C}/RP1434/A0915362.lid 4) /mnt/grosvol/Xavier/stockage/System Volume Information/_restore{B913CFC4-85E1-4B1A-8199-ED123641429C}/RP1434/A0915369.lid 5) /mnt/grosvol/Xavier/stockage/System Volume Information/_restore{B913CFC4-85E1-4B1A-8199-ED123641429C}/RP1434/A0920147.lid 6) /mnt/grosvol/Xavier/stockage/System Volume Information/_restore{B913CFC4-85E1-4B1A-8199-ED123641429C}/RP1434/A0919736.lid 7) /mnt/grosvol/Xavier/stockage/Applications/Ekod21.F/SETUP16.AN/SETUP.LID 8) /mnt/grosvol/Récupération P/WebSphere/AppServer406/binaire/setup.lid</pre> <pre>################################################################################ 5) 4 fichiers de 49 octets [hash : 356359c447b5bedfcae514d59a0841c7a0c7fe19] 1) /mnt/partage/NoteBook/C/temp/coppermine-1.1.0/themes/water_drop/images/bg.gif 2) /mnt/stockage/Sauvegarde_LocoWeb/20070404/www.flyounet.net/Gally/themes/water_drop/images/bg.gif 3) /mnt/stockage/Vaio/Vaio_D/G.Pourcel/Mes documents/www/gpourcel/www.flyounet.net/Gally/themes/water_drop/images/bg.gif 4) /mnt/grosvol/MovieX/_Sauvegarde_PC_/FTP/www.flyounet.net/Gally/themes/water_drop/images/bg.gif</pre> <h3>Un peu d'aide&nbsp;:</h3> <pre>~# ./allcompare.sh -h [-h] [-P] [-M|-S] [-R] [-i bytes] [-I bytes] [-o filename] [-t directory] [-f filename|-s FS]* -h this help -K do not remove temporary folder at end -Q do not write any information (quiet mode) (only errors will be written) -P do not parallelize research -M use md5sum for file analyze -S use sha1sum for file analyze (default) -R don't search recursivly -i bytes don't search files that have more than -i bytes -I bytes don't search files that have less than -I bytes -o filename write results to this file -t directory use this directory as prefix for temporary files -f filename find FS in the file instead of argument -s FS filesystem are separated by a semi colon * Mandatory field</pre> <p>A vu de nez, ça devrait se comprendre tout seul, mais bon, dans le doute...<br /> Le <code>-K</code> est utile si on veut débugguer,<br /> Le <code>-Q</code> est utile pour les batch,<br /> Le <code>-P</code> existe mais c'est dommage de l'utiliser, ça ralenti grandement la recherche,<br /> Le <code>-M</code> est là si le md5sum n'existe pas...<br /> Le <code>-R</code> est là pour les cochons qui mettent tout dans le même répertoire,<br /> Les <code>-i</code> et <code>-I</code><sup>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#pnote-7-4" id="rev-pnote-7-4">4</a>]</sup> permettent de limiter la recherche sur des fichiers d'une taille donnée,<br /> Le <code>-o</code> est là pour indiquer un fichier de sortie,<br /> Le <code>-t</code> m'est utile pour les batchs (maintenant ça peut servir à quelqu'un d'autre),<br /> Le <code>-f</code> ressemble au <code>-s</code> sauf qu'il faut le mettre dans un fichier,<br /> Il est obligatoire d'avoir au le <code>-f</code> ou le <code>-s</code>...</p> <h3>Tu aimes l'anglais et ce bout de script&nbsp;?</h3> <p>Engages toi et deviens traducteur officiel, de ce billet, de ce script qui marchotte et du reste du site. Il est cependant nécessaire que tu répondes à quelques critères afin que s'avancent vers toi la gloire, la félicité, le bonheur, les femmes, par contre il n'y a pas d'argent à se faire...&nbsp;:</p> <ul> <li>Moins de 29 ans et demi,</li> <li>Bac +8 minimum,</li> <li>19 ans trois quart de pratique dans la traduction français - anglais,</li> <li>3d4+3 ans de pratique dans la traduction anglais - français,</li> <li>6 ans de pratique dans les massages,</li> <li>Ouvert(e) d'esprit,</li> <li>Prenant des initatives,</li> <li>Sentant bon la fraise.</li> </ul> <p>Il est évident que si tu t'engages en étant brune<sup>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#pnote-7-5" id="rev-pnote-7-5">5</a>]</sup>, et bien de ta personne ce sera un gros plus. Puisque, j'écris souvent des scripts (qui ne servent pas forcément), je peux potentiellement avoir plein de poste à pourvoir dans le même domaine.</p> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#rev-pnote-7-1" id="pnote-7-1">1</a>] Si j'avais utilisé ce script seulement sur <code>/mnt</code> le script n'aurait lancé qu'un seul processus.</p> <p>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#rev-pnote-7-2" id="pnote-7-2">2</a>] Mieux vaut du <acronym title="Korn Shell">KSH</acronym>; j'ai pas eu le temps de tester ailleurs</p> <p>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#rev-pnote-7-3" id="pnote-7-3">3</a>] Ah bon déjà ? Bah, oui ! Sauf si vous préférez la version longue avec configuration de fichiers...</p> <p>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#rev-pnote-7-4" id="pnote-7-4">4</a>] Minuscule et majuscule...</p> <p>[<a href="http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#rev-pnote-7-5" id="pnote-7-5">5</a>] Si ton prénom est Gwendoline, je t'épouse de suite et je vire ma femme !</p></div> http://dev.flyou.net/post/2008/04/08/allcomparesh-v015-Blennorragie#comment-form http://dev.flyou.net/feed/atom/comments/7 Fly_4Years v0.03 urn:md5:30f032068c0f962ed327126ac76f2bd0 2005-02-26T22:13:00+01:00 2008-01-25T23:22:09+01:00 Flyounet Outils & Développements Classe PHPFly_4Years <h2>Retourne le temps restants jusqu'à une date donnée.</h2> <p>Puisque G.W. Bush a été ré-élu, je voulais savoir combien de temps il allait falloir attendre avant son départ.</p> <p>Cette Classe peut donc retourner le nombre de secondes, de minutes, d'heures ou de jours restant avant une date précise (ou bien un tableau contenant ces valeurs).</p> <h3>Comment utiliser cette classe <acronym>PHP</acronym>.</h3> <pre>&lt;?php include("class_fly_4years.inc.php"); $lo_4Y = new Fly_4Years; $lt = $lo_4Y-&gt;F4Y_Get_Array_For_Free(); # Afficher le temps restant : print 'Il reste '.$lt['jour'].' jour(s), '.$lt['heure'].' heures, '.$lt['minute'].' minutes, '.$lt['seconde'].' secondes.'; # Afficher le nombre de secondes total restantes : print $lo_4Y-&gt;F4Y_Get_Secondes_For_Free().' secondes'; # Afficher le nombre de minutes total restantes : print $lo_4Y-&gt;F4Y_Get_Minutes_For_Free().' minutes'; # Afficher le nombre de heures total restantes : print $lo_4Y-&gt;F4Y_Get_Hourss_For_Free().' heures'; # Afficher le nombre de jours total restants : print $lo_4Y-&gt;F4Y_Get_Days_For_Free().' jours'; ?&gt;</pre> <p>Le plus parlant étant quand même de consulter le code source de la classe.</p> <div class="footnotes"><h4>Notes</h4><p>Les fonctions ont été renommées entre les versions 0.02 et 0.03. Elles sont maintenant préfixées par <em>F4Y_</em>.</p></div> <h3>Exemples&nbsp;:</h3> <p>Quelques exemples sur les possibilité de cette classe.</p> <p>En français : <em><script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php?balise=no"></script></em>, en Anglais : <em><script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php?balise=no&amp;l=en"></script></em>, le nombre d'heures restantes : <em><script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php?balise=no&amp;t=h"></script></em> ou de minutes : <em><script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php?balise=no&amp;t=m"></script></em> et encore j'abrège.</p> <p>Vous pouvez consulter la liste des options soit dans le code source soit en regardant la liste des <a href="http://dev.flyou.net/post/2005/02/26/Fly_4Years-v003#Bonus" hreflang="fr">Bonus</a>.</p> <h3>Bonus :<a name="Bonus"></a></h3> <p>Une autre façon d'utiliser la classe.</p> <p>Puisque tout le monde n'a pas envie d'utiliser <acronym>PHP</acronym>, ou les compétences, ou le temps, voici quelques ajouts que vous pouvez faire sur vos sites&nbsp;; simplement en ajoutant un bout de code directement dans vos pages (X)<acronym>HTML</acronym>&nbsp;:</p> <strong><script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php"></script></strong> <p>Pour avoir le résultat suivant&nbsp;: , vous pouvez utiliser le morceau de script suivant directement dans votre (X)<acronym>HTML</acronym>&nbsp;:</p> <pre>&lt;script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php"&gt;&lt;/script&gt;</pre> <p>Vous pouvez utilisez bon nombre de paramètres avec ce script&nbsp;:</p> <ul> <li><code>t=[s,m,h,d]</code> : indique le type de résultat désiré<sup>[<a href="http://dev.flyou.net/post/2005/02/26/Fly_4Years-v003#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>,</li> <li><code>l=[en,fr]</code> : indique la langue dans laquelle sera affiché le résultat<sup>[<a href="http://dev.flyou.net/post/2005/02/26/Fly_4Years-v003#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>,</li> <li><code>np=no</code> : indique que le texte avant le résultat sera supprimé<sup>[<a href="http://dev.flyou.net/post/2005/02/26/Fly_4Years-v003#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup>,</li> <li><code>balise=no</code> : indique que résultat ne sera pas encadré par la balise <code>&lt;p&nbsp;class="cFly_4Years"&gt;...&lt;/p&gt;</code><sup>[<a href="http://dev.flyou.net/post/2005/02/26/Fly_4Years-v003#wiki-footnote-4" id="rev-wiki-footnote-4">4</a>]</sup>,</li> </ul> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2005/02/26/Fly_4Years-v003#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php?balise=no&amp;t=s"></script> ou <script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php?balise=no&amp;t=m"></script> ou <script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php?balise=no&amp;t=h"></script> ou <script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php?balise=no&amp;t=d"></script></p> <p>[<a href="http://dev.flyou.net/post/2005/02/26/Fly_4Years-v003#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php?balise=no&amp;l=en"></script></p> <p>[<a href="http://dev.flyou.net/post/2005/02/26/Fly_4Years-v003#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <script type="text/javascript" src="http://dev.flyou.net/Fly_4Years/fly_4years.php?balise=no&amp;t=h&amp;np=no"></script></p> <p>[<a href="http://dev.flyou.net/post/2005/02/26/Fly_4Years-v003#rev-wiki-footnote-4" id="wiki-footnote-4">4</a>] L'ensemble de ces exemples utilise ce paramètre.</p> </div> <h3>Consulter l'ancienne version de cette page :<a name="AncienSite"></a></h3> <p><a href="http://dev.flyou.net/Fly_4Years/" hreflang="fr" title="Page statique de l&#039;ancienne version.">Version précédente</a></p> http://dev.flyou.net/post/2005/02/26/Fly_4Years-v003#comment-form http://dev.flyou.net/feed/atom/comments/2 Fly_MyCpt v0.09 urn:md5:b497b2cf6389411dddd2fb273f907ffb 2004-01-27T18:12:00+01:00 2008-01-16T02:00:57+01:00 Flyounet Outils & Développements Classe PHPFly_MyCptStatistiques <h2>Retourne le compte de visite/visiteur d'un site.</h2> <p>Il est possible à tout instant de connaitre certaines statistiques du site&nbsp;: Nombre de pages vues pour une journée ou plus, nombre de visites, pour une page donnée ou pour toutes les pages, etc.</p> <p>Les calculs sont faits relativement simplement&nbsp;: On vérifie si l'utilisateur est venu sur le site moins d'une demi-heure auparavant (30 minutes configurables), si oui on augmente le nombre de pages vues. Sinon, on ajoute une visite. Si l'utilisateur est venu moins de 3 minutes (configurables) auparavant, on considère que l'utilisateur était déjà là, sinon on ajoute un utilisateur.</p> <p>La classe utilise une base de données <a href="http://www.mysql.com/" hreflang="en" title="MySQL&nbsp;: Serveur de base de données">MySQL</a>. Cependant, les appels à la base étant mis en fonction, il est aisé de changer le type de base de données.</p> <h3>Utilisation :<a name="Utilisation"></a></h3> <p>Comment utiliser cette classe <acronym>PHP</acronym>.</p> <p>La classe peut aisément s'utiliser.</p> <pre> &lt;?php /* Il est nécessaire de définir 'wmCoinCoin' pour que la classe soit chargée. D'ailleurs, il est vivement recommandé de modifier le nom de cette définition. */ define('wmCoinCoin', true); include_once('./fly_mycpt.inc.php'); $go_cnx=new Fly_MyCpt(); /* Ajoute la page courante à la liste des pages vues. */ $go_cnx-&gt;MyCpt_AddPage(); /* Affiche le nombre de visites/visiteurs. */ print 'Nombre de Visiteurs : '.$go_cnx-&gt;MyCpt_GetVisiteur().' - Nombre de Visites : '.$go_cnx-&gt;MyCpt_GetVisite(); ?&gt; </pre> <p>Il existe d'autres fonctions permettant d'afficher le nombre de visites/visiteurs pour la page vue.</p> <h3>Exemples :<a name="Exemples"></a></h3> <p>Quelques exemples sur les possibilité de cette classe.</p> <p>Autant voir la classe et regarder juste au dessus <a href="http://dev.flyou.net/post/2004/01/27/Fly_MyCpt-v009#Utilisation" hreflang="fr">comment l'utiliser</a>.</p> <p>Pour la version v0.03, les fonctions suivantes ont été ajoutées&nbsp;:</p> <pre> MyCpt_GetVisite_Script(false) : 15699 Nb visite pour tout le site. MyCpt_GetVisite_Script(true) : 15034 Nb visite pour cette page. MyCpt_GetVisite_Script(false,1200351600) : 66 Idem pour aujourd'hui. MyCpt_GetVisite_Script(true,1200351600) : 63 Idem pour aujourd'hui. MyCpt_GetPage_Script(false) : 26547 Nb de pages vues pour tout le site. MyCpt_GetPage_Script(true) : 25718 Nb de vues pour cette page. MyCpt_GetPage_Script(false,1200351600) : 184 Idem pour aujourd'hui. MyCpt_GetPage_Script(true,1200351600) : 181 Idem pour aujourd'hui. MyCpt_GetVisiteur_Script(false) : 1 Utilisateurs connectés à ce site. MyCpt_GetVisiteur_Script(true) : 1 Utilisateurs connectés à cette page. </pre> <h3>Consulter l'ancienne version de cette page :<a name="AncienSite"></a></h3> <p><a href="http://dev.flyou.net/Fly_MyCpt/" hreflang="fr" title="Page statique de l&#039;ancienne version.">Version précédente</a></p> http://dev.flyou.net/post/2004/01/27/Fly_MyCpt-v009#comment-form http://dev.flyou.net/feed/atom/comments/1