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

Flyou.net [Dev] : Développements

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

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