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/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 - page 2

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

Flyou.net [Dev] : Développements

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 ?!

mercredi 16 septembre 2009

Transformer un bête fichier Texte (txt) en Portable Document Format (PDF)

Bien sûr on commence par un :

apt-get install a2ps

Puis on y va direct :

a2ps --columns=1 -B -R -T2 accountHebergement_tataJeanine.txt -o - | ps2pdf - accountHebergement_tataJeanine.pdf
  • Pour a2ps :
    • --columns=1 pour que ça remplisse la feuille,
    • -B pour ne pas avoir de Header,
    • -R pour forcer la mise en page en mode Portrait,
    • -T2 pour forcer les tabulations à 2 caractères,
    • -o - pour forcer l'envoi vers la sortie standard.
  • Pour ps2pdf :
    • - pour forcer la transformation de l'entrée standard.

mardi 8 septembre 2009

Webalizer et la compilation...

Pour mon boulot[1], j'ai un léger besoin de Webalizer. Du coup, plutôt que d'utiliser la version binaire[2], j'ai besoin d'en avoir une version static[3]. Donc voici la ligne de configuration pour mes tests :

./configure --prefix=/tmp/webalizer-bin --enable-static --with-geodb=/tmp/webalizer-bin/geodb --enable-geoip --enable-bz2

Je poursuis d'un make ; make install qui se banane comme une vieille bouse en m'insultant avec de vieilles vannes sur la lib pthread :

/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(os_addrinfo.o): In function `__os_getaddrinfo':
(.text+0x44): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(os_pid.o): In function `__os_id':
(.text+0x2a): undefined reference to `pthread_self'
/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(os_yield.o): In function `__os_yield':
(.text+0xc9): undefined reference to `pthread_yield'
/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_destroy':
(.text+0x38): undefined reference to `pthread_mutex_destroy'
/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_destroy':
(.text+0x5f): undefined reference to `pthread_cond_destroy'
/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_unlock':
(.text+0x159): undefined reference to `pthread_mutex_unlock'
/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_unlock':
(.text+0x1c4): undefined reference to `pthread_mutex_lock'
/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_unlock':
(.text+0x1e3): undefined reference to `pthread_cond_signal'
/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_lock':
(.text+0x278): undefined reference to `pthread_mutex_lock'

Pour faire simple la manip est de modifier le Makefile :
Avant :

LIBS            = -lGeoIP -lbz2 -ldb -lgd -lpng -lz -lm
WCMGR_LIBS      = -ldb

Après :

LIBS            = -lGeoIP -lbz2 -ldb -lgd -lpng -lz -lm -lpthread
WCMGR_LIBS      = -ldb -lpthread

Notes

[1] Oui ça m'arrive d'y aller...

[2] Qui est linkée dynamiquement.

[3] Oui, c'est une grande invention de décideur... Je compile sur ma machine et utilise les binaires générés sur une autre qui n'a pas les libs, car c'est une machine de Production... Cherchez pas, il n'y a pas de vrai raison derrière (et je ne dis pas cela parce que le décideur vient du monde Windows).

mercredi 10 septembre 2008

Comment savoir si mon AIX ou mon binaire est en 64bits ou 32bits ?

Comme je l'ai écrit dans ce billet Les joies du 64 bits sous AIX avec WebSphere voici quelques commandes à se rappeler :

  • Savoir si un binaire est compilé en 64 bits ?
$ dump -X64 -H path_to_binary
  • Savoir si un binaire est compilé en 32 bits ?
$ dump -X64 -H path_to_binary
  • Savoir si mon hardware est en mode 64 bits ?
$ getconf HARDWARE_BITMODE
  • Savoir si mon Kernel est en mode 64 bits ?
$ getconf KERNEL_BITMODE

mardi 19 août 2008

Passage à Dotclear 2.0.1

Plus d'infos dans le billet d'Olivier Meunier. Dotclear 2

Du coup, il faut vraiment que je fasse quelque chose pour mon problème de proxy avec l'admin de Dotclear.

Edit : Du coup, j'en profite pour ajouter des plugins :

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

mercredi 9 avril 2008

Problème de Proxy avec Dotclear 2

Dans le billet Problème de connexion si on passe par un firewall/proxy (??) (dans le forum [dc1] Bugs), il est fait mention de personnes ayant des difficultées car ils sont derrières une ferme de proxy (comme moi). Or les 3 peerings que j'ai au boulot font que le premier octet de l'IP de chaque proxy est différent.

Alors voici un petit hack de rien du tout :

Une rapide modification de inc/clearbricks/common/lib.http.php peut aider les utilisateurs de proxy.

En modifiant la fonction browserUID, on peut faire un petit hack qui baisse la sécurité en remplaçant la ligne :

$uid .= substr($ip,0,strpos($ip,'.'));

par

if ($ip != 'ip_de_proxy_1' && $ip != 'ip_de_proxy_2') {
        $uid .= substr($ip,0,strpos($ip,'.'));
}

Etant donné que j'ai du BlueCoat comme proxy, je me base aussi sur le HTTP_X_BLUECOAT_VIA et le HTTP_VIA pour ajouter un peu de sécurité quand les IP du Proxy sont utilisées.

Ma petite fonction browserUID est plus dans ce genre :

if ($ip != 'ip_de_proxy_1' && $ip != 'ip_de_proxy_2') {
        $uid .= substr($ip,0,strpos($ip,'.'));
} else {
        $uid .= $_SERVER[HTTP_X_BLUECOAT_VIA];
}

Cela n'est bien sûr applicable que si mon HTTP_X_BLUECOAT_VIA me renvoie toujours la même information pour un site donné (idem avec le HTTP_VIA).

Le mieux serait que je me sorte les doigts et que je modifie l'admin pour avoir un champ 'liste de proxy' et un autre champ qui contiendrait la variable d'environnement du serveur à utiliser à la place du REMOTE_ADDR pour chaque utilisateur.

Ce billet est aussi sur le forum de Dotclear.

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

dimanche 30 mars 2008

Améliorer son utilisation de SSH (client)

Comme beaucoup de monde, j'utilise énormément SSH et j'ai régulièrement quatre à cinq connexions vers la même machine. Que ce soit avec différents terminaux ou en utilisant GNU Screen le résultat est toujours le même plusieurs connexions réseau.

Lire la suite...

samedi 26 janvier 2008

Enfin une nouvelle version

Depuis que mon hébergeur[1] s'est éteint (ou bientôt...), j'ai finalement migré ailleurs (vers un pays de drogues et de président pas fini...).

Sachant que je n'ai pas réussi à faire créer le sous domaine loco.flyou.net, je migre les scripts fonctionnant chez Loco sur ce sous-domaine.

En espérant que j'ai le temps de régulièrement faire des mises à jour...

Notes

[1] Loco-Web

vendredi 28 septembre 2007

Que faire sous Windows quand on a pas de server X

Vous êtes dans une société qui ne vous permet pas d''utiliser XWin32 ? Qui ne veut pas payer la license pour un Exceed... Alors, plus beaucoup de solution...

Et pourtant c''est tout simple, ça se fait en 5 étape :

  • On va se chercher Xming[1],
  • On se télécharge les archives Xming et Xming-fonts sur SourceForge,
  • On s''installe Xming et Xming-fonts,
  • On modifie le lien d''appel à Xming en ajoutant -ac à la fin[2]
  • On lance Xming et voilà...

Et après ? On demande à PuTTY de forwardé X sur localhost, et un petit export DISPLAY qui va bien...

Notes

[1] Merci l'OpenSource.

[2] Exemple : "C:\\Program Files\\Xming\\Xming.exe" :0 -clipboard -multiwindow -ac

mardi 25 octobre 2005

MyPurgeLogs v0.05

Script Shell : Permet la rotation et la purge de Logs.

Un grand nombre de scripts en Perl existent sur Internet (ex : FreshMeat.net). Le problème est que l'on a souvent un script pour la rotation des logs et un autre pour la purge (quand un find ne se ballade pas tout seul dans une crontable, une vague odeur de déjà vue ?!).

Ce petit script a pour but de reconcillier les deux mondes en fournissant un seul script à lancer et un seul fichier de configuration pour tout gérer.

Notes

Ce script n'a pour l'instant été testé que sur AIX avec KSH. Si vous l'avez testé sur d'autres plateformes, n'hésitez pas à me faire un retour.

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

page 2 de 2 -