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

Flyou.net [Dev] : Développements

mardi 19 janvier 2010

Mon petit environnement IRC : Création de fichiers Pipo

Si vous avez utilisé le précédent billet pour vous faire la main sur le XDCC, alors vous risquez d'avoir, comme moi, besoin de fichiers volumineux.

Dans mon joli répertoire /usr/local/src/IRC_dev/XDCC_offers :

for i in $(seq 1 10); do let j=15*$i; let k=1024*$j; echo "File: $j - Size : $k"; dd if=/dev/urandom of=file_${j}MiB bs=1024 count=$k;done

Ligne qui peut se décomposer de la sorte :

for i in $(seq 1 10)
do
 let j=15*$i; let k=1024*$j
 echo "File: $j - Size : $k"
 dd if=/dev/urandom of=file_${j}MiB bs=1024 count=$k
done

Ce qui a pour résultat :

$ ls -lh | awk '{print $5 "\t" $NF}'|tail
105M	file_105MiB
120M	file_120MiB
135M	file_135MiB
150M	file_150MiB
15M	file_15MiB
30M	file_30MiB
45M	file_45MiB
60M	file_60MiB
75M	file_75MiB
90M	file_90MiB

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

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.

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

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