Articles

Affichage des articles du 2010

Supprimer / Désactiver l'image de fond du site Google !

Image
J'ai les yeux qui me piquent à cause des images de fond que Google à décidé de nous infliger toute la journée. A tel point que je vous ai fait une image monochrome grâce à laquelle vous pouvez chasser les visuels agressifs de Google ! (Affichez l'image à sa taille d'origine en cliquant dessus puis enregistrez-la sur votre ordinateur)


Pour l'appliquer à votre page Google, sur le site Google c'est en bas à gauche que ça se passe.

Aller ! Bon courage pour la soirée, théoriquement cette atrocité doit se terminer demain !

Doctrine + Zend + Smarty : Le PHP Pro ?

Je viens de commencer à étudier la doc de Doctrine (http://www.doctrine-project.org/) un ORM pour PHP sinon l'ORM pour PHP et j'avoue être bluffé par le projet. On se trouve devant quelque chose de très pointu et de très bien pensé, couplé avec Zend pour la partie MCD et à Smarty/jQuery pour un rendu souple en HTML5 par exemple, ces outils font de PHP un langage vraiment performant et déjà taillé pour de la production industrielle.
Une question reste, les grands dirigeants prendront-il le risque en cette période difficile de passer vers du full-web ? Les économies évidentes avec ce type de solution, tout en s'orientant vers une architecture des projets toujours plus "professionnel" devraient tout de même les guider dans leurs choix.
Évidement on utilise pas le ZF ou Doctrine pour des petits projets...
D'ailleurs, tant que j'y suis, Google donne un coup de pouce à Eclipse !

Adobe Reader 9.3.2 compatible TSE 2008 x64 !

Je viens de tester la nouvelle version d'Adobe Reader sur un serveur 2008 TSE x64 et ça fonctionne très bien !

Voici la procédure pour empécher les mises à jour de se faire (ce qui a le don de perturber ma centaine d'utilisateur)

1) Installer adobe à partir du site Internet d'Adobe : http://get.adobe.com/fr/reader/otherversions/
2) Vérifier éventuellement la présence d’une mise à jour une fois le fichier installé.
3) Installer éventuellement la MAJ et redémarrer la machine.
4) Dans le répertoire d’installation, créer un dossier « plug_ins-disabled »
5) Copier les fichiers « Updater » et « Updater.FRA » du dossier « plug_ins » vers le dossier « plug_ins-disabled »
6) Dans le répertoire d’installation, renommer le fichier « reader_sl.exe » en « _reader_sl.exe »
7) Dans le répertoire d’installation, renommer le fichier « AdobeUpdater.dll » en « _ AdobeUpdater.dll »
8) Lancer Acrobat Reader et vérifier que les mises à jours ne se font p…

KISS !

Non je ne suis pas devenu fan sur le tard de ce groupe de musique, mais plutôt de l'acronyme : "Keep It Simple Stupid !"

Pour cela et à ceux qui chercheraient comme faire j'ai ces quelques adresses !
- Smarty : http://www.smarty.net/
- jQuery : http://jquery.com/
- AjaxUpload : http://valums.com/ajax-upload/

Autant je ne suis pas pour faire ce qui a déjà été fait, autant je suis pour rester maitre de sa solution et donc me passer autant que possible des Frameworks souvent optus.

Les Frameworks c'est bien, ne pas se construire sa solution dessus c'est mieux ! Ces quelques adresses suffisent la plupart du temps pour réaliser votre solution web. Pour le reste c'est sur vous qu'il faut compter ! Après tout, c'est pour cela que votre travail est reconnu pour sa créativité et son efficacité... et c'est aussi pour cela qu'on vous paye !

Alors faites comme moi et gardez votre code sous contrôle !

Serveur d'impression PHP

Image
Je suis actuellement en train de réaliser un serveur d'impression PHP.

Les specs :
- Gestion des imprimantes thermiques
- Gestion des bacs pour les imprimantes laser
- Gestion simultanée des travaux d'impressions
- Spooler d'impression déporté.

Le tout développé dans l'optique d'une utilisation en ligne, pouvant être adaptée aux serveurs PHP locaux.

Les documents seront générés sous 2 formats par le site :
- EPL/ZPL : Source des imprimantes thermiques
- PDF : Reportings et autres documents.

Pour les documents thermiques (générés via ZebraDesigner), les éditions seront directement envoyés vers l'imprimante contenue dans le job. Pour les PDF, il passeront à travers l'outil "pdftops.exe" (multiplateforme) du package XPDF avant d'être éventuellement modifiés pour changer le bac d'impression par la directive :


Le tout sera biensûr multitâche afin d'éviter qu'une édition de 100Mo qui est en cours de téléchargement ne vienne perturber l&#…

Chargement et Déchargement dynamique des scripts JS pour une utilisation Ajax

Un petit code à tester...

// Permet de charger un script JS à la volée.
function LoadScript(scrPath, scrName) {
  var oScript = document.createElement('script');
  oScript.src = scrPath;
  oScript.setAttribute('name',scrName); document.body.appendChild(oScript);
}
// Décharge le script JS de la page.
function FreeScript(scrName) {
document.body.removeChild(document.getElementById(scrName));
}

Authentification "Sécurisée" via PHP/MySQL et JS

Je viens de mettre en oeuvre une méthode d'authentification "sécurisée" entre un navigateur et le serveur afin d'authentifier les utilisateurs sans pour autant faire passer le mot de passe en clair sur le réseau.

Une première version de mes scripts d'authentifications cryptais en MD5 le mot de passe de l'utilisateur avant de l'envoyer. Le serveur ne stockant que les mots de passes en MD5 la sécurité était correcte. Aujourd'hui il est cependant très facile de trouver la provenance d'un Hash MD5. Pour vous faire une idée, codez un hash simple en md5 (ex: 5EB63BBBE01EEED093CB22BB8F5ACDC3) et donnez-le à ce site : http://passcracking.com/ vous serez surpris du résultat.

Il fallait donc trouver autre chose. Après avoir parcouru un bouquin sur la mise en œuvre du WIFI, j'ai trouvé que la méthode de cryptage par clé WEP était plutôt appropriée à notre cas. Certes il est facile de retrouver une clé WEP en WIFI... Mais si vous ne pouvez pas écouter le …

Perte des dossiers compressés dans l'Explorer

Si vous aussi vous avez eu des utilisateurs TSE qui ont eu la bonne idée d'associer les fichiers .ZIP avec Internet Explorer voici la solution :

Aller à la clé suivante :
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.zip

Cette clé ne doit contenir qu'une seule et unique sous-clé : "OpenWithProgids"

Dans cette sous-clé il faut créer (si elle a été effacée) un valeur binaire vide se nommant : "CompressedFolder"

Fermez la session et ré-ouvrez là.

En finir avec les corruptions d'URL d'Apache sur une base PHP/MySQL

Pour notre plateforme d'hébergement, nous utilisons le virtual host d'Apache dans sa version "Mass Hosting". Pour lier une URL à son emplacement local, nous stockons en base de données MySQL les informations sur les domaines présents sur le serveur via un couple URL / PathLocal dans une table dédiée.

Apache est configuré afin que pour chaque requête HTTP, il vérifie quel path local utiliser en fonction du domaine appelé. Il utilise pour cela un petit programme PHP interprété par le serveur qui, lorsqu'il reçoit un nom de domaine sur l'entrée standart répond soit par le PathLocal si il le trouve en base sinon il renvoie "NULL".

Notre problème était qu'en cas d'un nombre important de requêtes web le module mod_rewrite se comportait d'une manière aléatoire et corrompais les paths locaux.

Après plusieurs jours de recherches sur d'éventuels bugs d'Apache, ou du script PHP, il s'avère qu'il suffit d'ajouter la directive suivan…