Mon rêve s'est enfin exaucé !

Depuis plusieurs mois, un petit malin ne fait que passer en roulant comme un malade, avec un quad. Sans casque, bien sûr, sinon il ne se sentirait pas plus malin que les autres.

Le bruit que fait cette machine est si fort, que même avec le double vitrage, si on parle avec quelqu’un au téléphone, l’interlocuteur l’entend et on est obligé de s’arrêter, ou de répéter ce qu’on vient de dire. Il y a deux semaines, je le vois passer, puis je vois la police, une voiture classique avec marqué « Police » en gros, bon bref, une petite voiture de Police tout ce qu’il y a d’habituel, passer avec un gyrophare et tout et tout. Nous avons enfin eu la tranquilité pendant quelques jours.

Et rebelotte : il s’est remis à passer, à faire plein d’aller-retours complètement inutiles. Bon, comme c’est une route qui est collée à un lycée, c’est certainement pour faire le gros malin. Aujourd’hui, mon rêve s’est enfin exaucé ! Je vois le quad passer pour la quinzième fois, en priant pour qu’il conduise, pour une fois, mal, et qu’il s’éclate complètement contre un mur. En le regardant, je vois l’intellectuel qui est au volant (enfin au guidon), se retourner plusieurs fois et je me dis « il y a quelque chose qui cloche ». Je le vois passer, tourner autour du rond point et puis deux secondes après, je vois une voiture de police banalisée, passer à fond, gyrophare, avec le passager en train de parler au micro de sa voiture. Mon rêve s’est enfin exaucé ! Wow ! J’espère sincèrement que ces gens qui n’ont aucun respect pour les autres, vont payer au niveau du désagrément qu’ils causent.

Pour une fois je peux le dire haut et fort :

Vive la police !

Zeemoz : créer un nouveau module C pour Apache

Aller dans le répertoire des sources, et taper :

/opt/httpd-2.2.4/bin/apxs -g -n modulenouveau

Il va créer un répertoire ./modulenouveau et à l’intérieur les fichiers Makefile et mod_modulenouveau.c, qui contient le squelette du code tel qu’attendu par Apache.
Ensuite il ne reste qu’à remplir.
Pour le script d’installation, il n’y a qu’à copier /usr/bin/modsearch_install.sh en modmodulenouveau_install.sh et modifier uniquement les variables $SOURCES et $MOD.

Linux : configurer screen

Le fichier de configuration qui est chargé pour tout le monde est /etc/screenrc
Le fichier de configuration personnalisé est $HOME/.screenrc
Voilà un exemple qui m’a pris du temps avant de réussir à le mettre en place :
# -------------------------------------------
# Bindings de compilation

# -------------------------------------------
# Olivier Pons / 15 avril 2008
bind -c compil x exec /bin/sh -c "cd /sources/zeemoz/search/ && modsearch_install.sh"
bindkey "^x" command -c compil

Traduction des commandes précédentes :

  1. Tu lies la touche x de la classe compil à l’ordre complet :
    exec /bin/sh -c "cd /sources/zeemoz/search/ && modsearch_install.sh"
  2. Si on fait « ctrl x », cela veut dire qu’il faut se mettre en attente d’une touche pour exécuter ce qui concerne la classe compil

Dit autrement :

  1. Définir tous les ordres qu’on veut que screen exécute via un raccourci clavier ;
  2. Les associer à une touche simple ;
  3. Les associer à une classe ;
  4. Définir la classe selon un ctrl quelque chose.

Les filtres Apache

Il existe plusieurs filtres, qui sont passés dans l’ordre lorsqu’ils arrivent au serveur, puis sont passés exactement dans l’ordre inverse lorsqu’ils repartent vers le client (un seul m’intéresse, le premier : à l’arrivé ce sont les filtre d’entrée, et lorsque cela repart ce sont les filtres de sortie) :

  1. AP_FTYPE_RESOURCE
    Pour les filtres de contenu : cela englobe tous les types de filtres qui peuvent modifier le contenu, cela va de la décomposition de pages XML qui arrivent, à la transformation d’images ou encore à l’assemblage de contenu qui arrive en plusieurs fois. Ce type de filtre peut changer complètement la nature du contenu de la requête. Par exemple, un filtre XSLT peut transformer le contenu d’une page XML en une page HTML ou en un fichier PDF ;
  2. AP_FTYPE_CONTENT_SET
    C’est la seconde étape du filtrage du contenu, qui est principalement destinée à empaqueter le contenu, par exemple le module mod_deflate (qui applique une compression de type gzip) ;
  3. AP_FTYPE_PROTOCOL
    Le troisième filtre, : le filtre habituel a pour fonction d’insérer les entêtes HTTP au début des données qui ressortent des filtres de contenu. C’est réalisé par un filtre intégré nativement à Apache : le filtre HTTP_HEADER(la fonction ap_http_header_filter exactement), donc les applications, en général, l’ignorent.
  4. AP_FTYPE_TRANSCODE
    On s’en tape, ça ne sert pratiquement jamais.
  5. AP_FTYPE_CONNECTION
    On s’en tape, ça ne sert pratiquement jamais.
  6. AP_FTYPE_NETWORK
    On s’en tape, ça ne sert pratiquement jamais.

Zeemoz : version ou config de libtool

Il y a souvent un problème avec soit la version, soit la config, de libtool.
Il faut toujours que libtool soit configuré pour compiler des librairies partagées, ce qu’il ne fait pas par défaut.
Il faut aller dans /opt/httpd/build/libtool et vérifier que le paramètre "build_libtool_libs" soit à "yes" :
# Whether or not to build shared libraries.
build_libtool_libs=yes

Linux : un serveur Knock (knockd). Mais c'est quoi ?

En résumé, il s’agit d’un système dit des « portes dérobées ». Le knockd scrute en permanence les paquets entrants et vérifie si certains d’entre eux répondent à une séquence prédéfinie, et si oui, il exécute une action. On peut imaginer une action qui est l’ouverture du port SSH pour l’IP à l’origine de la séquence.

Par ex, je décide que si une IP m’envoie un paquet SYN sur le port 342 en TCP, puis un paquet ACK sur le port 15161 en UDP, et enfin un paquet RST sur le port 63009 en TCP, alors j’ajoute une règle iptables qui autorise la connexion de cette IP sur le port 22 et qui forwarde cette connexion vers un autre ordinateur de façon transparente.

Le développeur se connecte alors en SSH sur mon ordinateur et se retrouve sur un autre comme par magie, de manière entièrement transparente pour lui. Simple, sûr et efficace.

Petite contrainte : il a faut un client « knock » qui envoie les bons paquets dans le bon ordre et au bon endroit. Il existe un binaire pour quasiment toutes les plateformes, Win32, Linux, MacOS, etc. Donc avant chaque connexion, il devra lancer une commande du genre :

./knock 293.15.12.12 ack:34562:tcp ack:961:udp rst:63009:tcp

Puis il pourra se connecter en SSH. Une fois la session terminée, il faut fermer la porte avec le même genre de commande. Pour se simplifier la vie on peut par exemple se faire 2 scripts, un « sshopen » et l’autre « sshclose » qui contiennent chacun la commande adéquate.

Je n'avais pas ri comme ça depuis longtemps. Merci ma fille !

Je rentre le mercredi midi pour manger. Sandrine a fait à manger, mais elle a craqué à dix heures du matin et mangé quelques petites sucreries, pour ne pas dire cochonneries : des oeufs en chocolat. Ma fille lui en a naturellement demandé et elle en a mangé aussi, bon bref, arrivé midi, personne n’a faim. Je prends l’assiette de ma fille, je la vide aux trois quarts, et je lui donne le peu qu’il reste et je lui dit :

– Inès, si tu mange ça je te donne le yaourt, d’accord ?

Elle me regarde, très sérieusement, elle attrape l’assiette, les sourcils froncés, elle s’enfourne une énorme bouchée, et instantanément me rend l’assiette pas vidée du tout, et me regarde, et me sort, la bouche pleine, en postillonnant, mais toute contente :

– Ayé terminé papa, yaourt ‘teupé !

Je n’ai pas pu m’empecher d’exploser de rire, et j’ai même eu une bonne crise de fou rire telle que je n’en avais pas eu depuis longtemps.

Elle est pas belle la vie ?

La perfection ne mène à rien

Ce conseil vient d’ici

Arrêtez d’être perfectionniste — essayez votre truc juste « comme ça » et voyez le résultat. C’est un conseil simple, mais je l’ai ignoré trop longtemps. Chaque article ne va jamais être excellent, ou recevoir la palme du meilleur article, au même titre que chaque nouveau design ne sera jamais un chef d’oeuvre idéal. Se prendre la tête sur chaque petit détail et repousser le projet jusqu’à ce qu’il soit réellement parfait ne fait qu’une seule chose : mettre des barrières à votre créativité.

De plus, si vous êtes perfectionniste, votre processus créatif est si épuisant que vous allez rapidement perdre votre motivation. Si chaque article prend trois heures à être écrit, mis en forme, et réfléchi correctement, vous allez écrire moins de chose, moins souvent, et vous allez oublier de plus en plus d’idées qui auraient pu être sympatiques. C’est le paradoxe du perfectionnisme : votre meilleur travail n’est produit que lorsque vous ne recherchez pas la perfection. Être perfectionniste est si démotivant que vous vous retrouverez à produire moins, et peut-être même que vous ne créerez jamais le chef-d’oeuvre qui montre réellement votre vrai potentiel.

Vous produisez le meilleur de vous-même lorsque vous ne recherchez pas la perfection absolue.

Cela ne veut pas dire que vous devriez baisser la qualité de ce que vous produisez. Diminuez juste un peu votre réticence à ne pas présenter votre travail s’il n’est pas complètement achevé. En d’autres termes, essayez d’enlever les barrières qui sont juste après votre créativité. Essayez aussi de deviner quelles sont les parties de votre travail qui vous ont pris trop de temps et cherchez un moyen de réduire ce temps ou supprimez carrément ces parties. Vous aurez alors plus de temps à passer sur les éléments essentiels de votre projet, et vous n’aurez pas perdu un brin de motivation lorsque vous aurez un nouveau projet à entamer.

McAfee : on n'a que des problèmes. Logiciel de merde.

Quel merde l’antivirus MacAffee

Nous n’avons eu que des problèmes au travail avec ce logiciel, et le tout dernier en date : il était impossible de faire une sauvegarde de la base de données !

La solution, après une journée complète de recherche : en résumé, lorsqu’on lance une sauvegarde de la base de données MySQL installée sur un Windows XP, il y a plein de fichiers temporaires qui sont écrits, et ce gros con de McAfee perd les pédales : il ne sait plus où il en est et interdit l’écriture de nouveaux fichiers ! C’est hallucinant, débile et scandaleux à la fois mais vrai. Voilà l’explication technique, comme quoi je ne rêve pas : MySQL explique la merde McAfee