Par liguorien,
mercredi 17 juin 2009 à 18:27 ::Divers
Aujourd'hui j'ai découvert l'existance de bing.com, le nouvel engin de recherche de Microsoft. Je crois que je vais rester ancré à mon habitude d'utiliser google, mais je dois avouer que le nouveau venu est assez intéressant.
J'ai été surpris par la réalisation technique de la section vidéo. Ayant les bon outils pour accomplir la tâche, j'ai essayé de faire un peu de reverse engineering de cette section.
Par liguorien,
mercredi 17 juin 2009 à 12:39 ::Flex
J'ai beaucoup joué avec le DragManager de Flex dans les dernier mois. J'ai eu besoin à un certain point de fournir une implémentation custom du DragManager afin de régler quelques bugs assez gênant.
Tout les singletons de Flex implémentent une certaine interface (DragManager -> IDragManager -> DragManagerImpl) sont enregistrés globalement dans la classe non-documenté mx.core.Singleton.
Le problème avec la fameuse classe Singleton, c'est qu'elle ne permet pas de redéfinir une classe.
public static function registerClass(interfaceName:String, clazz:Class):void
{.
var c:Class = classMap[interfaceName];.
if (!c).
classMap[interfaceName] = clazz;.
}.
Donc le seul moyen de spécifier ma propre classe, c'est de redéfinir le SystemManager. La majorité des managers sont défini dans la méthode SystemManager.docFrameHandler() (à la ligne 2261 pour être exact).
Heureusement, la méthode utilise le namespace mx_internal donc il est tout à fait possible de polymorpher la méthode. (à vos risques et périls, cependant)
Mais...
Hmmm.
Où est défini l'implémentation du SystemManager? Qu'est-ce que le SystemManager?
Il y a le metadata [Frame] défini dans la classe Application. Ce metatag permet d'indiquer au compilateur la classe qui sera instancié sur un frame du swf.
Dans le cadre de mx.core.Application :
[Frame(factoryClass="mx.managers.SystemManager")]
C'est en modifiant ce metadata que j'ai pu avoir ma propre implémentation du SystemManager ainsi que du DragManager. Et au final, après avoir implémenté mon DragManager custom, j'ai trouvé une solution à mon problème d'origine sans avoir à modifier le DragManager de Flex. Il suffisait d'envoyer une implémentation spécial de MouseEvent, mais ça, c'est le but d'un autre billet! :D
Par liguorien,
mercredi 18 février 2009 à 11:12 ::Java
Ce package introduit dans le jdk 1.5 est assez utile pour les développeurs qui doivent affronter la synchronisation dans une application ayant recourt à beaucoup de Thread. Chose qui devient complexe assez rapidement. Voici un bout de code qui utilise deux classes fournit par ce package. ReentrantLock et CyclicBarrier.
Par liguorien,
vendredi 9 janvier 2009 à 10:39 ::Divers
J'aime la griller L'inaler, la savourer Il faut arrêter
Depuis mon douzième anniversaire qu'elle fait partie intégrale de ma vie. Je n'ai jamais passé plus d'une semaine entière sans être à ses côtés. J'ai toujours eu l'impression qu'elle me réconfortait alors qu'en vérité elle m'ensorcelait. J'ai suivi les conseils d'un grand sage et décidé de chasser le démon de mon esprit.
Par liguorien,
lundi 21 janvier 2008 à 08:26 ::Divers
Et voilà. Le déménagement est complété. C'était long, non pas parce que c'était compliqué mais plutôt parce que j'ai été paresseu. Il reste encore des choses à faire mais au moins le gros du travail est accompli.
Par liguorien,
dimanche 9 décembre 2007 à 19:23 ::Divers
Après 8 mois d'inactivité sur ce blog, je crois qu'il est temps de dépoussiérer un peu. J'ai une bonne et une mauvaise nouvelle.
La bonne c'est que j'ai changé d'emploi et je suis maintenant développeur flash à temps plein pour Tribal Nova.
La mauvaise c'est que j'utilisais un des serveurs de mon ancien emploi pour faire rouler mon blog maison qui est écrit en Java. Je l'utilise encore clandestinement mais ça ne sera plus le cas pour longtemps. Les hébergeurs Java sont assez couteux et je n'ai pas envie de payer pour un simple blog. J'ai pris un hébergement PHP bon marché pour le moment et on verra ce que ça donne. J'ai installé un dotclear et je dois faire la migration du blog. Il risque d'y avoir des billet qui s'affiche mal ou des liens brisés. Merci de me faire signe si vous voyez un problème.
Ceci étant dit, on se revoit prochainement sur un nouveau blog dotcleareu! Moi j'ai du pain sur la planche!
Flex Ant Tasks Ensemble de trois tâches ant qui permettent de compiler et déployer les applicationw Flex. (mxmlc, compc et html-wrapper)
Flex Compiler Shell Un outil en ligne de commande qui permet de réutiliser la même JVM pour le compilateur. Ce n'est pas très utile pour ceux qui utilisent Flex Builder mais ceux qui compilent en ligne de commande auront un gain de performance significatif.
Par liguorien,
mercredi 24 janvier 2007 à 17:51 ::Divers
J'ai toujours détesté la pub. Et je m'étais dis qu'il n'y en aurait jamais sur ce site mis à part les 2 liens pour java et netbeans en bas du menu.
Cependant après discussion avec un ami, j'ai décidé de mettre à l'essai pour un mois ou deux les google adSense et la "google search box" afin de voir si c'est vraiment rentable ou non. Si après un ou deux mois ce n'est pas rentable à mon goût, je vais me faire un plaisir de les enlever!
J'ai essayé que ça ne soit pas trop encombrant. J'aurais pu le mettre en haut de page pour augmenter mes chances de réussite, mais disons que ça ne me ferais mal au coeur !
Donc désolé cher lecteurs pour cet ajout qui n'est pas vraiment nécessaire mais qui vaut la peine d'être essayé.
Par liguorien,
samedi 16 décembre 2006 à 00:06 ::Java
Wow, j'aurais du apprendre l'existence de ça plus tôt! Ça m'aurait évité de faire inutilement un gros morceau de FlexGenerator, la parti de dom4j. Malgré que ça m'a permi de mieu connaitre les annotations de Java.
Par liguorien,
jeudi 7 décembre 2006 à 00:32 ::Projets
J'ai fait quelques changement au niveau de FlexModelGenerator.
De un, j'ai enlevé le mot "Model" dans le nom. Le but du projet n'est plus de juste convertir le modèle en AS3, mais de générer du code qui est relatif au modèle. Par exemple générer une classe utilitaire qui va générer des éléments dom4j à partir d'une entité et vice versa. La même chose avec les object AS3 et XML. Je crois que la prochaine étape sera de générer des formulaires MXML pour éditer les entitées.
De deux, je change la license pour LGPL.
Je vous propose donc cette version 0.2 alpha qui était censé être beta jusqu'à aujourd'hui Je pensais avoir fini mais je me suis rendu compte que j'avais complètement oublié le support des dates. Sinon, je suporte pas mal tout les types suspect d'être sur les entitées : primitif, wrapper, String, entité, Array, Collection et Map.
Ça fait 3 jours fais que de la javadoc. C'est long... J'ai tout de même fait pas mal de test et ça l'air de fonctionner correctement. Cependant je suis mal sur qu'il doit y avoir des cas que je n'ai pas tester.
Donc même si je ne supporte pas encore les dates, je mets tout de suite en ligne les sources pour que les plus courageux d'entre vous qui ont envie de tester puisse le faire et ainsi m'aider dans l'avancement de ce projet.
Par liguorien,
dimanche 19 novembre 2006 à 09:53 ::Projets
Je commencais à être tanné de toujours convertir les entités Java en entité AS3. Avec NetBeans, ça va bien car il propose un générateur de getter/setter. Mais ce n'est pas le cas avec FlexBuilder 2...
C'est pourquoi j'ai décidé cette semaine au travail de me faire un petit outil qui le fait automatiquement en utilisant l'API de réflection de Java. En le développant, je me suis dit que c'était surement une bonne occasion de mettre en pratique les Annotations de Java. Cependant, mon patron ne me pait pas pour mes compulsions de geek mais bien pour développer des produits. C'est pourquoi j'ai refait à la maison le même outil mais en utilisant les annotations. Afin de m'assurer que c'est bien à moi et non mon patron, je distribue publiquement sous license GPL.
Par liguorien,
samedi 9 septembre 2006 à 23:16 ::Flex
De tous les composants de Flex 2, je crois que c'est mx.controls.MenuBar et mx.controls.Menu qui m'ont donnés le plus de trouble. J'irais même jusqu'à dire qu'ils font pitié, ils ne méritent pas d'être inclus dans le Flex 2 SDK
Par liguorien,
mercredi 6 septembre 2006 à 14:33 ::Divers
Un petit récapitulatif des dernier temps :
- C'est le dernier jour que je suis dans le bureau où j'ai passé les 3 dernières années. On déménage demain. Heureusement c'est encore dans le même quartier et il parait que le nouveau local est vraiment mieu.
- Nous allons enfin avoir une machine à espresso dans le bureau
- Lorsque j'aurai du temps libre, il faut vraiment que je finisse le développement de MonoSerge. Et d'ici ce temps là achaler Ben pour qu'il me compose une "toune de techno modulaire" pour respecter le concept du jeu.
- Durant le mois d'Août uniquement, il y a eu 4897 téléchargements de mon éditeur JavaScript (sans compter ceux de nbextras.org). Je crois qu'il s'agit d'un message clair sur le fait que je dois continuer ce projet.
- Mon neveu a maintenant 3 ans.
- L'automne arrive, c'est le temps des récoltes.
- J'ai testé Metal Gear Online dernièrement. C'est infesté de jeunes et je suis carrément un "noob".
- Sim City 4 n'a plus de secrets pour moi. Je crois que je vais devenir maire
- Il se peu fort bien que je sois à Las Vegas pour MAX 2006. Faites-moi signe si vous y allez.
- La version finale de Java SE 6 devrait être bientôt disponible.
- Flex 2 est vraiment génial.
- Le Flash Player 9 est plus puissant que le 8. Mais ça reste du Flash, avec ses limites. Personnellement, je ne suis plus vraiment excité par les performances du player 9 et j'attends avec impatience l'accélération hardware du Player 10 (si c'est le cas évidemment).
- Après 5 ans d'attente, il y aura enfin un nouveau "vrai" Final Fantasy(FF12) qui sort dans 2 mois.
- J'attends avec impatience la sortie de la PS3 et du linux developer kit qui me permettra de profiter de la puissance de la bête pour le développement de jeu.
- J'ai plein d'idée pour le développement d'un framework pour Flex 2, mais il y a toujours la contrainte du manque de temps. Je vais essayer dans la mesure du possible de rendre quelques packages publique à l'occasion.
- Je serge, tu serges, il serge, nous sergeons, vous sergez, ils sergent.
- Toute mes félicitations à kiroukou pour le développement de sandy (et vivement la version AS3, LÀ je vais la tester )
- J'habite maintenant seul en appartement depuis 2 mois.
- J'ai un trou dans mon soulier, il faut m'en acheter un autre paire.
- Développer un système de plugin qui gère le chargement de classes dynamique en Java, c'est palpitant et chiant à la fois.
- J'ai été nommé 'directeur technologique' la semaine dernière. En gros, c'est maintenant moi qui a le dernier mot dans la compagnie quant au choix des technologies.
- J'ai envie d'avoir un chat.
- Je suis en train d'apprendre à jouer la toune "The decisive battle" de FF6 au synthétiseur.
- Ma nouvelle voisine d'en haut est assez bruyante.
- J'était censé diminuer ma consommation de cigarette pour le mois d'Août, je l'ai malheureusement augmenté.
- Lundi c'était la fête du travail. Nous avons fêté en ne travaillant pas.
Adobe a mis ASDoc à notre disposition sur Adobe Labs. Très bonne initiative de leur part. Par contre, c'est un outil pour avoir des maux de têtes Ça m'a pris au moins 15 minutes pour réussir à générer quelque chose et je n'ai pas réussi à générer la documentation entière de tout le projet à cause de certains bug avec le mxml. J'ai pu identifier clairement au moins 2 bugs, les autres sont trop bizarre pour être identifiés
- Dans un MXML, il faut rajouter l'import pour tous les classes, même ceux dans le même package. - Si une méthode a le metadata [Bindable(event="onSerge" )], elle sera en double dans la documentation.
Même si c'est buggé avec le MXML, ça ne dérange pas trop. Habituellement ce genre de documentation c'est surtout utile pour les API d'un package AS et mais pas vraiment pour les interfaces graphiques en MXML. Ça risque d'être pratique pour les projets de type Sandy et Pixlib
Pour ceux qui auraient raté le lien en début de billet, ça se passe ici.
Ceux qui sont abonnés sur la mailing list d'OSFlash l'ont surement remarqué, Nicolas Cannasse a commencé à étudier et documenter le format SWF 9 sur le wiki d'OSFlash. Il y a encore du pain sur la planche mais c'est déjà un excellent départ! Beau travail Nicolas!
Comme vous avez surement pu lire une bonne dizaine de fois hier, je ne vous apprends rien en vous disant que Flex 2 et le Flash Player 9 sont maintenant disponibles officiellement.
Lorsque j'ai vu la nouvelle hier matin, j'ai tout de suite été télécharger le Flash Player sur le site d'Adobe. J'ai ensuite téléchargé le trial de Flex Builder 2 afin de continuer mon travail et faire une fois pour toute les modifications à mon code pour qu'il compile à nouveau (à cause des modifications dans le SDK). Petite note au passage, il y a quelques bugs assez chiants dans le SDK qui sont apparus dans le release officiel et qui n'étaient pas dans la beta 3 (grrr). Par contre, la dernière version est beaucoup moins gourmande sur la RAM. Chez moi, le plafond est à 215Mo alors que dans la beta 3 il n'y en avait pas! (je songeais à m'acheter 2Go de RAM ! )
Pour en revenir au but de ce post, j'ai eu une mauvaise surprise lorsque je suis arrivé pour debuger mon code. J'avais un popup d'erreur qui disait que le Flash Player Debug n'était pas correctement installé dans Firefox. Donc il était impossible de débuger dans Firefox. Après un certain temps, on s'est rendu compte que ça fonctionnait dans IE .
Une fois de plus, c'est Fred qui a trouver et régler la racine du problème .
C'est que la version du Flash Player qui est distribué publiquement sur le site d'Adobe est 9,0,16,0 alors que la version du Flash Player Debug est 9,0,15,0. Donc on supose que l'installeur du Flash Player ne fait rien étant donné que la version installé est supérieur. Il a fallu désinstallé le plugin Firefox et réexécuter l'installateur du Flash Player Debug.
Bref, moral de l'histoire : ne pas télécharger le Flash Player directement sur le site d'Adobe si vous avez l'intention d'installer Flex Builder.
Dernièrement, je devais développer un component Flex 2 qui doit être skinnable par un CSS. Le design par défaut m'était fourni. La définition des skins se fait dans FLA créer à l'aide Flash 8.
Il y a beaucoup de coins arrondi dans le design. J'avais entendu parler vaguement de la fonctionnalité scale9grid qui permet de définir des zones de redimensionnement dans un clip mais je croyais que c'était utilisable uniquement que par le code. Le problème était que je voyais mal comment déterminer la taille exacte des coins sans rajouter des styles supplémentaire dans la CSS, donc j'avais écarter la possiblité d'utiliser un scale9grid. Je dois avouer que j'étais un peu mélanger... C'est alors que Fred est venu à ma rescousse
Il m'a appris que l'on pouvait définir les zones de redimensionnement d'un scale9grid directement à partir de l'IDE Flash. Il suffit d'ouvrir le paneau de la librairie, faire un clic-droit sur le symbole et cliquer sur properties. En bas complètement du popup des propriétés, il y a la case à cocher "Enable guides for 9-slice scaling" qui permet d'afficher les guides pour le scale9grid.
Voilà, j'espère que ça pourra être pratique pour ceux qui comme moi, n'avait pas encore découvert cette fonctionnalité
Voici un article intéressant sur Apollo, le futur Flash-Player-Acrobat-Reader-et-browser-HTML-qui-tue, développé par Adobe. Voici un petit résumé des points importants pour ceux qui ne comprennent pas bien la langue de Shakespeare.
Pour ceux qui ne connaissent pas encore Apollo, c'est un accouplement entre le Flash Player, Acrobat Reader et un browser HTML. Ce qui permettra de lire des SWF, des PDF et du HTML dans le même conteneur. Le tout est ciblé pour le desktop. Donc ce n'est pas pour le web. Toutefois, rien n'empêche d'utiliser des services web pour charger des données dynamiquement. Apollo est uniquement un Player, il ne permet pas de créer des projecteurs afin de les distribuer sur CD-ROM.
L'engin utilisé pour afficher le HTML est censé fournir un support complet des standards web. Ce qui permettra de rouler n'importe quel application HTML/javascript déjà existante. L'identité de l'engin en question n'a pas encore été dévoilé mais il ne sera pas développé par Adobe. (je soupçonne l'utilisation de gecko, qui est l'engin de rendu utilisé par Firefox)
Apollo étant ciblé pour le desktop, il fournira des API (pour Flash et le JavaScript) permettant de communiquer étroitement avec l'OS.
Il sera disponible en alpha/beta sur Adobe Labs d'ici la fin de l'année et sera disponible officiellement dans la première moitié de l'année 2007. Apollo sera gratuit tout comme le Flash Player l'est présentement. Et dernier point important, il sera multi-plateforme !
Pour ceux qui ont encore de la misère à visualiser de quoi aura l'air Apollo, voici quelques screenshots d'applications Flex 2 qui roule sur le desktop avec un fond transparent. Rien de vraiment nouveau, mais ça peut donner un idée Étant encore dans la phase primaire du développement, il n'y a pas encore de démo démontrant le mixte de SWF, PDF et HTML.
Par liguorien,
mercredi 17 mai 2006 à 10:52 ::Flash
Nicolas Cannasse vient d'annoncer la sortie de haXe 1.0. Un nouveau language qui a pour syntaxe un mixte entre l'ActionScript 2, Java et C++. Le but de haXe est d'avoir un seul language pour plusieurs plateformes. Il peut être utilisé pour faire du Flash, du JavaScript ou bien un serveur web. Pour ce qui est du serveur, le bytecode est exécuté par la NekoVM, qui est également développé par Nicolas Cannasse.
Personnellement je ne peux pas dire que j'ai vraiment essayé, je suis trop occupé pour le moment avec Java et l'AS3... Mais si j'ai l'occasion d'utiliser haXe pour un futur projet, je vous en reparlai. Dans tout les cas, ça semble très prometteur !
Par liguorien,
mercredi 10 mai 2006 à 08:15 ::Divers
La semaine dernière, j'ai eu la surprise d'apprendre que je suis en nomination au NetBeans Community Awards pour ma contribution à la communauté NetBeans (éditeur JavaScript et CSS).
Si le coeur vous en dit, vous pouvez voter pour vos contributeurs préférés
Mr. le spammer, ça ne sert à rien de venir poster sur mon blog des commentaires pour téléchargé des cracks. Vous voyez bien que tous les messages que vous avez envoyés ce weekend ont été supprimé aussitôt posté. Vous perdez votre temps car il n'y a pas de place pour le spam sur ce blog.
Comme à chaque nouveau release, après l'installation du beta 2 de Flex 2, j'ai tenté de recompiler MonoSerge et apporté les correctifs nécessaires afin que je puisse continuer de le développer (lentement mais surement). Je n'ai pas eu beaucoup d'erreur de compilation comme les fois précédentes, mais par contre, le Flash Player plantait à l'exécution sans aucun message d'erreur!
J'ai commencé par mettre des try catch un peu partout afin de voir s'il était possible d'attraper l'erreur.
Sans succès.
J'ai donc utilisé la bonne veille technique de tout mettre en commentaire et recompilé le code en décommentant une ligne à chaque décompilation afin de cibler la ligne meutrière. Disons que j'ai été assez surpris lorsque j'ai trouvé la ligne !
Appel au flasheur, il y aura bientôt un autre volet du concours Crea organisé par l'équipe de mediabox. Le concours se déroulera entièrement en ligne. Comme à l'habitude, le sujet sera donné le jour même et les participant auront 9 heures pour réaliser leur création. Il y aura 2 sujets répartis sur 2 jours. Les participant peuvent choisir de participer à une seule soiré ou bien les deux. Le gagnant remportera la suite complète d'Adobe qui comprend :
Le concours se déroulera le vendredi 5 mai 2006 à 19H et le samedi 6 mai 2006 à 19H.
À noter que 19H c'est l'heure de France. Pour ceux comme moi qui sont au Québec, c'est à 13H. (je vais avoir un avantage statégique sur la fatigue, mouhahahah )
Par liguorien,
mercredi 15 mars 2006 à 12:24 ::Java
Non non, je n'ai pas gagné au casino ! (malgré que j'ai gagné une partie de poker ce weekend )
Il s'agit plutôt d'un nouveau projet pour NetBeans. Le but de ce projet est de fournir un language de programmation conçu pour faire du refactoring sur du code source java. Ce qui permet à n'importe qui d'écrire des commande personnalisés et de les utiliser directement dans NetBeans.
Je n'ai pas encore essayé, mais d'après ce que j'ai pu en lire, ça l'air très puissant !
Par liguorien,
mercredi 15 mars 2006 à 10:56 ::Divers
Un petit billet pour signaler que je vais changer de serveur dans les prochains jours. Donc il se peut qu'il y aille y perte de données si vous postez au mauvais moment.
Pendant qu'on y est, je me suis fait royalement arnaqué avec mon nom de domaine... Il expire la semaine prochaine et il m'est impossible de le renouveler pour l'instant. Je vais surement changé pour www.liguorien.org dans le courant de la semaine. Je vais confirmer lorsque ce sera fait.
Par liguorien,
mercredi 8 mars 2006 à 20:54 ::Projets
Je continue mon apprentissage des API de la plateforme NetBeans. Le prochain truc que je vais distribuer publiquement est la suite du module CSSCompletion. Pour rappel, ce module avait pour but d'ajouter du code completion pour les mots clés de l'éditeur CSS de NetBeans. Cette fois, je me suis attaqué au navigateur (outline) des fichiers CSS.
J'ai tout d'abord démarré dans la voie traditionnelle en affichant les règles dans une liste avec la possibilité de trier par nom, type et ordre de déclaration. Lorsque l'on double-clique sur un élément, le fichier s'ouvrira dans l'éditeur (si nécessaire) et le curseur sera déplacé à la bonne ligne. La liste se mets à jour si le document est modifié.
Par liguorien,
mercredi 1 mars 2006 à 14:50 ::Java
Si vous utilisez FOP afin de générer dynamiquement un PDF et que vous vous demandez pourquoi l'engin conserve toujours l'ancienne image, n'allez pas perdre votre temps à chercher la raison dans le code source et rajouter plutôt cette ligne de code après la génération. (si nécessaire)
Java
FopImageFactory.resetCache();
FOP utilise en interne une Map statique qui conserve les images dans la RAM afin d'avoir un accès rapide lors de la prochaine regénération. Au début du projet, nous avions des problèmes de mémoire lorsque venait le temps de générer un PDF de ~250 pages avec ~3000 photos. Il y avait toujours une OutOfMemoryError qui était lancée avant la fin de la génération du PDF. Nous avions réglé le problème en augmentant la limite de mémoire de la JVM de Tomcat avec l'argument suivant :
set CATALINA_OPTS="-Xmx512m"
Je viens enfin de comprendre pourquoi la RAM s'accumulait !
Par liguorien,
dimanche 5 février 2006 à 20:37 ::Projets
NetBeans n'a jamais offert de support pour le JavaScript. C'est prévu pour la prochaine version mais comme je n'ai appris cette nouvelle qu'hier et comme je VOULAIS un support pour le javascript, j'ai entrepris il y a quelques jours l'écriture d'un module offrant un support de base pour le JavaScript.
Les fonctionnalités offertes sont les suivantes :
- Colorisation syntaxique : Permet de personnaliser à 100% le formatage des identifiants, mots clés, opérateurs, String, Number, nombres hexadécimals, méthodes et commentaires.
- Engin d'indentation (ctrl-shift-F)
- Dialogue de création de classe (génération de stub code)
- Toute les fonctionnalités déjà offertes par l'éditeur de NetBeans (historique de navigation, bookmark, macro, abbreviation, etc...)
Par liguorien,
jeudi 2 février 2006 à 12:06 ::Java
Struts est le framework Java que j'utilise au quotidien pour développer des applications web.
Le sous projet Struts Scripting est disponible en version stable depuis la semaine dernière. Cette extension permet d'écrire les actions avec n'importe quel engin de scripting. Les language supporté par défaut sont : Groovy, Javascript, Jacl, Netrexx, Java, Bml, VBScript, JScript, Perlscript, Perl, jpython, jython, lotusscript, xslt, pnuts, beanbasic, beanshell, ruby, judoscript. Et il pourrait y en avoir d'autre puisque cette extension utilise BSF.
Par liguorien,
mercredi 1 février 2006 à 19:57 ::Flex
Une nouveauté intéressante s'est introduite dans la version beta de Flex 2. Il est maintenant équipé d'un "view source" !
Voici un petit exemple pour le démontrer. L'important n'est pas le contenu du SWF, mais le "view source" lorsque l'on fait un clic-droit. Le Flash Player 8.5 beta est requis pour visionner ce swf.
Pour ceux qui ne sont pas capable de visionner le swf. Lorsque l'on clique sur View Source, une nouvelle page s'ouvrira avec un SWF contenant l'arborescense des sources et un frame HTML contenant la source sélectionné. Il y a également un bouton pour télécharger l'ensemble des sources dans un fichier ZIP.
Pour activer cette fonctionnalité, il suffit de cliquer sur le bouton Publish Application Source dans Flex Builder et le reste se fait seul. Magique n'est-ce pas ?
En fait, le principe est assez simple, on aurait pu déjà le faire avant mais il aurait fallut beaucoup plus d'effort pour obtenir le même résultat.
Par liguorien,
jeudi 26 janvier 2006 à 07:15 ::Flash
Kiroukou vient d'annoncer Sandy 0.2. Pour le rappel, Sandy est moteur 3D codé en AS2, compatible avec le Flash Player 7 et 8.
Voici une citation pour rappeler les principales nouveautées de ce release :
* Intégration d'une partie de la librairie de Francis Bourre pixlib. Cela permet d'avoir avec cette version une réelle gestion des évennements. * Gestion de la camera avancée : Rotation, translations * Compilation complète avec MTASC (bientot avec le mode -strict) * Tri des faces amélioré pour moins de problèmes d'affichage. * Modifications du coeur du moteur pour plus de performance et plus de simplicité. * Ajout des faces de 4 et N points pour plus de performance ( moins de temps d'affichage nécéssaire ). * Changement radical de la signification des transformations. Maintenant il devient très aisé de disposer un object sur la scene exactement comme on le veut.
Allez faire un tour dans la section resources pour télécharger cette nouvelle version ou bien tout simplement pour avoir de la documentation sur l'utilisation de cette API.
Par liguorien,
mardi 17 janvier 2006 à 15:45 ::Java
JFlash est un projet hébergé sur java.net dont le but est de faire un Flash Player open source 100% Java.
Je vous entends déjà rire quant aux performances qu'aura ce Flash Player, mais avant de préjuger et porter un jugement ferme sur votre opinion, je vous conseille d'attendre un release officiel et d'évaluer en temps et lieu. Vous pourriez être surpris ! (ou déçu )
Le projet est encore très jeune (2 mois). Pour le moment, le player est fonctionnel mais uniquement pour les SWF version 3.
Il y a aussi un sous-projet nommé JFlashME qui est un port de JFlash pour J2ME. Donc l'équivalent de FlashLite.
Par liguorien,
lundi 9 janvier 2006 à 22:26 ::Jeux
Ouep, je n'ai qu'un mot à dire à propos de Dragon Quest 8, mais je ne sais pas encore lequel... Excellent, grandiose, fantastique, sensationnel, énorme, déchirant. Déchirant, ouais, voilà mon mot !
Ce jeu de rôle (RPG) développé par Square Enix est le jeu parfait pour les amateurs de RPG old-school. On croirait jouer à un vieu Final Fantasy (FF) mais en 3D.
Par liguorien,
lundi 9 janvier 2006 à 16:11 ::Divers
Une petite annonce pour vous informer de l'existence des blogs de ali_o_kan et kiroukou. Ce sont deux membres actifs dans la communauté Flash francophone et deux de mes fidèles lecteurs... Vous êtes dans mes bookmarks les gars !
- Pixlib Pas nouveau, mais je recommende à tous les dévelopeurs AS2 de tester (et utiliser ) cette librairie. Chaque revision (assez fréquentes) apporte son lot de nouveauté.
- AMFPHP 1.0 Le cadeau de Noël de Patrick Mineault.
- SexieR Une nouvelle version toute fraiche de Sexie.
- Sandy Moteur 3D en AS2 qui risque de devenir le meilleur moteur 3D pour flash.
- AS3 : String VS StringBuilder Article intéressant sur les deux façons de concaténer des String en AS3 et leur implémentation en background. (Je vais devoir faire une petite mise à jour concernant ce billet)
Par liguorien,
vendredi 23 décembre 2005 à 13:15 ::AS3
L'Actionscript 3 apporte un nouveau système événementiel basé sur le modèle événementiel du DOM Level 3. Je n'irai pas en détail dans mes explications mais il y aura au moins le strict minimum pour comprendre son utilisation. Vous devez déjà être familié avec le EventDispatcher pour lire la suite.
Par liguorien,
mercredi 7 décembre 2005 à 11:08 ::AS3
Ce n'est pas parce que j'ai arrêté de parler de l'AS3 que j'ai arrêté de jouer avec ! C'est la même chose avec Adobe (formerly macromedia), ils n'ont pas chômés pendant l'alpha !
J'aime bien le nouveau popup pour les alertes de sécurité au lancement de Java Web Start. Pour une liste complète des changement, c'est ici que ça se passe.
NB : J'ai rencontré un problème lors de l'installation. Je crois que c'est à cause que j'avais NetBeans et Tomcat qui roulaient à ce moment. Je supose qu'il y avait un lock sur le fichier rt.jar (qui contient presque tout le JDK). J'ai fermé les deux, désinstallé l'installation foireuse du JDK et recommencé l'installation. La 2ième fois était la bonne.
Par liguorien,
lundi 21 novembre 2005 à 15:30 ::Flash
Petit coup de pub pour le blog flash d'un ami. Le blog existe depuis 2 mois, mais je viens tout juste de découvrir son existence.. (t'aurais pu m'le dire fred ! )
Par liguorien,
mardi 15 novembre 2005 à 22:16 ::Divers
Moi aussi je veux être à la mode, alors voici ma bibliothèque de geek :
- ActionScript for Flash MX: The Definitive Guide - Essential Actionscript 2.0 - Flash Enabled (Flash design & development for devices) - Game Development with ActionScript - Game Design (Secrets of the Sages) - 3D Math Primer - C Unleashed - C++ Primer Plus (2nd edition) - C++ for game programmers - Java 2 Core Language - Core Java 2 Advanced Features Volume 2 (J2SE 5.0) - Wireless Java with J2ME in 21 days - Developing Games in Java - Patterns in Java - Applied Java patterns - Web services Java APIs for XML using WSDP - Java 2 performance and idiom guide - Java performance ans scalability, volume 1 - Swing Hacks - Hack proofing XML - HTML and XHTML in 24 hours (5th edition) - XSLT Developer's Guide
Par liguorien,
mardi 25 octobre 2005 à 21:09 ::Flash
Je me suis rendu compte d'un fait dernièrement : en Actionscript, tout est passé par valeur. Même si cela peut paraitre étrange, c'est bien le cas
Mon ancienne façon de voir la chose, c'est que les types Boolean, Number et String sont passés par valeur et tout le reste (Array, Object, etc...) est passé par référence.
Pourquoi est-ce que c'est seulement ces trois types qui sont passé valeur ? Et pourquoi le reste par référence ? Regardons tout d'abord du côté du reste qui est passé par référence.
Par liguorien,
dimanche 23 octobre 2005 à 19:10 ::AS3
Je viens de finir mon premier petit projet en AS3 (moment historique ^^). Il s'agit du jeu du serpent. Le serpent avance tout seul et il faut le diriger pour éviter les mur et aller chercher la bouffe. Plus il bouffe, plus il devient grand et il ne faut pas qu'il se passe sur le corps.
Par liguorien,
mercredi 19 octobre 2005 à 19:19 ::AS3
Il existe une nouvelle façon de faire des boucles en AS3. Il s'agit du for each. La syntaxe est presque la même qu'un for(.. in ..) sauf qu'on y ajoute le mot each entre le for et la parenthèse.
La différence au niveau fonctionnel c'est que l'itération se fait sur les valeurs d'un objet plutôt que les clés (index ou nom de propriété ).
Par liguorien,
mercredi 19 octobre 2005 à 13:11 ::AS3
Comme Aggelos l'a mentionné, Zorn permet de modifier les options de compilation du compilateur. En fait, Zorn est livré avec deux compilateurs utilisable en ligne de commande.
- mxmlc qui permet de compiler du MXML et de l'AS3 en SWF
- compc qui permet de générer des SWC.
Donc pour répondre à la question d'Aggelos :
Les paramètres de compilation d'ailleurs, quels sont-ils ?
La réponse se trouve dans la doc. Plus précisément dans la section : Developing Flex Applications > Using the command line compilers > Using mxmlc > mxmlc options.
Je ne cite pas les options ici car la liste est assez longue... ^^
Par liguorien,
mardi 18 octobre 2005 à 20:01 ::Divers
Ce post est totalement hors-sujet mais je ne peux m'empêcher de le faire. Ce weekend, Albert Uderzo à sorti un nouvel album d'Astérix. Ayant lu toute la collection à mainte reprise dans mon enfance, j'ai acheté cet album.
Ceux qui ont l'intention de l'acheter à tout prix, ne lisez pas la suite !
Par liguorien,
mardi 18 octobre 2005 à 19:19 ::AS3
Ah le XML, le fameux XML. Qui d'entre ceux qui ont déjà utiliser du XML n'ont jamais eu à faire face à des doc.firstChild.childNodes[index].childNodes[index2].firstChild.attributes.name ? Il ne doit pas y en avoir beaucoup en tout cas. Et bien avec une des nouveauté qu'apporte l'AS3 c'est maintenant chose du passé... ^^
Par liguorien,
lundi 17 octobre 2005 à 22:18 ::AS3
Qu'est-ce que c'est const ? Pour les développeurs ayant un background en C++, ce n'est pas nouveau. Pour les développeurs ayant un background en Java, c'est la même chose que déclarer une variable final. Pour les développeur AS, voici une brève explication.
Par liguorien,
lundi 17 octobre 2005 à 21:41 ::AS3
L'objet arguments existe encore en AS3, mais nous avons un petit problème... Le compilateur est beaucoup plus stricte à ce niveau. Si la déclaration d'une méthode ne comprend aucun arguments, il sera impossible d'en envoyer lors de l'invocation. Une nouvelles fonctionnalité du language permet de régler le problème.
Par liguorien,
lundi 17 octobre 2005 à 21:26 ::AS3
Je ne vous apprends surement rien, Macromedia à lancé aujourd'hui le sous domaine labs.macromedia.com avec Flex 2.0, Flex Builder 2.0, Flash Player 8.5 et l'AS3. Commençons par regarder de plus près l'AS3 avant de s'attaquer au reste.
Par liguorien,
vendredi 14 octobre 2005 à 12:27 ::Flash
J'ai commencé cette semaine à utiliser les nouvelles fonctionnalités de Flash 8. La classe flash.net.FileReference en particulier. J'ai commencé par lire ce tutoriel d'Aggelos. Le code du côté de Flash s'est fait assez rapidement sans problèmes. Enfin, c'est ce que je croyais...
Pour le côté serveur, j'ai commencé par faire un action Struts dont le rôle est d'uploader le fichier, créer une entré dans la BD, récupérer l'ID de cette entré et le retourné au SWF. C'est à ce moment que je me suis rendu compte qu'il n'avait aucun moyen de lire le contenu de la réponse de la requête HTTP utilisé pour l'upload (de la même façon qu'on le fait avec un LoadVars). J'ai dû procéder à un hack merdeu. Je stock l'ID dans une variable session et je fais un autre requête au serveur pour récupérer l'ID qui est dans la session. Ce qui entraine un autre problème...
Habituellement les requêtes HTTP faites par le FlashPlayer (LoadVars, XML, etc...) envoient les cookies du client au serveur. Ce qui permet de gérer les sessions. Mais... le FileReference d'envoi pas les cookies ! Il faut envoyer l'ID de session manuellement...
Pour récupérer l'ID de la session dans le SWF, je l'ajoute comme paramêtre dans le paramête movie de l'élément object dans le HTML.
L'upload semblait bien fonctionner, le fichier était bien copié sur le disque dur du serveur. Mais en fait ce n'était pas le bon fichier... J'avais réutilisé une classe d'upload que j'ai fait pour le même type d'application, sauf que le client était en Swing. J'envoyais les données binaires brutes directement dans le corps de la requête. Évidemment le flash player ne procède pas de cette façon. Les données sont envoyées en multipart/form-data, ce qui est l'équivalent d'un formulaire d'upload HTML. J'ai donc modifié mon action struts en conséquence. J'ai réessayé à nouveau et là j'avais toujours une Exception qui était lancé : Stream ended unexpectedly.
Comme si le Flash Player n'envoyait pas le fichier à uploader en entier. Après beaucoup de gossage. Je me suis rendu compte qu'en fait le Flash Player fait deux requêtes au serveur lorsque l'on invoque la méthode upload. La première est tout simplement une requête vide n'ayant même pas un octet ! Par contre la deuxième requête est la bonne. J'ai dû rajouter ce petit hack dans mon action Struts :
Java
if(request.getContentLength() == 0)return null;
J'ai finalement réussi à tout faire fonctionné, mais en beacoup plus long que prévu. Je me demande si cette classe à bien été testé ?
Par liguorien,
mardi 20 septembre 2005 à 07:42 ::Java
Il y a eu un sondage dans la communauté NetBeans dernièrement.
What should the next version be called?
Les choix de réponse étaient : 4.2 - 4.5 - 5.0.
La prochaine version était censé être 4.2 à l'origine. Mais vu le nombre impressionant de nouvelles fonctionnalitées, la majorité des membres de la communauté ont voté pour ce que soit une version majeure (5.0).
Ceci étant dit, le beta devrait commencer dès lundi prochain.
Je viens de recevoir la confirmation que j'ai été choisi parmi les participant pour être dans le NetCAT 5.0 Donc si jamais vous trouvé des bugs qui bloquent votre productivité, n'hésitez pas à m'en faire part il sera traité avec une haute priorité par l'équipe de dev.
Par liguorien,
dimanche 4 septembre 2005 à 20:22 ::Java
Voici un billet qui contient un exemple de code qui met en pratique un regroupement de notions de Java déjà abordées sur ce blog : Thread, Generics, Swing, etc... Le but de ce code est de développer une classe générique qui permet de récupérer des données de façon synchrone et d'afficher une barre de progession dans un dialogue pendant ce temps. J'ai enlevé quelques facteurs réels d'une application afin de simplifier l'explication du code.
Par liguorien,
vendredi 2 septembre 2005 à 10:10 ::Projets
J'ai menti... J'ai dit que j'allais intégrer toute les fonctionnalitées actuelles de SAM-UI dans NetBeans avant d'en ajouter d'autres. Je n'ai pu résister à la tentation de commencer l'éditeur AS2.
Pour ceux qui étaient trop occupé à s'amuser avec FDT, SAPIEN vient d'annoncer la sortie de PrimalScript 4. Il est maintenant offert en trois version : standard, professional et enterprise. La version enterprise ne sera pas disponible avant le mois d'Octobre.
Par liguorien,
dimanche 21 août 2005 à 18:20 ::Flash
Voici un article très intéressant sur la performance du Flash Player. Il est écrit par Tinic Uro, ingénieur principal du Flash Player. Lisez bien ce qu'il à écrit, particulièrement à la fin où il recommande de ne pas trop abuser des nouveaux effets graphiques.
Par liguorien,
mercredi 17 août 2005 à 12:57 ::Flash
Macromedia organise un séminaire à Montréal le 13 septembre pour le lancement de Studio 8. Une license complète sera tirée comme prix de présence ! Je crois que je vais y aller. ^^