White paper optimisation des développements ActionScript 3

mars 1st, 2010

En faisant ce matin le tour des mes blogs préférés, j’ai découvert sur le blog de Michaël Chaize que Thibault Imbert avait rédigé un white paper sur les optimisations des développements ActionScript 3 pour mobile.

Travaillant sur de plus en plus de projet en flex (et par conséquent en ActionScript 3) j’ai entamé la lecture de ce document disponible à l’adresse suivante (une version pdf existe aussi) :

http://help.adobe.com/en_US/as3/mobile/index.html

Premier constat, c’est vraiment très intéressant et ce n’est pas dédié uniquement aux développeurs Flash sur plateforme mobile. Toutes les astuces et recettes de cuisine présentées sont utilisables quelque soit le device (ordinateur de bureau, smartphone, …) et quelque soit la machine virtuelle (flash player, AIR, …).

On y apprend comment économiser de la mémoire, optimiser les traitements CPU, optimiser les échanges réseau, …

Un exemple tout bête : lorsqu’on veut convertir un Number positif en entier la méthode Math.round() et plus performante que la méthode Math.floor().

Un document que tout développeur ActionScript devrait lire et connaitre.

Bonne lecture ;)

VN:F [1.0.8_357]
Rating: 0.0/5 (0 votes cast)

developpement, flex , ,

La version 1.4 de JQuery disponible

janvier 15th, 2010

Pour fêter dignement son 4ième anniversaire JQuery passe en version 1.4. Un site a d’ailleurs été développé pour l’évènement : http://jquery14.com/.

Au menu de cette nouvelle version on retrouve :

  • des performances améliorées notamment pour les méthodes dites “populaires ” telles que .addClass(), .removeClass(), .css(), .append(), .html(), …
  • la sérialisation des tableaux a la mode PHP pour les appels ajax
  • détection automatique du content-type lors de retour d’un appel ajax (j’imagine que bon objet doit être instancié JSON, XML, text, ..)
  • une nouvelle syntaxe : la “Quick Element Construction” pour ajouter des élements à une page (au passage je trouve cette nouvelle fonctionnalité énorme, nous y reviendrons plus loin dans cet article)
  • le “multi-binding” d’évènement. Vous pouvez abonner un élément à plusieurs event (click, mousenter, …) en une seule ligne

Je vous laisse découvrir la suite sur le site de JQuery mais ce n’est que du bon.

présentation de Quick Element Construction

C’est une nouvelle syntaxe qui permet en une seule instruction de créer et de qualifier complètement un élément du DOM (un div par exemple). Maintenant en une instruction vous pourrez :

  • créer l’élément,
  • rattacher l’élément à un parent,
  • définir ses paramètres de style
  • définir ses évènements et les callback associés

plus qu’un long discours un exemple est plus parlant :

quick_element_jquery.jpg

Pour finir sur cette sortie de JQuery 1.4, voici mon avis personnel. Cette bibliothèque hausse encore son niveau que je trouve pour ma part excellent et offre encore plus de souplesse et de robustesse pour les développeurs web. Toutes les évolutions apportées par cette nouvelle version vont, à mon avis, dans la bonne direction en conservant la philosophie de base de JQuery : simplicité et rapidité.

C’est dans des jours comme aujourd’hui que je me dis quelle joie de faire du développement ;)

VN:F [1.0.8_357]
Rating: 4.0/5 (1 vote cast)

developpement , , ,

Les extensions pour Google Chrome sont arrivées

décembre 10th, 2009

Tout le monde les attendait, Google les avait annoncées donc les voila : les extensions pour Google Chrome.

Google a en effet lancé sa galerie d’extension pour son navigateur Chrome. Cette galerie est accessible à l’adresse https://chrome.google.com/extensions/.

Bien évidement, il faut être sous chrome pour pouvoir installer ces extensions.

Dans la liste on retrouve les incontournables adsblock, les extensions pour gmail, facebook, twitter, …

Dans le domaine qui nous concerne plus sur ce blog à savoir le développement et plus particulièrement le développement web on peut dès à présent télécharger :

J’ai installé ces extensions pour pouvoir les tester et les comparer avec leur équivalent Firefox. Je vous fait rapidement un article de comparaison

N’hésitez pas à laisser votre avis sur ces extensions. De plus si vous en connaissez d’autre n’hésitez pas ;)

VN:F [1.0.8_357]
Rating: 0.0/5 (0 votes cast)

Non classé

Présentation des nouveautés HTML5 en vidéo

décembre 3rd, 2009

Google vient de publier une vidéo de démonstration des nouveautés apportées par HTML5. Cette vidéo est totalement hallucinante.

Les perspectives pour les développements web futurs sont très prometteuses.

Dans les grandes lignes les ajouts et innovations d’HTML5 sont :

  • le multimédia
  • les fonctions de stockage offline
  • la balise canvas : définition d’une zone sur la page pour y introduire du contenu interactif avec l’internaute
  • le drag’n drop natif
  • la géolocalisation
  • l’accès à la gestion de l’historique

Un exemple étant mieux qu’un long discours, je vous laisse découvrir la vidéo :

Image de prévisualisation YouTube

Personnellement je suis bluffé, sous le charme et je suis pressé de pouvoir faire joujou avec toutes ces nouvelles fonctionnalités ;)

VN:F [1.0.8_357]
Rating: 5.0/5 (1 vote cast)

Non classé

1 an déjà - Joyeux Anniversaire

décembre 1st, 2009

C’est aujourd’hui le premier anniversaire de blog !!! Un an déjà comme le temps passe vite ;)

Ce premier anniversaire me semble être le bon moment de dresser un premier bilan et de voir les points positifs comme les points négatifs.

Le blog résumé en quelques chiffres

  • 40 articles (je sais c’est assez peu et c’est à mon sens le point à améliorer en priorité)
  • 70 commentaires
  • 7580 visiteurs uniques sur un an
  • 11495 pages vues sur un an
  • Un pagerank de 4

Les sources de trafic se décomposent de la manière suivante :

  1. 80% moteurs de recherche
  2. 10% Sites de références
  3. 10% accès directs

Les deux pages les plus consultées sont :

  1. http://arnaudgeorgin.blogcity.fr/2008/12/12/thickbox-la-modalbox-a-la-mode-jquery/
  2. http://arnaudgeorgin.blogcity.fr/2008/12/03/comparaison-framework-javascript/

Le constat est donc simple les internautes qui consultent ce blog sont particulièrement intéressés par le javascript et l’utilisation de bibliothèques telles que JQuery.

Conclusions

A l’origine quand j’ai créé ce blog je n’avais pas l’ambition d’avoir autant de trafic sur le site et ces chiffres bien que perfectibles sont très encourageants pour la suite. Pour moi c’est une première victoire ;)

Au niveau des points positifs, on peut noter principalement un bon référencement (80% du trafic est issu de moteurs de recherche).

Pour les points négatifs ou à améliorer on peut noter :

  • trop peu de contenu. C’est mon principal objectif : alimenter plus activement le blog en articles
  • trop peu de trafic issu d’accès directs. Il faut fidéliser les internautes et les inciter à revenir régulièrement sur le site. Je pense que ce point est en partie lié au premier point (le manque de contenu). Cependant je pense aussi modifier le design du site pour le rendre plus attractif

Pour finir j’ai quelques surprises actuellement en cours de développement qui arriveront dans l’année à venir. Mais pour l’instant savourons ce premier anniversaire.

Champagne ;)

VN:F [1.0.8_357]
Rating: 4.0/5 (1 vote cast)

A propos du site, General

Le konami code sur jquery.com

octobre 15th, 2009

Je vous parle d’un temps que les moins de 20 ans ne peuvent pas connaitre…”. Et oui aujourd’hui, je fais appel à votre mémoire de joueur.

Souvenez vous lorsque vous maltraitiez la manette de votre console Nintende NES pour essayer d’arriver au bout de vos jeux favoris. C’était difficile voir impossible (en tout cas beaucoup plus que maintenant).

Heureusement votre voisin vous sauvait la mise en vous montrant une botte secrête qui se transmettait de joueur en joueur : le konami code.

Le konami code est un cheat code existant dans les jeux produits par Konami qui permettait d’activer des options secrètes (vie supplémentaires, personnage invincible, passage secret, …). Ce code a connu son heure de gloire dans les année 1980 avec des jeux comme Graduis (1986) ou bien encore Contrat (1988). On le retrouve aussi dans Metal Gear solid 2 sur PS2.

Pour activer le code, le joueur devait durant le jeu exécuter sur la manette la combinaison suivante :

Haut, Haut, Bas, Bas, Gauche, Droite, Gauche, Droite, B, A

De nos jour ce code est toujours “vivant” notamment sous forme d’easter eggs. Et que ne fut pas ma suprise ce matin d’apprendre que le code fonctionne sur le site de jquery.

Pour cela rendez-vous sur le site de jquery : http://jquery.com/ et appliquer le Konami code en exécutant la séquence présentée plus haut, vous aurez une belle surprise ;)

Suite à cette découverte j’ai poussé un peu mes recherche et on apprend sur la page wikipédia du konami Code que le code fonctionne aussi sur facebook et google reader.

Enfin, il existe un site http://konamicodesites.com/ qui référence tous les sites internet réagissant au code. Mais saurez-vous rentrez sur ce site ;)

VN:F [1.0.8_357]
Rating: 0.0/5 (0 votes cast)

General, Jeux vidéo

Désassembler un fichier swf grâce à FLASM

octobre 1st, 2009

Je suis en train d’aider un copain à faire évoluer son site : changement d’hébergement, utilisation de rewrite rule pour avoir des belles urls lisible, …

Tous ces changements ont abouti à un problème épineux. Pour certaines   fonctionnalités le site utilise des flashs (lecture de vidéos soumises à authentification par exemple) qui font des appels au site en URLLoader. Or comme les urls du site ont changé et que les adresses de vérifications dans les flashs ont été codées en dur (ce qui n’est pas beau du tout je vous l’accorde) il faut les modifier.  Manque de chance, nous ne disposons pas des sources des flashs pour effectuer les modifications. Heureusement il existe un outil, flasm, qui permet de désassembler les binaires flashs c’est-à-dire de générer un fichier texte contenant le langage machine de l’exécutable.

A la base cet outil a été développé pour les développeurs flash qui voulaient optimiser le bytecode généré par le compilateur pour le flash player. Personnellement j’ai plutôt tendance à faire confiance au compilateur ;)

Pour pouvoir utiliser l’outil, il vous faut premièrement télécharger le logiciel qui est disponible sous forme d’archive pour windows, mac et linux puis l’installer (par exemple dans le répertoire c:\flasm pour windows).

Ensuite pour désassembler un fichier swf, il suffit d’exécuter la commande suivante :

c:\flasm>flasm -d chemin_vers_swf/fichier.swf > chemin_vers_swf/fichier.flm

Vous obtenez en sortie un fichier avec l’extension .flm qui est lisible par un éditeur texte (dans mon cas j’utilise scite ;) ). Ce fichier contient des instructions assembleur qui représentent le langage machine exécuté par le player flash. Dans mon cas j’ai donc pu modifier les variables définissant les urls du site appelées. En effet toutes les variables apparaissent en clair dans le code assembleur. En général c’est une instruction push qui s’occupe de l’affectation des variables. Via une recherche il est très facile de retrouver ces affectations.

Une fois les modifications effectuées et sauvegardées sur le fichier flm, il reste à assembler le fichier flm pour générer un nouveau swf. Pour cela il suffit d’exécuter la commande suivante :

c:\flasm>flasm -a chemin_vers_swf/fichier.flm

Tout n’est pas rose et il y a une restriction. Pour le moment flasm ne peut désassembler que des fichiers swf actionScript 1 ou actionScript 2. Ce qui veut dire ques les flashs récents ne peuvent pas être désassemblés pour le moment. Ceci étant c’est un outil bien utile et sans celui-ci nous aurions été obligé de redévelopper l’intégralité des flashs du site.

Un grand merci à Christophe Bessis qui m’a fait découvrir cet outil.

VN:F [1.0.8_357]
Rating: 3.7/5 (3 votes cast)

developpement ,

Concevez et réalisez votre site internet grace à Designd’O

septembre 29th, 2009

Aujourd’hui, un petit buzz pour la nouvelle société de conception et de réalisation de sites  web Designd’O. Cette société est gérée par des copains à qui je veux donner un petit coup de pub par ce billet.

Cette jeune société dynamique est composée d’experts des technologies web qui vous accompagneront de la conception à la réalisation de votre site internet.

Pour plus de renseignement vous pouvez les contacter par le biais de leur site internet : http://www.designdo.fr.

Bon courage à tous dans cette belle aventure, vous êtes les meilleurs ;)

VN:F [1.0.8_357]
Rating: 5.0/5 (2 votes cast)

Non classé

equivalent de la fonction explode PHP en PL/SQL

septembre 17th, 2009

Je travaille actuellement sur un projet utilisant une base de données Oracle 10g. Dans ce projet, tous les traitements sur les données sont effectués par le serveur de base de données (en PL/SQL)  pour alléger le serveur applicatif qui ne s’occupe que de la couche de présentation.

Dans un des traitements PL/SQL j’ai eu besoin de transformer une chaine de caractères en un tableau de données. En PHP j’aurais utilisé la fonction explode. Malheureusement, cette fonction n’existe pas en PL/SQL.

J’ai effectué des recherches sur internet et j’ai trouvé quelques traitements PL/SQL qui semblaient implémenter l’équivalent de la fonction explode.  Mais ces implémentations étaient très complexes pour ne pas dire incompréhensible.

J’ai donc décidé de réaliser moi même une fonction explode en PL/SQL. Pour cela, j’ai utilisé :

  • les possibilité de récursivité d’oracle (instruction loop)
  • la fonction instr qui permet de détecter la première position d’un ensemble de caractères dans une chaine
  • la fonction substr qui permet de séparer une chaine en plusieurs
  • les collections oracle

trêve de bavardage, voici le code de cette fonction :

FUNCTION explode(delimiter VARCHAR2, str VARCHAR2) RETURN ARR_STRING IS
extract_chaine varchar2(2000) := ”;
position number(3) := 0;
TYPE ARR_STRING is table of varchar2(64) index by binary_integer;
cur_idx number(3) := 1;
current_str varchar2(20000) := str;
BEGIN
Loop
— on determine la position du premier champ sepatateur
select instr(current_str, delimiter) into position from dual;
IF position > 0 THEN
– on isole le bout de chaine jusqu’au separateur
select substr(current_str, 1, position - 1) into extract_chaine from dual;
— on stocke dans le tableau resultat le bout de chaine
arr_res(cur_idx):=extract_chaine;
cur_idx:=cur_idx+1;
— on supprime la partie de chaine traitée
select substr(current_str, position + length(delimiter)) into current_str from dual;
END IF;
exit when position = 0;
end loop;
– on stocke dans le tableau resultat la dserniere occurence non traite dans la boucle
arr_res(cur_idx):=current_str;
RETURN arr_res;
END explode;

Voici un exemple d’appel de la fonction :

DECLARE
TYPE ARR_STRING is table of varchar2(64) index by binary_integer;
ret ARR_STRING;
BEGIN
ret := explode(’@;’, ‘val1@;val2@;val3@;val4@;val5@;val6@;val7@;val8@;val9′);
for i in 1..ret.count loop
dbms_output.put_line(ret(i));
end loop;
end;

Si on regarde en détail le code de la fonction:

  • le paramètre str contient la chaine à traiter,
  • la paramètre delimiter contient le caractère qui permet d’exploser la chaine en un tableau
  • la variable arr_res définit une collection qui contiendra les différentes parties de la chaines traité

Il existe très certainement d’autres algorithmes permettant d’effectuer l’équivalent de la fonction explode, mais celui-ci à le mérite de fonctionner correctement et d’être relativement simple à comprendre.

N’hésitez pas à tester ce code et à me laisser vos remarques ou vos optimisations.

VN:F [1.0.8_357]
Rating: 5.0/5 (3 votes cast)

Projets professionnels, developpement ,

Le magazine Share! de juillet en ligne

juillet 27th, 2009

Le magazine de l’écosystème eZ (http://ez.no) “SHARE!” du mois de juillet est téléchargeable à l’adresse : http://ez.no/company/news/share_magazine_for_july_09_is_out.

Ce magazine mensuel permet de se tenir au courant de l’activité autour d’Ezpublish et des autres produits édités par eZSystem.

Dans l’édition de juillet, vous retrouverez tous les gagnants des ezAwards 2009 qui récompensent les entreprises les plus actives et innovantes avec le CMS ezPublish (j’en profite pour féliciter Stéphane Couzinier et Pierre-Yves Policella pour leur prix) ainsi que la présentation du nouvel assistant d’installation d’ezPublish, la présentation du site du mois sélectionné par ezSystem et bien d’autres nouveautés.

Bonne lecture !

VN:F [1.0.8_357]
Rating: 3.3/5 (3 votes cast)

ezPublish