Humus numericus

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

R, Spip et autres

mardi 2 décembre 2008

Astuces Linux du jour

Ajouter un utilisateur à un groupe rapido

Jusqu'ici, quand je voulais m'ajouter à un groupe, je faisais un bête :

# adduser julien group

Problème : dans ces cas-là on est obligé de fermer sa session pour que le changement soit pris en compte. Et bien je viens de découvrir la commande newgrp qui permet de faire ça directement :

$ sudo adduser username group
$ newgrp group

Accélérer les connexions SSH

Si vous avez tendance à vous connecter souvent aux mêmes serveurs, les versions récentes d'openSSH permettent d'accélérer les temps de connexion via du multiplexage de connexion. Pour cela il faut rajouter les lignes suivantes dans ~/.ssh/config (fichiers à mettre en 600) :

Host *
ControlPath ~/.ssh/mux_socket-%r@%h:%p

Puis de lancer un ssh de la manière suivante (par exemple dans votre .xsession :

ssh -fMN nomduserveur

A partir de là les temps d'établissement de connexion vers ce serveur seront beaucoup plus rapides...

Faire de l'ipv6 facilement

J'avais déjà essayé deux ou trois manières de me connecter en ipv6 depuis la maison, mais c'est en général un peu lorudingue : faut s'inscrire chez un tunnel broker, mettre en place des scripts, avoir une IP fixe... Mais je viens de tomber sur un article de Debian administration qui présente le paquet miredo qui permet de faire tout ça de manière hyper-simple. Une commande suffit :

# apt-get install install miredo

Et vous aurez la joie de voir la tortue danser !

mardi 25 novembre 2008

Quelles belles courbes !

Que voilà :

Munin postfix mailqueue

C'est quoi donc ? C'est le nombre de mails contenus dans la file d'attente du postfix de ce serveur... La jolie courbe bleue qui monte qui monte ce sont les 15000 mails reçus dans la nuit de dimanche à lundi suite à un envoi massif de spams depuis un autre serveur qui ne m'appartient pas mais dont je reçois les mails d'admin. Les 15000 mais sont tous les Undelivered mail returned to sender résultant de cet envoi de spams.

Bon ben tout ça n'a pas plu à mon postfix, mais surtout à mon dspam, qui a régulièrement lâché après les différentes relances effectuées dans la journée. Ça n'est que dans la soirée que j'ai vraiment pu m'occuper du problème (Lles jolies courbes verrtes sur la figure), surveiller dspam et le relancer lorsqu'il plantait. Mais vu le débit (pas plus d'un mail à la seconde, pas sûr que mon installation soit bien optimisée), j'en avais pour un moment.

Heureusement, j'ai pu trouver un petit script permettant de supprimer des mails de la file d'attente à partir d'un regexp sur le résultat de postqueue -p. Résultat, le script suivant :

while true; do for i in $( sudo postqueue -p |head -n 500 | grep -i mail |awk '{print $1}'|sed s/\*// );do sudo postsuper -d $i; done; done

m'a permis de terminer l'évacuation du bouchon vers 2h du matin, au lieu de beaucoup plus tard...

lundi 21 juillet 2008

Canal IRC francophone dédié à R

R est un langage libre de traitement de données et d'analyses statistiques. Il est extrêmement puissant, son développement est très actif, mais son apprentissage n'est pas forcément des plus aisés, en partie à cause du manque de ressources en français.

Un des modes de support en anglais qui marche plutôt bien est le canal IRC #R, sur le réseau freenode. Plusieurs habitués francophones de #R (bon d'accord, deux habitués francophones de #R), dont je fais partie, ont lancé récemment un canal baptisé #Rfr, toujours sur freenode, pour tenter d'apporter le même genre de service en français.

Si vous souhaitez nous rejoindre, pointez votre client IRC préféré vers le serveur irc.freenode.net, canal #Rfr. Vous pouvez aussi y accéder via une interface web à l'une des adresses suivantes :

Pour l'instant le canal est assez calme, la seule activité réelle est celle du bot de traduction automatique de #R. Mais si vous avez une question au sujet de R, n'hésitez pas à venir la poser, et à être patient pour la réponse...

Plugin Rbot de traduction automatique de canal IRC

Rbot est un bot IRC écrit en Ruby que j'ai découvert récemment et qui s'avère très agréable à utiliser et à programmer.

J'ai créé, avec l'aide de pingou, un plugin permettant de traduire automatiquement un canal IRC : le bot récupère tous les messages publics postés sur un canal, les traduit via l'API de Google translate, et poste le résultat dans un deuxième canal. Il est actuellement utilisé pour traduire le contenu du canal #R de l'anglais vers le français (dans #Rfr) mais aussi le norvégien (dans #Rno). Je ne vous cache pas que le résultat de la traduction peut être assez fantaisiste.

Le plugin AutoTranslate peut être téléchargé depuis le dépôt des plugins non-officiels de Rbot.. Pour l'installer, il suffit de le copier dans le dossier plugins, puis d'éditer le fichier et de modifier le tableau TRANSLATIONS comme désiré.

mercredi 16 juillet 2008

À lire sur "Les mots sont importants"

Le site Les mots sont importants est sans doute l'un des plus stimulants que je connaisse intellectuellement et politiquement : les articles publiés sont toujours de qualité et sans concession. Il a été l'un des rares fers de lance de la lutte contre la loi sur le voile en 2004.

À ce propos justement, Mona Chollet vient de publier un compte-rendu d'un livre intitulé Les filles voilées parlent, recueil de témoignages de filles et de femmes voilées, à qui l'on ne donne justement jamais la parole, et qui évoquent entre autres les effets catastrophiques de la loi de 2004.

La simple lecture du compte-rendu de Mona Chollet devrait vous convaincre que cette loi fut une loi injuste, contre-productive, et sous-tendue par une forme de racisme à peine déguisé :

mardi 1 juillet 2008

Message à l'attention des personnels du CNRS

cnrs_tout_va_bien.jpg

Et en bonus, la version PDF.

mercredi 14 mai 2008

Problème avec VirtualBox

VirtualBox est une application de virtualisation qui peut servir, entre mille autres choses, à faire tourner un windows à l'intérieur d'un linux.

Après la mise à jour de ma Debian unstable effectuée ce matin, plus moyen de démarrer l'appli. J'avais un pop-up d'erreur me signalant une impossibilité de démarrer les services COM, et en cas de lancement de la commande VirtualBox en ligne de commande, j'obtenais le joli message suivant :

/usr/lib/virtualbox//VBoxSVC: symbol lookup error: /usr/lib/virtualbox/VBoxXML.so: undefined symbol: _ZN11xalanc_1_1016XalanTransformer10initializeERN11xercesc_2_713MemoryManagerE

La solution ? Récupérer la dernière version (la 1.6) depuis le site de Virtual Box. Apparemment leurs dépôts Debian sont un peu en retard, d'ailleurs le lien de téléchargement renvoit sur le site de Sun, je ne savais pas qu'ils avaient été rachetés...

En tous cas l'installation du .deb pour Debian 4.0 a résolu le problème en ce qui me concerne.

Générer un certificat SSL auto-signé pour Apache

D'abord on génère une clé non chiffrée sur disque (pour éviter d'avoir à saisir un mot de passe à chaque redémarrage d'Apache) :

# openssl genrsa -out mykey.key 1024

Ensuite on crée un certificat signé avec cette clé :

# openssl req -new -x509 -days 365 -key mykey.key -out mycert.crt

Répondre à l'ensemble des questions posées. Le nom de la machine doit être donné en réponse à Common Name. On peut utiliser un wildcard (joker) du type *.example.com pour que le certificat s'applique à un ensemble de sous-domaines.

Ensuite, dans Apache, modifier le fichier de définition du VirtualHost qui va bien :

NameVirtualHost *:443
<VirtualHost *:443>

        SSLEngine on
        SSLCertificateFile    /etc/ssl/mycert.crt
        SSLCertificateKeyFile /etc/ssl/mykey.key
        SSLVerifyClient none

        [etc., etc.]

</VirtualHost>

Imprimer des calendriers en ligne de commande

Il existe un petit utilitaire en ligne de commande, nomé pcal, qui permet la génération et l'impression de calendriers avec de multiples options.

Pour l'installation, c'est comme d'hab :

# apt-get install pcal

Pour avoir une idée de toutes les options, c'est aussi comme d'hab :

$ man pcal

Petit exemple d'utilisation : la commande qui suit génère un fichier postscript des 6 mois suivant mai 2008, en format portrait, pour un papier A4, avec les semaines commençant le lundi, en français, et en ajoutant des calendriers miniatures des mois précédents et suivants.

$ pcal -l -P a4 -F 1 -a fr -K -o /tmp/cal.ps 05 2008 6

Le tout est placé dans un fichier postscript /tmp/cal.ps que l'on peut visualiser avec gv ou evince et imprimer avec xpp, lp, gtklp, etc.

mercredi 30 avril 2008

Chine, Tibet : pas si simple

Un petit billet rapide pour signaler trois articles apportant un éclairage différent sur les récents événements au Tibet.

Les deux premiers sont des articles du blog de Jean-Luc Mélenchon :

Le dernier est un texte paru sur le blog du Monde diplomatique tenu par Martine Bulard et consacré à l'Asie :

Bonne lecture !

mercredi 12 décembre 2007

Ras le bol des grosses configs

Je suis tombé sur un article via digg qui s'extasie du fait que KDE4 tourne correctement dans une machine virtuelle simulant un PC avec un proc à 1GHz et 256Mo de RAM. Et dans les commentaires sur digg on a droit à de jolis c'est chouette de penser aux vieilles machines, c'est bien pour les pays du Tiers-Monde ou encore on a du mal à croire qu'avant on travaillait sur des machines comme ça... Bon, d'accord, c'est sur Digg, mais ça a quand même le don de m'énerver...

A la maison nous avons deux machines. La première est un PC de bureau acheté d'occaze il y'a cinq ans : un magnifique Pentium 3 600 MHz avec 256Mo de RAM et une carte graphique Geforce4 64Mo. La deuxième est un portable également acheté d'occaze il y a deux ans, un rutilant Pentium 3 700MHz avec lui aussi 256 Mo de RAM.

Sur la machine de bureau, l'interface est un Xfce avec Compiz fusion. Et ça tourne nickel chrome, même le cube, le zoom interactif, les effets d'animation, etc.. Un Gnome ou un KDE tourneraient très bien aussi, mais en bouffant inutilement de la mémoire alors qu'il y en a quand même pas bézef. Niveau logiciel, même Firefox fonctionne bien, alors que c'est pas du léger. Gimp, Digikam, Videolan, ne posent aucun problème, et même OpenOffice se lance alors qu'il faut quand même bien admettre que c'est une bouse. Google Earth, Second Life et certains jeux en 3D tournent aussi, même si les performances ne sont pas hallucinantes.

Sur le portable, j'ai un bon vieux dwm avec un non moins bon vieil emacs, donc ça tourne évidemment très bien. Le portable en question n'avait que 128Mo de RAM il y a encore quelques semaines : là, Firefox commence à faire souffrir l'utilisateur, mais par contre Epiphany fonctionne très bien. Certes, ça swappait assez rapidement, mais une petite barette de 128Mo supplémentaire achetée d'occasion a résolu le problème sans difficulté. Et je n'ai évidemment aucun souci pour produire des documents avec TeX, développer une appli web en faisant tourner un Apache et un MySql, ou même pour faire des stats avec R si les données sont pas trop volumineuses.

Voilà, tout ça pour dire que pour un usage courant, on n'a certainement pas besoin d'un PC dernier cri dont les trois quart des ressources sont bouffées par des services inutiles. On peut travailler avec un bureau en 3D, des fenêtres ramollo et les dernières versions des derniers logiciels avec un Pentium 3 et 256Mo de RAM.

Et encore heureux, d'ailleurs...

jeudi 6 décembre 2007

Script shell de transfert de photos

Pas sûr que ça en vaille la peine, mais je me permets quand même de mettre en ligne le petit script bash que j'utilise pour transférer les photos depuis mon appareil numérique vers mon PC. Le script en question part du principe que l'appareil est reconnu comme un périphérique de stockage de masse USB et qu'il est automatiquement monté au point de montage indiqué par la variable mount_point. Il faut également renseigner les variable source_dir (chemin vers le répertoire dans lequel se trouve les photos à partir du point de montage) et cible_dir (emplacement des photos sur le PC). Vous aurez également besoin du paquet libjpeg-progs pour avoir la commande exifautotran.

Une fois que vous avez tout ça, vous aurez juste à brancher votre appareil et à lancer le script. Celui-ci s'occupera de monter le périphérique, de copier chaque image dans un répertoire nommé selon la date de prise de la photo (au format /home/photos/2007/12 par exemple) et d'effectuer une rotation en fonction de l'orientation horizontale ou verticale contenue dans les données EXIF.

#!/bin/sh                                                           
                                                                    
mount_point=/mnt/photo
source_dir=dcim/100km028 
cible_dir=/home/photos

mount $mount_point
for i in $mount_point/$source_dir/*.jpg; do  
        img=`basename $i`
        annee=`stat -c %y $i | cut -d '-' -f 1`
        mois=`stat -c %y $i | cut -d '-' -f 2`
        cible=$cible_dir/$annee/$mois
        if [ ! -d $cible ];
        then
                mkdir -p $cible
        fi      
        echo "Copie de $i vers $cible/$img"
        cp -i $i $cible/$img
        exifautotran $cible/$img
done;   
sleep 2s
umount $mount_point

Comme d'hab en ces lieux, vous constaterez que c'est du vite fait !

- page 2 de 9 -