Un nouveau navigateur pour les dévelopeurs ? 2
Lorsque l’on développe des applications web, une des principales difficultés est de le rendre compatible avec les différents navigateurs du marché : internet explorer bien sûr, firefox mais aussi safari et chrome.
Les tests deviennent alors fastidieux. En effet, d’une part il faut installer les différents logiciels, puis tester chaque scénario sur chacun d’eux.
Et s’il était possible d’avoir un navigateur capable de reproduire le comportement de tous les autres. C’est ce que nous propose lunascape. Un utilisateur peut ainsi visualiser une page et changer le moteur de rendu utilisé d’un simple click.
On retrouve aussi une navigation par onglet, un lecteur RSS, de podcasts, une gestion des favoris etc…
Pour l’instant, seule la version sous WIndows est disponible. A quand la version Mac et Linux ?
L’un d’entre vous l’a t-il déjà essayé ?
Anti-spam sur les formulaires 4
Ce soir je suis tombé sur cet article qui décrit une méthode particulièrement astucieuse pour éviter de se faire spammer sur les formulaires.
Alors bien sûr, il existe la fameuse captcha, mais je ne la trouve pas satisfaisante. Parfois, les séquences sont quasi-illisibles et cela rajoute de la complexité dans la saisie des formulaires. En ces temps où l’on cherche à simplifier et améliorer l’expérience utilisateur, nous devons penser à d’autres systèmes.
L’auteur nous explique sa méthode en se basant sur l’analyse suivante :
- les robots remplissent tous les champs de formulaire
==> l’ajout d’un champs masqué en css dans le formulaire permet de vérifier si le formulaire a été rempli par un être humain. Dans le code de soumission du formulaire, en vérifiant la présence de cette variable dans le POST, on peut vérifier la provenance.
- les robots remplissent les formulaires à une vitesse non humaine
==> en vérifiant le temps qui s’est écoulé entre l’affichage du formulaire et sa soumission, il est possible de vérifier si il a été rempli par un être humain.
Vous pourrez trouver la librairie PHP écrite par le bloggueur. Elle est particulièrement bien écrite.
Est-ce une bonne solution ? Comment un robot pourrait la contourner ? Vos avis ?
Is design dead
Il semblerait que l’implémentation des méthodes d’Extreme Programming serait incompatible avec les techniques de design comme UML, les frameworks, et même les design patterns. Il est vrai que d’une manière générale, les méthodologies agiles pronent le design évolutif et incrémentale.
Le design est il mort ?
Cet article de monsieur l’architecte Martin Fowler traite de cette question et introduit de nouvelles compétences dont les développeurs auront besoin s’ils veulent rejoindre une équipe agile : design simple, test driven developement, refactoring.
Pour ma part, j’ai adopté les méthologies agiles et je n’ai jamais eu autant l’impression de faire de l’architecture logicielle. L’objectif premier est de livrer de la valeur à nos utilisateurs, mais sans nous tirer une balle dans le pied. Donc si nous ne passons pas 3 mois à écrire des spécifications de plusieurs dizaines de page, ce n’est pas pour autant que le code n’est pas constamment analysé et refactorisé. Le design pattern est une réponse à un besoin de généricité, d’ouverture ou de simplification de code. Ce n’est pas un prérecquis.
25 techniques et exemples AJAX
Si vous êtes intéressé pour approfondir votre compréhension d’AJAX et ses applications dans le web, cet article vous propose 25 exemples / techniques.
- Rss reader
- chat
- intéraction avec google API
…..
Comment détecter les erreurs PHP E_NOTICE et E_STRICT dans son IDE
PHP n’étant pas compilé (on commence à le savoir), il est très facile de faire des erreurs de programmation. Et si le niveau d’erreur est supérieur à E_NOTICE ou E_STRICT, ces erreurs ne sont jamais remontées. Pourtant cela peut entraîner des erreurs lors de l’exécution, des allocations de mémoire inutiles….
Donc plutôt que de traquer les erreurs dans les logs php pendant l’exécution, Zend Studio dispose d’une commande très intéressante : l’analyseur de code (pomme-alt-Asous mac et ctrl-alt-a sous windows).
J’avais déjà parlé de Zend Studio dans cette note. C’est à mon sens le meilleur IDE Php du moment.
L’analyseur détecte ce genre d’erreurs de programmation :
- utilisation d’une variable non initialisée : l’exemple typique est un foreach sur une variable non initialisé qui peut provoquer une fatal error si la variable en question n’est pas un array
- déclaration d’une variable qui n’est jamais utilisée : pourquoi gâcher de la mémoire et des lignes de code ?
- utilisation de variables non testées dans des include : ce genre d’erreur peut être désastreux.
Exemple :
include($_GET["module])
En appelant l’url du script de cette manière : http://url_du_script?module=/etc/passwd, on affiche tous les comptes utilisateurs du serveur (dans le cas d’un serveur unix).
- if-else sans accolade : moins lisible et plus difficile à debugguer
- inconsistence des valeur de retour des fonctions "both empty return and return values are used in the function XXX" : manque de lisibilité et maintenance du code plus délicate.
Encore une fois, il est très facile de mal coder en PHP. Rares sont les applications professionnelles qui peuvent être exécutées avec un niveau d’erreur maximale. Je pense que tout développeur devrait avoir la rigueur de développer dans ces conditions.