Pour ne pas me poser la question chaque fois :
iconv -f iso-8859-1 -t UTF-8 < monfichier.8859 > monfichier.utf8
jeudi 29 juillet 2010
Par Flyounet le jeudi 29 juillet 2010, 16:35
Pour ne pas me poser la question chaque fois :
iconv -f iso-8859-1 -t UTF-8 < monfichier.8859 > monfichier.utf8
jeudi 27 mai 2010
Par Flyounet le jeudi 27 mai 2010, 23:54
Vaste question qui ne me semble reposer que sur 3 réponses :
stat,file,readlink.stat :fly@Capote:~/tmp$ stat /tmp/totoz File: `/tmp/totoz' -> `/tmp/pipo' Size: 40 Blocks: 0 IO Block: 4096 lien symbolique Device: 808h/2056d Inode: 3744 Links: 1 Access: (0777/lrwxrwxrwx) Uid: ( 1000/ fly) Gid: ( 1000/ fly) Access: 2010-05-27 23:42:00.590730266 +0200 Modify: 2010-05-26 23:34:46.978029853 +0200 Change: 2010-05-26 23:34:46.978029853 +0200
On constate que le nom du fichier pointé est indiqué en première ligne. Donc, la ligne suivante devrait suffire :
fly@Capote:~/tmp$ a="$(stat /tmp/totoz | head -1 | awk '{print $NF}')" ; echo ${a}
`/tmp/pipo'
C'est bien mais pas top avec les quotes, d'où l'astuce suivante :
fly@Capote:~/tmp$ i=${#a}; echo ${a:1:(($i-2))}
/tmp/pipo
file :fly@mst:~/tmp$ file /tmp/totoz /tmp/totoz: symbolic link to `/tmp/pipo'
On constate maintenant qu'une seule ligne est retournée, mais il y a toujours ce problème de quotes. Donc, on résout de la même manière :
fly@mst:~/tmp$ a="$(stat /tmp/totoz | awk '{print $NF}')" ; echo ${a}
`/tmp/pipo'
fly@mst:~/tmp$ i=${#a}; echo ${a:1:(($i-2))}
/tmp/pipo
readlink :fly@Capote:~/tmp$ readlink /tmp/totoz /tmp/pipo
Bon, ben voilà; finalement je le préfère ce petit readlink (et de loin)...
jeudi 20 mai 2010
Par Flyounet le jeudi 20 mai 2010, 13:09
Ça y est, j'ai enfin publié ma version 1 de la DSSL. j'en ai profité pour la déclarer sur le site LinuxFR en tant que journal (Voir le journal ci-dessous).
Lisez la, et vous saurez.
Mais parce que j'en ai marre que l'on pose ce genre de question ! Lisez la Licence et Démerdez-vous.
Pour le boulot, j'ai régulièrement des collègues qui ne se posent même pas la question de savoir ce qu'un bout de code contient, ou plutôt que de lire une documentation m'assoiffent à me poser tout un tas de questions auxquelles j'ai déjà répondu dans la-dite documentation.
Aussi, après maintes recherches, je n'ai pas trouvé de Licence (rédigée) qui correspondrait. Même si la RTFM Licence m'aurait tentée, elle était trop succincte ; juste 5 mots.
Donc, pour ma propre cause, J'ai décidé de passer tout mon boulot sous DSSL et d'en rédiger les termes qui sont maintenant accessibles à l'adresse suivante : [http://dssl.flyounet.net/licenses/]Je pense l'avoir suffisamment corrigée pour qu'elle puisse être librement utilisée. La licence DSSL étant soumise à elle même, tirez-en les conclusions qui s'imposent.
mardi 19 janvier 2010
Par Flyounet le mardi 19 janvier 2010, 23:04
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_90MiBmercredi 16 septembre 2009
Par Flyounet le mercredi 16 septembre 2009, 13:09
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
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.ps2pdf :
- pour forcer la transformation de l'entrée standard.mardi 8 septembre 2009
Par Flyounet le mardi 8 septembre 2009, 17:00
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
[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
Par Flyounet le mercredi 10 septembre 2008, 18:26
Comme je l'ai écrit dans ce billet Les joies du 64 bits sous AIX avec WebSphere
voici quelques commandes à se rappeler :
$ dump -X64 -H path_to_binary
$ dump -X64 -H path_to_binary
$ getconf HARDWARE_BITMODE
$ getconf KERNEL_BITMODE
mercredi 9 avril 2008
Par Flyounet le mercredi 9 avril 2008, 15:47
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.
dimanche 30 mars 2008
Par Flyounet le dimanche 30 mars 2008, 22:27
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.
vendredi 28 septembre 2007
Par Flyounet le vendredi 28 septembre 2007, 14:26
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 :
-acà la fin[2]
Et après ? On demande à PuTTY de forwardé X sur localhost, et un petit export DISPLAY qui va bien...