Programmation

Script AWStats 2

Saturday, 18 February 2012
|
Écrit par
Grégory Soutadé

Il y a presque 5 mois, j'avais mis à disposition un script permettant de voir les dernières phrases clé d'Awstats en les comparant à la fois précédente, ce qui est plus pratique que de voir tout d'un bloc. Le petit problème du script était qu'on ne pouvait pas rafraîchir deux fois dans la journée sinon la différence se faisait sur des données serveur à jour.

 

Voilà donc une version légèrement améliorée qui n'écrase plus les données si elles ont été rafraîchies dans la journée.

Agrandisseur/Décodeur/Encodeur d'URL

Tuesday, 31 January 2012
|
Écrit par
Grégory Soutadé

 

Nouveau service "web" sur le serveur : un agrandisseur/décodeur/encodeur d'URL. Concrètement, à quoi ça sert ?

 

Décodeur/Encodeur d'URL

Il permet de transformer une URL (adresse internet du type http://www.soutade.fr) au format valide pour une requête HTTP. C'est à dire qu'il va, par exemple, transformer les espaces en %20 et inversement pour le décodage. Ça ne sert pas forcément tous les jours, mais c'est gratuit en php (rawurlencode/rawurldecode).

 

Agrandisseur d'URL

C'était la fonction première de la page. Personnellement je ne supporte pas les URL du style http://goo.gl/QzE9b C'est très utile pour des services comme twitter où le nombre de caractères est limité, mais dans la vie courante et avec les moyens informatique actuels c'est inutile. Inutile et potentiellement dangereux car l'internaute ne sait pas vers quoi l'URL redirige, on peut donc très bien tomber sur un site malveillant.

La page est simple (pas que ça à faire) et surtout ça évite de chercher des mots compliqués (unshortener, url decoder) quand on a besoin de ces services !

Pour éviter l'utilisation malveillante, le nombre de requêtes est limité à 10 par session.

Autojump2

Monday, 23 January 2012
|
Écrit par
Grégory Soutadé

Il y a peu j'avais fait un article sur un petit utilitaire IN DIS PEN SABLE. Autojump de son petit nom. Pour ceux qui ont oublié : Autojump permet de se déplacer rapidement dans l'arborescence en enregistrant les dossiers dans lesquels on va le plus souvent puis en les rendant accessible via la commande "j" suivi d'un pattern. Exemple, je suis à la racine de mon dossier (~/), il me suffit de taper "j kc" pour aller directement à "/home/soutade/projets/kc". Plus fort encore, si je tape "j k[tab]" la complétion me donne directement "j "/home/soutade/projets/kc"".

J'avais adapté Autojump à ma sauce pour qu'il étende la commande cd et j'avais aussi rajouté d'autres options pour gérer la base de données. Mise à part quelques corrections mineures, mes modifications n'ont pas été intégrées dans la version originale (différence de philosophie principalement).

Bref, ceci est un temps révolu. Ma nouvelle version d'Autojump est arrivé : Autojump2 (pour garder la référence à la version originale). Ce n'est pas un fork, ce n'est pas non plus une vraie suite puisque le code a été totalement ré écrit.

Autojump2 c'est donc plus fort, plus rapide et plus intelligent qu'Autojump*. Comme dans ma version modifiée, on n'utilise plus "j", mais directement "cd", on peut ajouter/retirer/modifier nos dossiers préférés à la base, les retrouver grâce à la complétion automatique. Et surtout grande nouveauté : lister automatiquement un ensemble de répertoire !! Toutes les fonctions de cd sont préservées et il n'y a plus un accès à la base pour chaque utilisation de cd (seulement quand c'est nécessaire).

Exemple tiré du README

Arborescence

proj/
|--- v1/
|--- v2/
|--- v3/
|--- branch/
|--- v2/

 

cd --add proj/v2
>>> '/home/soutade/proj/v2' correctly added to database
cd -a proj/v1
>>> '/home/soutade/proj/v1' correctly added to database
cd -a proj/\\*
>>> '/home/soutade/proj/*' correctly added to database
cd --add proj/branch/v2
>>> '/home/soutade/proj/branch/v2' correctly added to database

cd --list
/home/soutade/proj/branch/v2
/home/soutade/proj/v1
/home/soutade/proj/v2
/home/soutade/proj/*
>>> /home/soutade/proj/branch
>>> /home/soutade/proj/v1
>>> /home/soutade/proj/v2
>>> /home/soutade/proj/v3

cd v2
/home/soutade/proj/branch/v2

cd v[tab][tab][tab]
v__1__/home/soutade/proj/branch/v2
v__2__/home/soutade/proj/v1
v__3__/home/soutade/proj/v2
v__4__/home/soutade/proj/v3

cd v__2
/home/soutade/proj/v1

cd v[tab][tab][tab]
v2__1__/home/soutade/proj/branch/v2
v2__2__/home/soutade/proj/v2

cd v2__2
/home/soutade/proj/v2

*Aucun benchmark n'a été réalisé

Changement d'ABI pour X.org et dirvers NVIDIA

Monday, 03 October 2011
|
Écrit par
Grégory Soutadé

Mise à jour du serveur X.org et donc ... problèmes avec les drivers NVIDIA. Le fichier de log /var/log/Xorg.0.log nous indique un changement de version d'ABI du serveur X. Si la dernière version des pilotes (NVIDIA-Linux-x86_64-280.13) supporte la compilation sous Linux 3.0, ils n'ont pas encore pris en compte ce changement d'ABI (c'est peut être en cours de test).

[    48.968] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[    48.968] (II) Module nvidia: vendor="NVIDIA Corporation"
[    48.968]    compiled for 4.0.2, module version = 1.0.0
[    48.968]    Module class: X.Org Video Driver
[    48.969] ================ WARNING WARNING WARNING WARNING ================
[    48.969] This server has a video driver ABI version of 11.0 that this
driver does not officially support.  Please check
http://www.nvidia.com/ for driver updates or downgrade to an X
server with a supported driver ABI.
[    48.969] =================================================================
[    48.969] (EE) NVIDIA: Use the -ignoreABI option to override this check.
[    48.969] (II) UnloadModule: "nvidia"
[    48.969] (II) Unloading nvidia
[    48.969] (EE) Failed to load module "nvidia" (module requirement mismatch, 0)
[    48.969] (EE) No drivers available.

La solution temporaire, mais fonctionnelle, (les deux version étant assez proche pour tenter cette manip) est d'ignorer la vérification de la version d'ABI lors du lancement du serveur X. Pour cela il faut éditer le fichier /etc/X11/xorg.conf :

Section "ServerFlags"
Option  "IgnoreABI" "True"
EndSection

Script AWStats

Wednesday, 21 September 2011
|
Écrit par
Grégory Soutadé

MAJ du script ici

J'aime bien suivre au jour le jour les statistiques du blog, ça fait passer 5 minutes et parfois cela permet de mieux répondre aux attentes des internautes (quand un mot clé revient régulièrement, mais que l'article proposé ne répond pas forcément à la question). À ce propos mes stats ont été divisés par 2 ou 3 depuis septembre ... Bref elles sont générées via AWStats. Il est un peu lent, mais quand on y est habitué on en tire plein d'informations intéressantes. Le problème principal d'AWStats est qu'il n'est composé que d'un seul fichier PERL de 20 000 lignes, ce qui le rend relativement indigeste et difficile à manipuler pour un néophyte.

L'objectif du jour est d'obtenir les nouvelles phrases clé par rapport à la dernière mise à jour. Pour cela j'ai réalisé un petit script PHP qui va brutalement analyser la sortie HTML d'AWStats et afficher dans un tableau : les nouvelles lignes en vert, les lignes mises à jour en jaune et les lignes supprimées en rouge. Le script est basique, il n'y a pas de gestion de date (si on rafraîchit deux fois dans la même journée), mais fonctionne plutôt bien.

Le script est disponible ici