-
Par divarvel dans GNU / Linux, Logiciels Libres le 29 Avril 2010 à 06:03MPD est, comme son nom s'indique, un daemon qui lit de la musique. L'intérêt, est que la partie qui lit la musique est découplée de l'IHM qui permet de gérer ça.
Cette structure apporte plusieurs avantages :
- Légèreté (pas besoin d'occuper des ressources en permanence pour l'interface)
- Choix du nombre d'interfaces (il y en a vraiment pour tous les goûts, du plus simple au plus sophistiqué, en passant par le sobre et efficace)
- Possibilité de commander par le réseau
- Interfaçage rapide avec tout et n'importe quoi (conky, par exemple)
J'ai eu ensuite à faire quelques petits tweaks pour intégrer ça correctement à mon système.
Touches multimédia
Comme MPD tourne en tâche de fond, si aucune interface n'est lancée, les touches multimédia ne seront pas gérées.
Le plus simple est d'utiliser mpc, qui permet d'envoyer des commandes à MPD.
J'ai ainsi associé la commande mpc toggle à la touche XF86Play, mpc stop à la touche XF86Stop, et ainsi de suite.
Pour le fun, j'ai fait un petit script qui permet d'afficher les informations sur le morceau en cours à l'aide de libnotify.#!/bin/sh
DISPLAY=:0
notify-send "`mpc --format "%title%"|head -n1`" "`mpc --format "%artist% - %album%"| head -n1`"
Rien de bien méchant, mais ça peut être utile quand on veut savoir le nom du morceau en cours sans perdre trop de temps.
Scrobbling
Les clients MPD sophistiqués gèrent le scrobbling, mais, comme je l'ai dit, on n'a pas besoin d'avoir une interface en permanence.
J'ai trouvé scrobd, un petit script python qui permet de scrobbler sur libre.fm. (Saymieux que last.fm, et on a moins de risques de voir son nom refilé à la RIAA)
Étant donné que tous les clients communiquent avec MPD par une interface TCP, il n'y a pas de difficultés particulières pour que la musique soit jouée sur un ordinateur distant, avec autant de facilité que si c'était sur son propre PC.
Pour plus d'informations :
Et merci à @Keruspe et @Efyx pour m'avoir aidé à faire mes premiers pas avec MPD
1 commentaire
-
Dans le cadre de mon stage, je bosse sur un site codé pour PHP 5.3, et j'ai donc eu à installer PHP5.3 sur ma bécane.
Cette version de PHP n'étant pas encore dans les dépôts, et les paquets disponibles ayant des problèmes de dépendances non résolues, le plus simple c'est de compiler. Le problème c'est qu'on perd la souplesse de la gestion modulaire de PHP.
Ce que j'ai donc fait, c'est installer PHP5.3 en tant que binaire CGI, sans toucher à ma version de PHP 5.2 installée en tant que module apache.
Warning : Je mets cette méthode à titre expérimental, pour faire du dev et du test. Ne vous amusez pas à mettre ça sur un serveur de prod sans plus d'infos. Il y a pas mal de différences avec le fonctionnement sous forme de module.
Lire la suite...
3 commentaires
-
Par divarvel dans Stage aux USA le 29 Mars 2010 à 00:57Ça y est, tous mes bagages sont faits, j'ai mon visa, j'ai pu dire au revoir à presque tout le monde avant de partir.
L'avion décolle demain à 11H40 de CDG pour Philadelphie, puis Philadelphie / San Francisco.
I'll keep you posted ;-)
2 commentaires
-
Par divarvel dans GNU / Linux, Logiciels Libres le 12 Février 2010 à 21:39
J'ai récemment réalisé la migration de tous les projets EklaWeb de Subversion vers Git.
Si vous voulez savoir pourquoi, je vous conseille cet excellent article de Scott Chacon
Pour résumer,
- Git est plus rapide
- Git est plus puissant
- Git est plus flexible
Lire la suite...
aucun commentaire
-
Par divarvel dans GNU / Linux, Logiciels Libres le 1 Juin 2009 à 16:38
Dans le cadre d'un travail demandé en cours de Théorie des Graphes, je devais regarder l'évolution du temps d'exécution d'un programme en fonction d'un paramètre. (Pour les curieux, c'est la k-Coloration d'un Graphe à n Sommets)
Je me suis bricolé un petit script qui fait ça tout seul, et génère un graphe (via l'excellent GnuPlot) (ou affiche les temps d'exécution)
C'est la première fois que je fais un vrai script en Bash (ie un script qui n'est pas 3 commandes mises à la suite), du coup, pour la structure, je me suis inspiré d'un petit script de P4bl0.
Le nom du programme à tester est hard coded, mais ce n'est pas très dur à modifier.
N'hésitez pas à vous en servir si ça vous est utile ;-), de même que toutes les critiques sont les bienvenues (je n'y connais pas grand chose (pour ne pas dire que dalle) en scripts Bash)
L'usage, c'est $[...]:~> ./bench.sh [-i n] p n1 n2 itv graphe.png
n1 valeur de départ du paramètre
n2 valeur finale du paramètre
itv variation du paramètre à chaque pas
graphe.png nom du fichier généré
Pour le -i n, n est le nombre d'exécutions du programme pour chaque point (par défaut, 10)#!/bin/sh
if [ "$1" = "-i" ]; then
ITER="$2"
shift
shift
else
ITER="10"
fi
_bench_usage() {
cat <<USAGE
Usage: bench disp n1 n2 interval : Affiche le temps pris pour traiter des graphes de n sommets, n variant de n1 à n2 par pas de interval.
bench plot n1 n2 interval file: Crée le fichier file, un graphique PNG affichant le temps pris pour traiter des graphes de n sommets,
n variant de n1 à n2 par pas de interval.
bench help: Affiche cette page d'aide.
La première lettre de chaque commande peut être utilisée
Le flag -i permet de spécifier combien de fois un graphe à n sommets doit être calculé.
Valeur par défaut : 10
USAGE
}
_bench_disp() {
i=$1
while [ $i -le $2 ]; do
START=$(date +%s)
_bench_run
STOP=$(date +%s)
echo "Graphe à" $i "sommets :" $[$STOP-$START] "secondes"
i=$[i + $3]
done
}
_bench_plot() {
# Création d'un fichier temporaire contenant les données à afficher
i=$1
echo "# Temps de calcul pour des graphes de "$1" à "$2" sommets (par pas de "$3")" > plot.dat
while [ $i -lt $2 ]; do
START=$(date +%s)
_bench_run
STOP=$(date +%s)
echo $i $[$STOP-$START] >> plot.dat
i=$[i + $3]
done
# Génération du graphe
gnuplot<<EOF
set xlabel 'Nombre de Sommets du graphe'
set ylabel 'Temps de calcul (s)'
set xrange [*:*]
set yrange [*:*]
set grid
set nokey
set output "${4}"
set terminal png small
plot "plot.dat" with linespoints
EOF
# Suppression du fichier temporaire
rm -f plot.dat
}
_bench_run() {
j="0"
while [ $j -lt $ITER ]; do
../source/coloration -r $i -v 1>>coloration.log 2>> error.log
echo "">>coloration.log
echo "">>error.log
j=$[j + 1]
done
}
_bench() {
local ACTION="$1"
shift
case $ACTION in
d|disp) _bench_disp "$@" ;;
p|plot) _bench_plot "$@" ;;
h|help|*) _bench_usage >&2 ;;
esac
}
_bench "$@"
echo
exit 0
C'est facilement modifiable pour faire un comparatif entre deux programmes, à condition de regarder un peu la doc de GnuPlot.
4 commentaires










