Posts in Informatique

chroot debian dans archlinux

Jun 17, 2009 | Informatique

Voici un petit howto rapide pour installer un chroot debian dans une distribution linux n’utilisant pas de paquets .deb.

Ce document est basé sur http://www.debian.org/releases/stable/hppa/apds03.html.fr dans lequel j’ai trouvé certains manques.

On télécharge debootstrap dans le répertoire /tmp/deb :

$ mkdir /tmp/deb
$ cd /tmp/deb
$ wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.13_all.deb

Puis on décompresse le fichier .deb :

$ ar -x ./debootstrap_1.0.13_all.deb
$ tar xzf data.tar.gz

Il faut ensuite se connecter en tant que root avec sudo -s ou su, puis :

# cd /tmp/deb
# export DEBOOTSTRAP_DIR=/tmp/deb/usr/share/debootstrap/
# usr/bin/debootstrap --arch i386 lenny /path/to/debian_lenny_chroot/ http://ftp.fr.debian.org/debian

Et voilà, on a un beau chroot Debian dans /path/to/debian_lenny_chroot/ :)

Plus qu’à se connecter à l’intérieur :

# chroot /path/to/debian_lenny_chroot/ /bin/bash

Puis on configure 2, 3 petits trucs :

# apt-get install locales
# adduser test
# su - test

À la recherche des .mp3 corrompus...

May 30, 2009 | Informatique

Dernièrement, j’ai voulu retagguer tous mes mp3 pour que les tags soient tous codés en UTF-8. En effet, j’ai un lecteur mp3 Sony qui utilise normalement l’affreux logiciel Sonic Stage pour le transfert des mp3 dessus. J’utilise à la place le logiciel JSymphonic qui est très bien mais qui se mélange quelque peu les pinceaux entre l’encoding utilisé par le système d’exploitation, celui utilisé par Java, celui utilisé dans les tags…

Par exemple, sur 3 albums de Bénabar, je me retrouvais sur le lecteur avec 3 écritures différentes : Bénabar, B?nabar, B-nabar (avec un carré à la place du -).

J’ai utilisé EasyTag pour “corriger” les tags mais au final, certains mp3 ont été corrompus :(

Comme j’ai une bonne partie des CD correspondants, ce n’est pas trop gênant, le problème c’est de retrouver lesquels sans passer des heures à chercher à la main ;)

Avec la commande file, j’ai pu trouver la différence entre les bons et les mauvais fichiers.

$ file perso/music/Albums\\ FR/Junior\\ Tshaka/La\\ Jungle/01\\ -\\ Dada\\ Wa.mp3
perso/music/Albums FR/Junior Tshaka/La Jungle/01 - Dada Wa.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, Stereo

$ file perso/music/Albums\\ FR/Grégoire/Toi_+_Moi/01_-_Ta_main.mp3
perso/music/Albums FR/Grégoire/Toi_+_Moi/01_-_Ta_main.mp3: Audio file with ID3 version 2.4.0, contains:

Ne restait plus qu’à scripter

[bash]
#!/bin/sh
files=`find "$1" -name "*.mp3"`

IFS=$'\
'
for f in $files; do
    media=`file $f | grep -o 'contains: .*' | cut -d: -f2`
    if [ "$media" == "" ] || [ "$media" == " " ]; then
        echo "$f";
    fi
done

La modification de la variable IFS est nécessaire pour qu’il ne coupe pas les noms de fichiers sur les espaces.

Désactiver les gifs et autres images animées sur le web

Mar 23, 2009 in astuce, internet, libre | Informatique

Je suis un adepte de l’internet épuré. Certains diraient peut-être même austère ;)

Utilisateur de flashblock et d’adblock, je n’aime pas quand un truc clignote sans raison sur une page web.

Dans la configuration “très” avancée de firefox (accessible par l’url about:config), il suffit de passer l’option image.animation_mode à none pour retrouver la zen-attitude :)

La valeur once est également possible si vous voulez que l’animation se déroule une fois.

Un peu de couleur dans vos patchs

Feb 22, 2009 | Informatique

En programmation, on peut être amené à utiliser des patchs qui indiquent les modifications à réaliser dans un fichier source.

Personnellement, je les applique toujours à partir de mon shell, et il m’arrive de vouloir les regarder avant application ou bien de vouloir regarder la partie rejetée d’un patch.

Rien de mieux qu’un peu de couleurs pour que ce soit plus agréable! Pour cela, on peut faire appel à colordiff.

J’utilise le fichier de configuration suivant pour colordiff (fichier à sauvegarder dans ~/.colordiffrc) :

# Set banner=no to suppress authorship info at top of
# colordiff output
banner=no
# By default, when colordiff output is being redirected
# to a file, it detects this and does not colour-highlight
# To make the patch file *include* colours, change the option
# below to 'yes'
color_patches=no
#
# available colours are: white, yellow, green, blue,
#                        cyan, red, magenta, black,
#                        darkwhite, darkyellow, darkgreen,
#                        darkblue, darkcyan, darkred,
#                        darkmagenta, darkblack
#
# Can also specify 'none', 'normal' or 'off' which are all
# aliases for the same thing, namely "don't colour highlight
# this, use the default output colour"
#
plain=off
newtext=darkgreen
oldtext=darkred
diffstuff=darkcyan
cvsstuff=darkblue

Les couleurs ont été choisi pour apporter un résultat le plus proche possible de la sortie de git-diff avec les couleurs par défaut.

Dernière petite chose, colordiff n’est pas un pager, voici donc le petit script lessdiff que j’utilise à la place de less lorsque je veux regarder un patch :

~~~~ {.bash}

!/bin/sh

if [ $# -gt 0 ]; then cat “$@” | colordiff | less -RS exit fi   colordiff | less -RS ~~~~

Recompiler plus vite ?

Feb 22, 2009 in cpp, linux, programmation, unix | Informatique

Si il vous arrive régulièrement de recompiler un logiciel développé en C ou C++, ccache pourrait vous intéresser. Concrètement, il s’agit d’un programme que vous allez appeler à la place du compilateur et qui va regarder si il n’a pas déjà dans son cache un objet binaire correspondant au fichier à compiler. Ainsi, vous éviterez le temps de compilation pour ce fichier! Au final, on obtient un gain plus ou moins sensible en fonction des projets.

Le cache est par défaut stocké dans le répertoire ~/.ccache/.

Pour utiliser ccache, rien de plus simple sous Debian et ses dérivés comme Ubuntu :)

Il suffit de l’installer

sudo aptitude install ccache

et d’ajouter la ligne suivante dans son fichier ~/.bashrc

PATH=/usr/lib/ccache/:$PATH

Voilà, maintenant ccache remplacera de manière transparente votre gcc qui ne sera appelé qu’en cas de besoin réel :)