I use moinmoin for my main web site since 2007 and moved my blog engine to pyblosxom (the old one was powered by wordpress) since april 2011. While moving to pyblosxom I wrote an entry parser in order to write my posts using moinmoin wiki syntax.

As one can notice, most of my posts use http://www.wikipedia.org as reference. By the time, linking to wikipedia notices' become quite painfull. In fact, I had type the full URL to the wikipedia notice. So I decided to write a simple macro LinkToWiki to ease the linking procedure to wikipedia notices' either on by blog or my web site.

To use this macro, just drop it in the macro folder of moinmoin and use <<LinkToWiki(notice,label,lang)>> to create links...

For example, <<LinkToWiki(wikipedia,Wikipedia,en)>> creates the link http://en.wikiepdia.org/wikipedia which is displayed as Wikipedia.

Moreover, the macro is quite flexible. In fact, it can be customized using:

  • notice: wikipedia notice. It is mandatory.
  • label: is the name of the link. It's also displayed when the cursor is over it. If omited, notice is used.

  • lang: wikipedia language(en for english, fr for french etc.). If missing, french is used.

Récemment, j'ai été amené à valider les dépendences des ressources au sein d'un Cluster Sun afin d'en vérifier la cohérence. Lors que je me suis collé, je n'ai pas trouvé d'outil simple permettant de grapher les relations entre chaque ressource. J'ai, donc, décidé mettre au point script shell simple pour générer un graphique permettant de visualiser simplement. Le script génère un fichier compatible graphviz. Une fois le fichier .dot généré, la commande dot -Tpng -o graph.png file.dot permet de créer le graphique au format png.

Un petit graphique valant mieux qu'un long texte, voilà le résultat:

media/entries/2011/GraphiqueDeDependenceDesRessourcesSunCluster/rs-dep.png

source au format dot pour générer le graphique.

script shell permmettant creer le fichier .dot.


Les baies de stockage actuels (au moins les baies 3Par) permettant de créer des luns en dynamic provisionning (ou thin provisionning) proposent de récuprér l'espace disk désallouée dynamiquement par la création de fichiers contenant des zéros. En fonction de l'OS (Linux, Unix ou Windows), la procédure varie:

  • Linux/Unix : La création d'un fichier contenant des zéros se fait par la commande dd qui partie des commandes système de base. Par exemple, dd if=/dev/zero of=ZeroFile bs=1G count=1 permet de créer un fichier de 1Go. Il existe également sfill (présent dans le package secure-delete sous Debian) permet d'écrire des zéros dans les blocs libres. sudo sfill -v -l -l -z -I créera un fichier ne contenant que des zéros.

  • Sous Windows, il faut installer sdelete proposé par microsoft. Une fois l'outil installé, la commande sdelete -z x:\ d'écrire des zéros dans blocs inutilisés du lecteur x:\


Certaines choses simples deviennt très compliquées (en tout cas pour moi) lorsqu'on essaye de mettre au point des scripts sous windows. En effet, en fonction de langue choisi pendant l'installation, tous les messages d'erreurs semblent être localisés et il ne semble avoir de solution pour modifier cette localisation au sein d'une script simplement. Du coup, lors du scripting batch sous windows, pour pouvoir traiter les messages retournés, il faut:

  • coder en dur dans toutes les langues, les messages d'erreurs corrspondants (au moins 2 dans mon cas: anglais et français).

  • déterminer la langue d'installation de l'OS pour pouvoir les traiter.

Et à la question comment peut-on déterminer la langue d'installation de Windows? La réponse est très simple: la commande ping -n 1 localhost | find /i /C "Reply from 127.0.0.1: bytes=32" retourne 1 si windows est installé en anglais. La même commande retourne 0 s'elle est exécutée dans un envirionnement en français.


Les switchs brocade (de type 3200 au moins) proposent une interface graphique en java pour effectuer le paramètrage. Mais, cette interface n'est pas accessible sans disposer d'un navigateur avec le plugin java. Pour utiliser cette interface à partir d'un poste client sous debian, il faut: