Des plugins Freenet pour Munin

J’en ai écrit quelques-uns, et en effet il est très simple d’écrire soi-même ses propres plugins pour Munin.

Les sources sont accessibles sur GitHub : http://github.com/Artefact2/munin-freenet

Et voici des exemples de résultats :

Related Posts:

Posted in Développement, Freenet, Opensource, PHP | Tagged , , , | Leave a comment

De Tempest à Vargur : passage de FreeBSD à ArchLinux

TL;DR : Arch, c’est plus simple et de manière générale plus rapide mais il faut faire plus attention à l’organisation et à la sécurité qu’avec FreeBSD.

Un petit billet pour annoncer que je suis passé de FreeBSD à ArchLinux sur mon serveur@home. Pourquoi ? Pourquoi pas. J’avais envie de quelque chose de plus simple et aussi un peu de changer. Merci le disque dur externe de 1 To pour faire les sauvegardes nécessaires :)

Comme j’utilise déjà ArchLinux depuis quelques années sur mon netbook et mon autre machine, la transition s’est évidemment faite sans aucun accroc. Tout marche comme il faut, le seul point un peu délicat concernant l’installation : impossible d’installer grub1 sur des disques GPT, malgré ce que dit le wiki. Utiliser LVM et mdadm pour faire du raid5 et du raid1 a aussi été nouveau. Au revoir ZFS, et à bientôt j’espère… Ou btrfs, qui sait ?

Ayant acquis une certaine expérience dans ces deux OS, je me suis dit, pourquoi ne pas faire un petit comparatif des points noirs qui m’ennuient et des fonctionnalités que j’aime utiliser au quotidien ?

FreeBSD

  • (+) Les jails : c’est tout simplement très pratique, cela permet d’isoler les différents services sur une machine pour des raisons de sécurité et de stabilité (si un composant ne fonctionne plus à cause d’une mauvaise manip ou d’une mise à jour foireuse, uniquement ce système là est affecté et pas les autres)
  • (+) Excellente documentation, le handbook est la référence et les manpages sont aussi très détaillées ; par exemple security(7). Il faut également lire /etc/UPDATING avant de mettre à jour pour se renseigner les changements éventuels à faire manuellement.
  • (+) On peut se faire un système 100% ZFS avec GPT, et c’est vraiment très bon.
  • (+/-) Distinction entre le système de base (noyau, userland) et les logiciels tiers, autant dans l’organisation que dans le processus de mise à jour. Cela permet un contrôle plus fin des mises à jour mais est également plus complexe pour les néophytes.
  • (++/-) Les ports : c’est pratique et il y a beaucoup de logiciels tiers disponibles facilement, mais malheureusement la compilation prend du temps s’il n’y a pas de paquets. Quand on souhaite installer un logiciel qui ne s’y trouve pas, c’est souvent bien plus difficile (à cause du fait que FreeBSD utilise comme préfixe /usr/local pour tous les logiciels tiers) à compiler.
  • (-) Les mises à jour sont horriblement lentes, surtout avec CVS.
  • (-) Lenteur de portupgrade(1). C’est un outil tiers facultatif mais qui facilite l’installation, la mise à jour et la gestion des ports.
  • (-) Beaucoup de ports ne sont plus à jour depuis belle lurette. Par exemple games/stepmania-devel date de 2007.

ArchLinux

  • (+) Beaucoup plus simple que FreeBSD à utiliser et à administrer.
  • (+) Pacman est très rapide et fait bien son travail. De manière générale, le système de paquets est bien fait (groupes, providers, …). Les mises à jour sont très simples à effectuer.
  • (+) Rolling release. C’est un très gros bonus. Au lieu d’avoir tout un tas de mises à jour d’un coup (une date définie arbitrairement), elles arrivent en même temps que leur publication en upstream. On a par exemple le nouveau noyau Linux dès qu’il est distribué. Cela permet de distiller les gros problèmes de mise à jour, c’est psychologiquement moins déprimant.
  • (++) Système d’init basé sur BSD et non sur sysvinit. Ça rend la gestion des daemons et la création de tels scripts de démarrage beaucoup plus simple. Et quand on se casse pas la tête grâce à un système plus simple qui fournit les fonctionnalités dont j’ai besoin (qui honnêtement utilise les runlevels ?), c’est très bon.
  • (++/-) L’AUR, permet la création de paquets tiers par la communauté, très pratique mais aucune garantie concernant leur sécurité ou leur pérennité. La plupart sont néanmoins bien maintenus ; on peut lire le PKGBUILD avant l’installation pour vérifier que rien de malveillant n’est fait.
  • (+) Wiki correct.
  • (-) Pas de jails, donc il faut faire très attention à la sécurité et à l’organisation de la machine.

Related Posts:

Posted in FreeBSD, Opensource | Tagged , | Leave a comment

Test ABX simple en shell

Voilà un script qui traîne dans mon $HOME depuis des mois, mais il est bien utile : il permet de se tester en double aveugle (méthode ABX).

Voici un exemple :

Stabber ~/.abx % ls
ABXTest
MakeAbx
R6.3zist-07.wav
Stabber ~/.abx % ./MakeAbx R6.3zist-07.wav
Stabber ~/.abx % ls
ABXTest                       R6.3zist-07.wav-V3.mp3.wav
MakeAbx                       R6.3zist-07.wav-V4.mp3.wav
R6.3zist-07.wav               R6.3zist-07.wav-V5.mp3.wav
R6.3zist-07.wav-B320.mp3.wav  R6.3zist-07.wav-V6.mp3.wav
R6.3zist-07.wav-V0.mp3.wav    R6.3zist-07.wav-V7.mp3.wav
R6.3zist-07.wav-V1.mp3.wav    R6.3zist-07.wav-V8.mp3.wav
R6.3zist-07.wav-V2.mp3.wav    R6.3zist-07.wav-V9.mp3.wav
Stabber ~/.abx % ./ABXTest R6.3zist-07.wav R6.3zist-07.wav-V0.mp3.wav
Running test 1.
Sample A is : R6.3zist-07.wav
Sample B is : R6.3zist-07.wav-V0.mp3.wav
What do you want to do ? [X/A/B/N/Q] X
===> Playing X... (Use Q or ^C to interrupt playback)
What do you want to do ? [X/A/B/N/Q] N
===> So, what do you think X is ? [A/B/C] A
Running test 2.
Sample A is : R6.3zist-07.wav
Sample B is : R6.3zist-07.wav-V0.mp3.wav
What do you want to do ? [X/A/B/N/Q]
[…]
You were right 12 times.
You were wrong 7 times.
The probability of your result being only due to chance is 17.96300%.

C’est donc un petit script shell bien pratique qui permet de tester si, par exemple, on peut faire la différence entre une source en wav (sans aucune compression) et la même compressée en 128 kbps avec LAME. Le script MakeAbx encode à partir de la source les différentes qualités de VBR et le 320 kbps en CBR pour effectuer différents tests.

Voici les sources : http://artefact2.com/abx.tar.bz. Il y a même en bonus le script bc qui calcule la p-value. Que du bonheur ! :)

Related Posts:

Posted in Développement | Tagged , , | Leave a comment

Compiler StepMania 4 sous FreeBSD 8

StepMania est un excellent jeu. Il est addictif, extensible, libre… Que du bon. La version 4 (alpha 5 à l’heure où j’écris ces lignes) est tout bonnement génialissime. C’est pourquoi, après y avoir goûté sur ma machine GNU/Linux, j’ai naturellement eu envie d’en profiter sur FreeBSD.

Seulement voila : le port stepmania date de 2007 et a de grandes chances de ne plus jamais être mis a jour. Il faut donc compiler à la main. C’est pas difficile du tout, sauf que là je suis apparemment le seul blaireau a avoir essayé, je n’ai rien touvé à ce sujet sur la toile. Comme j’ai réussi a avoir un jeu 100% utilisable, voici les étapes à suivre :

  1. Étape préliminaire : assurez-vous de ne pas avoir pulseaudio d’installé. Si vous l’avez, StepMania va se connecter dessus au lieu d’utiliser le driver OSS, et croyez-moi, c’est injouable tellement il y a des artefacts audio et de la latence.
  2. svn co https://svn.stepmania.com/svn/trunk/stepmania
    cd stepmania
  3. Ajoutez « -liconv » à la ligne commencant par « LIBS = @LIBS@ -lpthread -lrt » dans src/Makefile.am
  4. Appliquez le patch suivant pour compiler avec la version  1.4 de la libpng (et d’autres trucs pour que ça marche) :
    Index: src/RageSurface_Load_PNG.cpp
    ===================================================================
    --- src/RageSurface_Load_PNG.cpp	(revision 28355)
    +++ src/RageSurface_Load_PNG.cpp	(working copy)
    @@ -140,7 +140,7 @@
    
     	/* Expand grayscale images to the full 8 bits from 1, 2, or 4 bits/pixel */
     	if( color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8 )
    -		png_set_gray_1_2_4_to_8( png );
    +		png_set_expand_gray_1_2_4_to_8( png );
    
     	/* These are set for type == PALETTE. */
     	RageSurfaceColor colors[256];
    Index: src/arch/ArchHooks/ArchHooks_Unix.cpp
    ===================================================================
    --- src/arch/ArchHooks/ArchHooks_Unix.cpp	(revision 28355)
    +++ src/arch/ArchHooks/ArchHooks_Unix.cpp	(working copy)
    @@ -12,7 +12,9 @@
     #include "archutils/Unix/AssertionHandler.h"
     #include <unistd.h>
     #include <sys/time.h>
    +#include <sys/wait.h>
    
     #if defined(CRASH_HANDLER)
     #include "archutils/Unix/CrashHandler.h"
     #endif
    Index: src/RageSurface_Save_PNG.cpp
    ===================================================================
    --- src/RageSurface_Save_PNG.cpp	(revision 28355)
    +++ src/RageSurface_Save_PNG.cpp	(working copy)
    @@ -103,7 +103,7 @@
    
     	if( setjmp(pPng->jmpbuf) )
     	{
    -		png_destroy_read_struct( &pPng, &pInfo, png_infopp_NULL );
    +		png_destroy_read_struct( &pPng, &pInfo, NULL );
     		return false;
     	}
  5. CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --without-ffmpeg
    

    Et oui, comme d’habitude, les Linuxiens sont crades et rangent tout dans /usr, et ils n’ont même pas la délicatesse d’aller voir dans /usr/local. Scandaleux.

  6. Installez textproc/gsed et changez dans src/Makefile chaque occurence de sed par gsed. Oui, c’est crade, c’est encore une histoire de syntaxe qui change.
  7. make
  8. ./src/stepmania

Et admirez le résultat. Aucun problème de latence (merci a l’autosync quand même).

Related Posts:

Posted in Développement, FreeBSD, Opensource | Tagged , , , | Leave a comment

Après six semaines de bépo : un premier bilan

Déjà six semaines. C’est fou comme ça passe vite. Un petit article pour partager mon ressenti du changement de disposition clavier.

  1. Les deux premières semaines : c’est le plus difficile. Il faut essayer de ne surtout pas regarder le clavier, perdre ses anciens réflexes et ne pas se décourager même si on a la vitesse de frappe et la précision d’une huître. Comme j’ai commencé pendant les vacances, je me suis servi de l’excellent logiciel Amphetype. Dommage cependant que son auteur aie clairement annoncé son abandon. Ma vitesse de frappe approximative à la fin de cette période était d’environ 25-30 mots par minute.
  2. Ensuite, les premiers réflexes vienent, on oublie très, très vite l’azerty. Par exemple sur les ordinateurs du lycée, il me fallait un temps fou pour taper quelques ridicules phrases Caml. On se rend compte que la frappe est beaucoup plus confortable que précédemment.

Même après six semaines, j’ai tout de même atteint une vitesse de frappe suffisante pour ne pas être découragé pour taper ce texte, mais je n’imagine même pas refaire du PHP dans un futur proche. Entre le w, très mal placé (évidemment, en français il ne sert que très peu – en programmation et en anglais par contre…) et le $/# tout en haut à gauche (touche exposant deux sur un clavier azerty), il va me falloir beaucoup de temps pour m’y refaire.

Il faut aussi réapprendre à entrer ses mots de passe, ce qui n’est pas une chose facile quand ils contiennent des caractères spéciaux, ainsi que les commandes unix usuelles. Faire un « df -h » ou un « pwd » est par exemple assez pénible. Les caractères spéciaux relativement fréquents en programmation (et pour le shell), comme le pipe, le tilde, le ampersand…

Malgré cela, si vous hésitez encore, eh bien je vous recommande vivement d’essayer le bépo – sérieusement – pendant quelques jours, vous serez surpris. Oh, et si vous enviseagez sérieusement de le faire, préparez vous à être asocial pendant quelques temps sur la toile.

Related Posts:

Posted in Uncategorized | Tagged | Leave a comment