Aller au contenu | Aller au menu | Aller à la recherche

Flyou.net [Dev] : Développements

Outils & Développements

Fil des billets - Fil des commentaires

lundi 25 janvier 2010

F01common.lib v0.22

Après plusieurs mois à codouiller[1] des petits bouts de script Shell, j'ai décidé d'en faire librairie : F01common.lib.

J'ai tenté de la rendre la plus indépendante possible de sed et awk qui sont assez incontournable[2]. Elle fonctionne sous bash ou ksh.

Ci-dessous un aperçu des variables et fonctions : common.lib_v0.22.png

En annexes sont fournis les fichiers indépendants, ainsi qu'une archive regroupant le tout.
Les fichiers sont :

  • common.lib.README : Une micro documentation,
  • common.lib_v0.22 : La librairie Shell,
  • common.lib_v0.22.mm : La liste de fonctions et variables sous forme de fichier Free(Mind|Plane),
  • common.lib_v0.22.png : La liste de fonctions et variables sous forme de fichier image,
  • common.lib_v0.22.tar.bz2 : L'archive qui contient tous les fichiers,
  • test_common-lib.conf : Un fichier de configuration pour exécuter le script de test,
  • test_common-lib.sh : Un script de test, qui exécute quasiment toutes les fonctions de la librairie.

Les md5 des fichiers :

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

Les sha1 des fichiers :

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

Notes

[1] Voir définition ici.

[2] Mes fonctions préférées sont sans aucun doute : sprintf et les *trim.

mardi 19 janvier 2010

Mon petit environnement IRC

Mais c'est quoi donc ?

Depuis pas mal de temps, je codouille[1] en Perlouille[2] pour le plus beau, le trop méga génial hyper LOL ; j'ai bien sûr nommé IRSSI.
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 IRC quickly.

De quoi a-ton besoin ?

  • D'un Client IRC, logiquement IRSSI,
  • D'un Serveur IRC, soit du lourd, du velu comme UnrealIrcd, soit du romantique extravagant avec une once de sophistication et surtout du Poil partout : inspIRCd (celui que j'ai choisi pour aujourd'hui),
  • D'un Bot faisant du XDCC, donc pour l'occasion : Iroffer.
  • D'un Linux, et pour ma part du répertoire /usr/local/src/IRC_dev/.

Comment builder le serveur ?

Le Build en lui même :

./configure --prefix=/usr/local/src/IRC_dev/inspIRCd
make clean && make && make install

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.

La configuration :

Si c'est pour du test, il n'y a pas grand chose à modifier ; vous copiez le fichier inspircd.conf.example en inspircd.conf dans le sous-répertoire conf/ et vous modifiez les quelques lignes suivantes :

name="localhost.localdomain"
description="Mon Test IRC"
name="Me"
nick="myUglyNick"
address="127.0.0.1"

Pour la partie secret :

allow="192.168.36.15"

Pour la partie main :

allow="127.0.0.1"

Et n'oubliez pas de commenter les lignes qui commencent par <die value="....

Le test :

Comme je suis pas un relou, d'une part je ne laisse pas ce genre de programme tourner en root, mon user me suffit, et d'autre part je le fais tourner en debug dans un screen[3].

$ ./inspircd help
Usage: ./inspircd (start|version|restart|checkconf|status|cron|help|rehash|stop)
Developer arguments: (screendebug|valdebug|debug|valdebug-unattended|screenvaldebug)

Exemple :

$ ./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

Comment builder le Bot ?

Le Build en lui même :

D'abord je modifie le Makefile.config pour avoir mon installation où je veux. Je change INSDIR = /usr/local/src/IRC_dev/iroffer.

mkdir /usr/local/src/IRC_dev/iroffer
./Configure
make clean && make && sudo make install
sudo chown monuser:mongroup /usr/local/src/IRC_dev/iroffer/iroffer

Faites fi de tout ces Warning qui font chier, et vous aurez un beau binaire.

La configuration :

Si c'est pour du test, il n'y a pas grand chose à modifier ; vous copiez le fichier sample.conf en tupeuxpastest.conf dans le répertoire du binaire et vous modifiez les quelques lignes suivantes :

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

Le test :

Comme je suis pas un relou, d'une part je ne laisse pas ce genre de programme tourner en root, mon user me suffit, et d'autre part je le fais tourner en debug dans un screen[4].

$ ./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).

Exemple :

$ ./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: <SND<: NICK mybotDCC
[...]
** 2010-01-19-00:24:54: <SND<: PING localhost.localdomain
** 2010-01-19-00:24:54: >IRC>: :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) >

Comment builder le client ?

M'en fous ! Un sudo apt-get install irssi m'a suffi.

Notes

[1] Concaténation du verbe coder et du verbe merdouiller.

[2] Concaténation de Perl (langage de programmation) et de couilles (diminutif de boulettes, et dans de nombreux cas aussi appelées "Brave merde").

[3] Une des meilleures commande au monde...

[4] Une des meilleures commande au monde... Sans déconner, j'ai grave l'impression d'un déjà vu, non ?!

dimanche 11 mai 2008

Quelle est mon IP ? v0.02

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 ici.

jeudi 10 avril 2008

AnalDup.sh v0.21 (anciennement allcompare.sh)

Script shell pour trouver vos fichiers dupliqués.

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.

Lire la suite...

mardi 8 avril 2008

allcompare.sh v0.15 (Blennorragie)

Permettre à tous vos petits fichiers en double[1] d'être trouvés (même s'ils n'ont pas le même nom).

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).

Notes

[1] Triple, quadruple, quintuple, sextuple, et j'en passe...

Lire la suite...

samedi 26 février 2005

Fly_4Years v0.03

Retourne le temps restants jusqu'à une date donnée.

Puisque G.W. Bush a été ré-élu, je voulais savoir combien de temps il allait falloir attendre avant son départ.

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).

Lire la suite...

mardi 27 janvier 2004

Fly_MyCpt v0.09

Retourne le compte de visite/visiteur d'un site.

Il est possible à tout instant de connaitre certaines statistiques du site : Nombre de pages vues pour une journée ou plus, nombre de visites, pour une page donnée ou pour toutes les pages, etc.

Les calculs sont faits relativement simplement : 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.

La classe utilise une base de données MySQL. Cependant, les appels à la base étant mis en fonction, il est aisé de changer le type de base de données.

Lire la suite...