Le virus "MySQL"

dans Coup de gueule Dimanche 30 décembre 2007, 19:24

Depuis quelques temps, j'étais à la recherche d'une solution pour synchroniser mes signets entre mes différents ordinateurs (perso, portable, travail) et pour pouvoir y accéder sur les postes "publics"

J'aurais pû simplement utiliser Del.icio.us mais je suis légèrement parano, je ne confie mes données personnelles à personne. Après quelques recherches, j'ai trouvé Scuttle. C'est un clone de Del.icio.us, open-source, en PHP et (soi-disant) multi-databases. En plus, son API service web est compatible Del.icio.us, ce qui veut dire qu'il fonctionne avec les extensions des navigateurs pour Del.icio.us. J'ai donc chargé les sources pour l'installer.

Première déception : le schéma des tables pour la base de données utilise des auto_increment. Puisque j'utilise PostgreSQL, il va y avoir un soucis, auto_increment est spécifique à MySQL. Qu'à cela ne tienne, je modifie le schéma pour qu'il soit compatible PostgreSQL (création de séquences).

Second problème : les requêtes ne sont pas faites dans les règles de l'art. Les données de comparaison (dates, chaines de caractères) sont encadrés par des double quote. Dans le standard SQL, tous ce qui est entre double quote est un nom de colone. Or, MySQL autorise que les données soit entre double quote. Là, ça fait beaucoup de modification à faire dans le code. Heureusement, j'ai trouvé sur le site de Scuttle un patch pour ça, visiblement quelqu'un avait déjà essayé de le faire tourner avec PostgreSQL.

Mais l'aventure n'est pas fini car le développeur a eu la bonne idée de mettre des majuscules dans ses noms de colone. Or le SQL est sensible à la casse lorsque les noms de colones sont encadrées par des double quote, mais pas MySQL... Il a donc fallu repasser partout pour rendre les requêtes corrects, et là il n'y avait pas de patch.

Bilan, quelques heures de travail et un patch proposé au développeur. Tout ça pour dire que MySQL avec toute la flexibilité qu'il permet dans le langage SQL, est comme un virus. On développe avec MySQL et ça fonctionne, alors qu'en réalité le code n'est pas correct. C'est exactement la même chose avec les navigateurs, ils ont commencé à accepter que les pages ne soient pas tout à fait correct, pour que le grand public puisse créer des sites. Le résultat c'est que les moteurs de rendus sont devenu d'une complexité incroyable, contraints à implémenter des pseudo-bug pour garder la compatibilité avec toutes les cochonneries que les gens ont pû faire.

Pourtant lorsqu'on développe, généralement c'est assez strict. Essayez de ne pas respecter la casse des variables en C, le compilateur va gentillement vous envoyer bouler...

Pas de commentaires :: Pas de rétroliens

Quand les développeurs s'improvisent administrateurs

dans Coup de gueule Vendredi 07 décembre 2007, 11:14

Dans mon travail je côtoie beaucoup de développeurs. Certains sont très compétent, d'autres un peu moins. Mais le vrai problème, c'est que beaucoup d'entre eux pensent pouvoir gérer leurs machines eux même.

Généralement, l'administration d'une machine par un développeur ça ressemble à ça :

  1. J'ai un problème, vite Google !
  2. Hum, ce fichier de configuration semble correspondre à mon besoin, je vais l'utiliser.
  3. Comment puis-je adapter ce beau fichier de configuration à mon cas ? Je vais touiller un peu.
  4. Super, c'est tombé en marche ! Bien, assez de temps perdu, passons à autre chose maintenant.

Quel est le problème ?

  • Tout d'abord, les fichiers tout fait trouvés sur Internet peuvent être excellent, réalisés par des gens très compétent. Ils peuvent aussi émanner de bricoleurs du dimanche qui jouent sur Ubuntu (non non, j'ai rien contre Ubuntu). Dans ce cas, le service ainsi configurer peut être vulnérable si la configuration est incorrecte.
  • L'autre problème, c'est la phase touillage. L'administrateur en herbe modifie son fichier, relance le démon et je regarde si ça marche. Il ne lui vient pas à l'idée de regarder dans les logs si un message quelconque apparait. Je tombe très souvent sur des fichiers syntaxiquement incorrect qui ont pour résultat des comportements incohérents, voire des effets de bord parfois très génant (arrêt complet du service à la moindre modification de contexte)

Tout ça pour dire à nos amis développeurs : n'hésiter pas à lire la doc et si vous ne savez pas, demandez conseil... L'administration, comme le développement, est un métier qui ne s'improvise pas.

1 commentaire :: Pas de rétroliens

Recherche rapide

Calendrier

« Décembre 2007 »
Lun Mar Mer Jeu Ven Sam Dim
1 2
3 4 5 6 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29
31