javascript eval global : part 2

le mardi 27 février 2007

Après une première approche non sans faille de l’évaluation d’un code javascript dans un contexte global , voici la seconde version, compatible FireFox et IE et tout les navigateurs dérivés.

 

Et oui il fallait savoir que le navigateur de l’homme le plus riche du monde implémente une méthode : window.execScript inconnu des standards.

Cette méthode n’est pas compatible avec Safari. Je travaille encore dessus mais il semble que KHTML (le moteur de base de Safari et de Konqueror) soit allergique à une déclaration propre…

La méthode utilisé par les framework tel que prototype semble être celle qui donne le meilleur résultat. Il s’agit de la méthode setTimeout(code,0) seulement les variables évaluées ne sont disponibles que dans un prochain appel non inline (provoquer par un évênement ou bien un autre appel avec setTimeout).

J’ai déjà passer beaucoup de temps dessus sans succès… De plus pour tester les résultat j’utlise Swift qui implémente le même moteur que Safari (WebKit) et on ne peut pas dire que ce soit une lumière… normal c’est un safari 🙂

Il y aura donc surement une troisième partie, entièrement compatible cette fois.

mise à jour : Et la voilà, code final pour un eval javascript propre

OpenLaszlo : Flex et AJAX pour tous

le mardi 20 février 2007

openlaszloJ’étais en train de me dire que je remodelerais bien mon lecteur video sans utiliser les composants Flash (FLVPlayback) et vu que depuis plusieur jour je me branche sur xml, je me suis dit pourquoi pas testé Adobe Flex (c’est moi ou ça sent mauvais tout à coup ?). Et vu que prix donne encore moins envie que le nom (qui me fait penser à daube + spontex 😀 ), je me suis dit, il y en a bien qui sorte des serveurs Flash open-source, pourquoi pas Flex open-source (déjà direct ça sonne mieux) ?

la réponse : OpenLaszlo

Il n’utilise pas toute à fait la même technologie : Flex utilise MXML, language dérivé de XML alors que OpenLaszlo utilise XML et JavaScript, le but étant le même : créer des animations flash simplement à partir d’instructions et non uniquement à l’aide d’un IDE. Cependant OpenLaszlo va plus loin, à partir de votre fichier XML (le code de votre appli) il est capable de la resortir en Flash ou bien, en DHTML !!!

Alors là je dit chapeau, la compatibilité a l’air d’être repecté au maximum, votre animation Flash ressort en HTML avec javascript. Je vous invite vivement à tester les exemples, il faut le voir pour le croire.

domxml et php5

le lundi 19 février 2007

je voulais formatter des données xml à l’aide d’une feuille de style xsl lorsque je me suis aperçu que même en suivant à la lettre les exemples de php.net, la class DOMDocument me retournait une erreur :

span class="co1">// retourne l'erreur :
// domdocument() expects at least 1 parameter, 0 given

J’ai éssayé sur un serveur distant… tout marche !!!

Alors en vérité, c’est une question de version. En php4, on utilise l’extension domxml, et en php5 l’extension DOM.
Seulement domxml n’est pas compatible avec DOM. Il est donc déconseillé d’inclure l’extension domxml en php5 car les fonctions sont surchargé.

Comme mon serveur local est en php5, il fallait simplement enlever php_domxml du php.ini.

Si vous voulez transformer vos script de php4 à php5, vous pouvez toujours inclure l’extension domxml/php5 sachant que vous ne pourrez plus utiliser l’extension DOM. Cela dit, je vous conseille plutôt de passer de domxml/php4 à dom/php5.

le multi-touch pour très bientôt

le jeudi 15 février 2007

J’attend avec impatience la sortie d’un OS qui prenne en compte les écrans multi-touch d’Apple.

Plusieur rumeur affirme que le système présent sur le future iPhone est une version allègé de Mac OSX Leopard, le futur OS d’Apple. Si tel est le cas, on peut supposer que Leopard serait capable de prendre en compte le mutli-touch, ce qui devrait donné des idées à Apple.

allez une petite video pour se faire plaisir :

flash, actionscript, et mon devant…

le jeudi 15 février 2007

Vu que mon videoplayer devient quelque peut blindé, et vu la lenteur du au problème de parsage de chaine sérializé, la situation n’allait qu’empirer.. Donc je me suis dit, je vais éssayer de transmettre mes données en XML vu qu’un parser XML est présent dans Flash 8.

Lire la suite

Safari pour windows

le mardi 13 février 2007

On a vu plusieur rumeur comme quoi Safari pourrait être porté sur windows dans les mois à venir.

A part les fake de screen qui se répande, on en voit pas encore la couleur…

Cependant il apparait Swift, un browser basé sur WebKit, librairie source de Safari à l’origine pour Konqueror sur KDE.

Mais on peut pas dire que ce soit vraiment un navigateur comme Safari… il plante sur l’affichage de mon blog 😀 Il faut dire qu’il n’en ai qu’a la version 0.2, on peut encore attendre. D’autant plus que je doute que le résultat d’affichage soit identique à Safari.

Je ne sais pas si c’est très utile de tester ses codes et ses pages sur Safari. Mais il faut dire que le monde Mac est en expension, alors j’éspère qu’Apple sera compréhensif, pour les développeur au moins. C’est dans leur intéret sinon on va se retrouver avec des émulateur VMware de partout 😀

filtre html en PHP

le mardi 13 février 2007

cela faisait longtemps que je cherchais un bon filter de syntaxe HTML en PHP pour pouvoir enfin proposer aux posteurs d’écrire les commentaires en HTML pure.

Tout le monde jusqu’alors a dérivé cette problèmatique. Entre le BBcode, le wikitext (mainte fois reproduit), le Textile, le zcode (bbcode avec des > <) on est bien loin de la simplicité, des normes et du potentiel du language HTML. Par contre niveau sécurité, c’est sur qu’on est tranquille vu qu’on peut pas faire grand chose 🙂

Comme l’a dit Einstein :
Une personne intelligente résout un problème. Une personne sage l’évite.

Il faut croire qu’on est rentré dans l’air de l’intelligence 😀 , voici HTML Purifier

Attention, HTML purifier n’est pas un filtre batard, la syntax HTML qui ressort est valider par le W3C.
On est bien loin des anciens filtres comme PHP Input Filter (franchement limité), kses (mais où est le site officiel ?), le package PEAR HTML_Safe… etc
Ici c’est de l’or en barre, mais l’or ça pèse lourd. Je doute que les applications qui l’utiliseront filtreront les posts avant chaque affichage comme c’est le cas actuellement (punbb, IPB…).

C’est gourmand, mais efficace. Bien entendu, HTMLPurifier peut vous enlever les interactions javascript (qui pourrais provoquer des failles XSS). Tout est entièrement paramètrable, restreindre un attribut, une classe CSS, empêcher l’application d’un paramètre CSS, enlever les liens ou les images avec des URL externe, tout ce qu’on pouvait en attendre !!! Un petit plus, il parse aussi dans l’encodage que l’on veut !!! vraiment magnifique.

Le projet est tout jeune, il reste quelques améliorations à faire mais on en parle de plus en plus. Je suis encore en phase de test mais ça parait TRES prometteur et peut-être qu’enfin on pourra offrir des interfaces WYSIWYG dans les forums et les blogs 🙂

trop bon :)

le samedi 10 février 2007

erf les enfoirés !

flash, actionscript, et mon derrière

le jeudi 8 février 2007

cherchez pas d’intru dans le titre, il n’y en a pas.

Je me suis dit hier soir que j’allais éssayé de passer des variables javascript à une animation Flash, alors j’ai pris pour modèle mon videoplayer.
J’ai réussi sans trop de peine mais j’ai remarqué que ça m’était un peu beaucoup de temps à récupérer les infos sur les fichiers du serveur. Alors j’ai voulu rectifier ça. malheur à moi…
Lire la suite

réducteur/obscurateur/encodeur de javascript

le jeudi 8 février 2007

Si vous voulez mettre en ligne vos lourds et gros code javascript, la moindre des choses seraient de les réduires afin que le temps de chargement de ceux-ci soient minimum.

Je ne saurais donc trop vous conseiller cet outil en PHP : javascript-packer

A la base disponible en javascript sur le site de Dean Edwards, qui, on peut le dire est l’inspirateur du framework Prototype, cet outil a été developpé en plusieurs autre languages: .NET, python, Perl et meme en Ruby. bizarrement, aussi en WSH (une sorte de javascript en ligne de commande pour Windows)

Vous me direz il en existe surement beaucoup des outils comme ça… oui seulement il ne font pas tous le boulot très bien.
La différence réside dans la prise en compte ou non des pre-incrémentation et post-incrémentation :

span class="co1">//c = 3 + 3 = 6; a= 2 + 1 = 3; b = 3;

La pluspart des outils enlève betements les espaces, on obtient donc :

 

ici le compilateur comprendra :
span class="co1">//c = 3 + 2 = 6; a= 2; b = 3 + 1 = 4;

ce qui fait une certaine différence…

De plus il vous offre la possibilité de compresser votre code si vous avez vraiment quelque chose de gros à éxécuter.

L’auteur travaille actuellement sur une version d’obsucuration des variables non-globale ce qui permettrais de réduire encore plus la taille.

Update : j’ai créé le mien 😉 jsxs