SQL, caractères spéciaux et code d’échappement

Dans une chaine de recherche type LIKE en SQL, les caractères % et _ servent respectivement à indiquer {n’importe quelle chaîne} et {n’importe quel caractère} hors il arrive de devoir rechercher ces caractères qui doivent donc être précédé d’un code d’échapement.
Ce code est fixé en ajoutant après le LIKE la commande ESCAPE suivi du caractère d’échapement.

Par exemple : recherche une chaîne contenant le caractère % suivi de _ : SELECT … WHERE … LIKE ‘%\%\_%’ ESCAPE ‘\’

Limitation mémoire de Php

La config de PHP par défaut limite la taille mémoire à 8Mo ; lors de traitement PHP d’image par exemple, cette limitation ne permet pas d’aboutir au résultat attendu et le serveur retourne une erreur comme celle-ci :

Fatal error: Allowed memory size of 8388608 bytes exhausted…

La solution est d’augmenter la limite par defaut en modifiant le fichier /etc/php.ini de configuration de PHP. La variable en cause est memory_limit qu’il faudra passer à une valeur plus grande.

Installation de l’environnment de dev pour SPARTAN (Xilinx) sous linux

Après avoir reçu mon kit Spartan-3 de Xilinx 🙂 🙂 … sur lequel j’aurai bien l’occasion de revenir par ailleurs, je découvre avec un enorme plaisir que CA Y EST ! Xilinx fournit une version Linux de son outil de développement. Après deux an d’abstinence coté FPGA, snif, je suis heureux de faire ce retour aux sources sur mon environement favori !

Avant tout, j’ai réalisé l’installation sur une distribution Suse 9.2 avec un noyau 2.6.8.

Après téléchargement depuis le site de Xilinx des fichier adéquat : WebPACK_71_fcfull_i.sh, j’ai du faire quelques manips avant de lancer l’install :

  • Autoriser l’ouverture de display : xhost +
  • Passer root : su
  • modifier l’export par : export DISPLAY=:0

Pour enfin lancer le script d’install ; celle-ci bloque quelques secondes après la validation du répertoire cible mais rien de grave, l’installation continu quelques instants plus tard. A noter que les librairie OpenMotif doivent être installées (libXm.so.3)
En fin d’installation, les choses se compliquent : les drivers parallèle et usb de programmation sont compilés pour des noyau 2.4 il faut donc procéder à une petite recompilation manuelle …

1. Installer tout ce qu’il faut sur Linux

En premier lieu, il vous faudra installer les sources du noyau à l’aide de yast. Ensuite, les manip suivantes doivent être faites :

  • cd /usr/src/linux
  • make cloneconfig
  • make prepare

Il faut ensuite donner les droits à qui de droit sur le port parallèle (pour utilisation future) :

  • chmod a+rw /dev/parport0 (par exemple)

2. Télécharger les sources du driver

Les sources sont ici ou alors en version alégée et deja modifiée . Préférez le premier liens ou celui-ci au cas où…
La décompression des sources est classique : tar -zxvf fichier.tgz
Enfin, allez dans le répertoire adéquat normalement linuxdrivers/xpc4drvr/

3. Modification des sources

Si vous avez la version allégée et modifiée des sources, tout est dejà fait sinon, il y a quelques points rapide à réaliser :

  • Supprimer le Makefile pour le remplacer par celui-ci
  • Editez xpc4.c et remplacer #include par #include <config/modversions.h>
  • Ajoutez ensuite à la suite des includes le suivant : #include
  • Pour les noyau 2.6.1x et/ou suse 10, il faudra aussi mettre en commentaire les lignes contenant les macros MOD_INC_USE_COUNT et MOD_DEC_USE_COUNT

4. Compilation et installation

Etape finale : compiler le driver, simplement par la commande make
Pour charger le driver, il suffira alors en temps que root de taper la commande insmod ./xpc4drv.ko
Le driver peut enfin être copié là où l’installation le place normalement à savoir dans le répertoire /lib/modules/misc.

5. Le driver windrv6

Il a fallu attendre quelque temps, mais ce driver propriétaire est enfin compatible avec les noyaux 2.6. Il faudra le télécharger à l’adresse suivante : jungo.com. Le site demande une inscription. La version que j’ai utilisé est une 7.1. L’installation se fait après décompression en alant dans le répertoire WinDriver/redist.
1. Lancer ./configure
Rq du 13/11/05 : Les modifications qui suivent ne semblent plus nécessaires avec la version 7.2 du driver.
2. éditer le makefile et changez :
2.a. KERNEL_DIR= /usr/src/linux/
2.b. Supprimer tous les -I… de la ligne CFLAGS
2.c. Ajouter en début de CFLAGS -I../include -I/usr/src/linux/include -I/usr/scr/linux/include/asm-i386/mach-default/
3. compiler : make install

Une version dejà modifiée du Makefile est ici
Le driver est ensuite à copier manuellement dans le repertoire /lib/modules/misc. Il sera lancé par /sbin/insmod /lib/modules/misc/windrvr6.ko.

6. Utilisation

Pour la suite, il reste à lancer iMPACT et la détection automatique à partir du boundary scan s’est bien passée pour ma part. La programmation fonctionne.

Configuration de mod_rewrite et mod_jk pour fonctionner ensemble

Suite à la mise en oeuvre de l’url rewriting sur un site, j’ai rencontré des problèmes avec mod_jk. En effet, dans le process standard, après traitement des url par mod_rewrite, les nouvelles url générées ne sont pas passées à mod_jk. La solution consiste simplement (mais il faut se palucher la doc !) à faire suivre la règle RewriteRule du flag [PT] comme Path Throught qui permet de refaire passer le requete par les autres modules. Ceci s’applique donc à mod_alias et co.

Mise à jour en 2009 ; apres avoir connu des soucis avec le [PT] devenu [P,T] pour fonctionner correctement, me revoila à devoir utiliser [PT]… Cette fois le symptome etait etrange : avec [P,T] le dernier site de la liste ne fonctionnait pas alors que les autres marchaient bien eux… La configuration est apache 2.2.9 et tomcat 5.5 ! allez comprendre !

LUG, distribution massive de CD Linux

Superbe réussite pour Linux Arverne que d’avoir pu mettre au point une telle opération de distribution massive de CD Linux … L’évènement mérite d’être salué, mais doit-il être réellement applaudit, c’est la question que je me pose suite à cette annonce.
En effet, la démocration du libre ne doit elle pas passer pas la liberté de chacun d’aller vers le libre ? dans une telle démarche, c’est le libre qui vient à vous, de manière plutot forcée alors que récupérer soit-même une distribution et la graver demande maintenant 15 à 20 minutes sur les connexions Internet actuelles.

La question que je me pose derrière celà, est aussi la suivante : l’investissement réalisé de 41 650 euro, payés par la région et donc l’impots est il rentable sachant que, c’est une estimation personnelle, moins de 10% de ces CD vont réellement être utilisés. Cet investissement n’aurait-il pas pu être mieux employé en mettant par exemple en place des formations aux systèmes libres pour les lycéens, des salles de PC en libre service dans les établissements ou en financant un projet libre (Linux, notre noyau, n’aurait pas couté autant (initialement) s’il avait été financé).

Par ailleurs, comment le support va-t-il être réalisé ? Linux, bien que de plus en plus convivial n’est pas encore compatible avec tous les périphériques, surtout ceux de la machine-Auchmouth-pas-chere-et-dernier-cri de monsieurs tout le monde.

En bref, je reste persuadé que Linux ne s’impose pas aux utilisateurs, ce doit être un choix que les LUG doivent démontrés, d’abord aux entreprises, aux administrations et enfin aux particuliers courageux . Un utilisateur déçu ou ayant eu du soucis lors de l’utilisation d’un logiciel étant aussi un utilisateur perdu pour longtemps…

Mais comme cette action vaut mieux que de ne rien faire, je ne peux finalement dire que bravo et bon courrage.

Bug IE6 lors de la création de DIV vide

Un petit bug IE un peu pénible à trouver : lors de la création d’un DIV vide (par exemple pour créer une ligne de couleur en travers d’une page, IE ajoute une sorte de marge ou de padding et ne respecte donc pas vraiment les contraintes height et width mises dans le css.
La solution est simple : trsnaformer ce DIV vide en un div non vide en ajoutant un commentaire vide au milieu…
<DIV> <!– –></DIV>

Mise à jour de Windows avec authentification

Un grand éclat de rire aujoud’hui, Microsoft vient de lancer l’authentification des utilisateurs lors des mises à jours et téléchargements de logiciels sur son site. Ce système doit empécher que des utilisateurs n’ayant pas obtenus légalement leur licence téléchargent les dits programmes. En soit, cette mesure très légitime est une bonne chose, outre le prix exorbitant des logiciels ainsi protégés et, à mon avis, inadapté à une cible grand puplique.
Bref, là n’est pas l’objet de cette brève puisque la blague du jour est l’arrivée du programme de contournement deja diffusé. Rien d’etonnant me direz vous, je ne suis d’ailleurs aucunement surpris ; ce qui me fait rire par contre c’est la simplicité du contournement ou plutot l’extrème minimalisme de la protection : une blague !! En effet l’analyse du script est simple : il s’agit bêtement de l’ajout d’un cookie sur le poste indiquant que l’authentification est réussie !!! autant dire qu’un gamin bricolo de 14 ans pouvait à la fois inventer cette protection et la casser !

Tout ça pour en venir à l’idée suivante : quand on est le numéro 1 de l’informatique mondiale, que l’on compte parmi ses employés sans doute ce qu’il y a de meilleur et que l’on met en place une blague pareille, ca ne peut s’appeler que du marketing !! Au fait, Microsoft ne propose-t-il pas en même temps une offre “très aléchante” pour se mettre en règle et payer sa licence ? Ou comment investir un minimum pour juste doper ses ventes !

Pour ma part, si je voulai luter contre le piratage et ainsi récupérer des millions de dolards de licences qui m’échappent j’investirai un peu plus qu’une centaine d’euro dans mon système de sécurité … mais bon !

Synchronisation Palm et PC sous Windows XP

La synchro entre le palm et le PC sous win XP au travers de l’infrarouge n’est malheureusement pas toujours surper aisée à mettre en oeuvre… pour ma part j’ai du chercher un moment avant de trouver la bonne solution.
Une fois l’IR installé sur le portable et HotSync configuré pour accepter la synchro IR, il faut encore vérifier quelques points dans la config de la “liaison sans fil” avant de faire fonctionner la synchro… Dans le panneau de configuration, dans le gestionnaire des Liaison sans fil, il faut vérifier que :

1- Le Transfert d’image ne soit pas activé
2- Dans les propriété du Matériel, puis dans Avancé le paramètre Speed Limit soit bien à 57.6kbps

Une fois celà vérifié, la synchronisation devrait bien se passer et le message “port utilisé par une autre application” devrait disparaitre..