Christophe Le Bot

  • Navigation rapide
Pratique de la conception numérique

Derniers commentaires

  • Installer Drupal 6 sur un serveur mutualisé OVH
    • Damien | Bravo pour ce billet, simple, efficace. J’aimerais trouver ce genre de réponse qui marche tout le temps !
  • Test d’interface : paiement d’amendes en ligne
    • Benoit | Bonjour, euh, moi je n’ai rien compris à ce stratagème pour faire oublier la clé (manquante) à l’interface de saisie. Je saisie les 14 chiffres de mon avis, le javascript saute...
  • Un bon petit rythme pour 2010
    • Christophe | @ Développeur Magento Moi aussi, j’ai hâte… mais de le finir ! C’est du boulot, beaucoup de boulot. @Maxime Merci pour le compte-rendu.
    • Maxime | Bonjour, voici un petit livrento, ou plutôt un résumendo (On croirait parler espagnol ou italien, c’est fun :-p ) de l’Apérogento qui s’est déroulé à Lyon mercredi 30...
    • Développeur Magento | J’ai vraiment hâte de lire ce livrento !
 

Archives
août 2007

Nouvel iMac, et toujours le même phénomène…

Le nouvel iMac d’Apple vient de sortir. Encore une fois, il suffit de voir ce produit Apple pour qu’immédiatement tout ce qui existait auparavant ait un petit air d’obsolescence…

Je ne vais pas m’étendre sur ses caractéristiques puisque des centaines d’autres sites l’ont déjà fait. J’en garde juste une image redoutable.

Comparaison iMac / Dell XPS 410
Comparaison iMac / Dell XPS 410 (photo Apple).

Ce que j’aime dans cette comparaison, c’est qu’Apple a fait l’effort de choisir une machine concurrente au « design soigné » qu’on pourrait qualifier de « belle » dans le monde PC. Pourtant, le fossé qui sépare Apple des autres constructeurs en matière de design et d’innovation est abyssal…

Piloter et sécuriser ses bases de données avec MySQL Proxy

MySQL Proxy

MySQL Proxy, proposé par MySQL AB, est le genre d’outils dont le rôle semble si évident qu’on se demande pourquoi il n’existait pas avant. Comme tout proxy, il récupère les requêtes destinées à la base de données, effectue des traitements et adresse une requête modifiée au serveur MySQL. Bien entendu, l’opération inverse est aussi gérée : MySQL Proxy sait récupérer un résultat de requête et le transformer avant de l’adresser au client initial.

Fonctionnalités

Après cette petite présentation, on peut se demander pourquoi on aurait besoin d’un proxy, puisque les services applicatifs (s’ils sont correctement architecturés et codés…) devraient envoyer une requête optimisée au serveur MySQL. Une petite liste des fonctionnalités finit par convaincre de son intérêt :

  • Analyse des requêtes
  • Filtrage et modification des requêtes et des résultats
  • Injection de requêtes
  • Load balancing
  • Exécution de scripts (basés sur le langage LUA)

Cas d’utilisation

Dans la pratique, on peut imaginer les situations suivantes :

  • Corriger les erreurs de syntaxe communes.
  • Garantir le fonctionnement d’anciennes applications utilisant des requêtes non supportées.
  • Supprimer du résultat un mot de passe demandé dans la requête.
  • Récupérer et fusionner avec le résultat des données externes à la base de données (fichiers, flux XML, RPC…)
  • Router les requêtes vers un autre serveur MySQL ou vers une autre base de données du même serveur.
  • Empiler un lot de requêtes et les contrôler avant de mettre à jour les tables.
  • Dupliquer les requêtes en temps réel sur deux bases différentes.
  • Exécuter un script shell avant ou après des modifications dans la base de données.
  • Interdire certains motifs de requêtes.
  • Verrouiller des tables selon le contexte.
  • Contrer les injections SQL non désirées.

On le voit, les possibilités sont infinies et ne dépendent que des contextes de production et de l’imagination des développeurs. MySQL Proxy permet surtout d’éviter d’intégrer la gestion de l’exploitation des bases de données MySQL dans les services applicatifs. Voilà enfin une saine séparation du travail du développeur métier et de l’administrateur MySQL !

Mise en oeuvre

MySQL Proxy est encore en version alpha et son fonctionnement n’est garanti que pour les versions MySQL 5.0.x et ultérieures.

Pour découvrir ses possibilités, O’Reilly Network propose un didacticiel clair et très fourni : Getting Started with MySQL Proxy.

Source : Linuxfr.org

Trouver un motif dans un fichier de log avec PHP

Rien de plus exhaustif qu’un fichier de logs ! Pourtant, nous les consultons rarement pour la simple et bonne raison qu’ils sont particulièrement indigestes (nous devrions apprendre à lire la matrice…). Bien entendu, il existe un tas d’outils pour analyser et construire une synthèse à partir des données de log. Mais il arrive souvent qu’on ait besoin d’un détail que la synthèse n’apporte pas. Dans ce cas, lecture obligatoire du fichier de log de 157843 lignes… avec un petit script en PHP pour extraire les informations qui nous intéressent. Ouf !

<?php

/* Le fichier de log à analyser */
$fichier = "fichier.log";

/* Le motif à chercher */
$s = "google.fr";

/* Analyse et résultat */
$motif = "/$s/";
$pointeur = fopen($fichier, "r");
$i = 0;
if ($pointeur) {
    while (!feof($pointeur)) {
        $ligne = fgets($pointeur);
        if (preg_match($motif, $ligne, $r)) {
            echo $ligne . '';
            $i++;
        }
    }
    fclose($pointeur);
    echo "Motif '$s' trouvé $i fois.";
}

?>