Liguoblog

jeudi 7 décembre 2006

FlexGenerator 0.2 alpha

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 :P   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... :P   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.

Sources
Documentation

Enjoy :)

dimanche 19 novembre 2006

FlexModelGenerator

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.

Vous pouvez télécharger les sources ici.

Un peu de documentation ne fait pas de mal.

Enjoy :)

mercredi 8 mars 2006

CSSCompletion - part 2

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é.

Lire la suite

lundi 13 février 2006

CSSCompletion

J'ai fait un module qui ajoute le code completion pour les mots clés dans l'éditeur CSS de NetBeans.

Si vous avez ajouté mon update center dans votre liste, vous pourrez y télécharger ce module.  Sinon pouvez télécharger le fichier NBM.

Les sources sont disponible sous licence SPL.

Enjoy !

dimanche 12 février 2006

NetBeans JavaScript Editor 0.2

J'ai incrémenté de 0.1 la version de mon éditeur JavaScript pour NetBeans.

Pour fêter l'occasion j'ai fait une page dédié pour regrouper l'information. Ça se passe ici.

dimanche 5 février 2006

NetBeans JavaScript Editor

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...)

Lire la suite

vendredi 2 septembre 2005

SAM-UI + AS2 editor

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.

Lire la suite

lundi 15 août 2005

SAM-UI 0.4

Une nouvelle version de SAM-UI est disponible. Les changements sont :

- Navigateur web natif pour exécuter les SWF (IE ou mozilla)
- Classpath multiple
- Liaison de classes et symboles de la librairies.
- Support de la méthode Natural Entry Point
- Meilleur support de MTASC
- Les statistiques du profiler sont maintenant triables.
- Réglage de bugs.

Cette version de SAM-UI n'est pas disponible pour Mac. La version Linux n'a pas encore été testé, alors vous qui acclamez si fort la puissance du pengouin, testez SAM-UI et dites-moi en des nouvelles ! ;)

Pour le t

lundi 8 août 2005

SAM-UI + OSFlash.org

SAM-UI est maintenant hébergé sur OSFlash.org. J'ai donc maintenant un compte SVN, Trac et une mailing list à ma (votre) disposition.

Tout les liens sont ici : http://www.osflash.org/doku.php?id=samui

dimanche 7 août 2005

SAM-UI 0.3 + open source

Le temps est venu de sortir une nouvelle version de SAM-UI. Je n'ai pas eu le temps d'intégrer toutes les fonctionnalitées voulues, mais j'avais prévu la 0.3 pour aujourd'hui, donc je respecte ma parole. Le reste sera pour la 0.4. ;)

Pour compenser, SAM-UI devient maintenant open source distribué sous license GPL. J'ai également fait une petite page dédié à SAM-UI. La page est en anglais afin de rendre SAM-UI accessible à plus de gens.

http://www.liguorien.com/samui/

Encore une fois, n'hésitez pas à laissez vos commentaires/suggestions/bugs dans les commentaires.

dimanche 10 juillet 2005

Un peu d'optimisation...

J'ai commencé à faire un profiler pour SAM-UI. La tâche de ce profiler est d'observer l'exécution d'une application Flash et détecter les régions chaudes du code. Celles qui pourraient demander de l'optimisation... Le tout sans modifier le code original.

Comment cibler une partie du code en particulier ? Le principe est assez simple.  Au lancement de l'application, on scan de façon récursive l'objet _global afin de cibler les différente classes et packages présents au runtime. Pour chaque classe, on scan son prototype afin de détecter les méthodes. Pour chaques méthodes, on fait un backup de la méthode l'originale, on stock le nom de classe et méthode pour cette partie de code et on exécute le backup tout en calculant le temps d'exécution.

Évidemment tout ceci ralenti l'éxécution du code mais en théorie, tout devrait rester proportionel. Donc ça permet tout de même de cibler les régions chaudes. L'utilisation que je souhaite en faire pour le moment est de :

- afficher l'historique du callstack à n'importe quel moment de l'éxécution.

- afficher des statisques dans un histogramme. Les méthodes/classes les plus lentes, rapides, utilisées, etc... En fonction du temps d'exécution minimum, maximum ou de la moyenne.

Bref mon analyse primaire me disait que c'était surement possible de le faire. J'ai donc essayer ! Les premiers tests que j'ai fait étaient uniquement sur trois classes : Main, Maman et com.Papa.  Le résultat était pas si mal. L'étape suivante était de le tester avec mes packages layout et component qui contiennent beaucoup plus de classes. Le résultat était catastrophique !!! Vraiment très lent, mon ordi a gelé pendant une minute le temps que le Flash Player génère le XML et le renvoie à SAM-UI pour l'afficher dans un JTree. J'avais envie de tout laisser tomber... Puis je me suis dit qu'il y avait peut-être moyen de faire un peu (beaucoup) d'optimisation !

Lire la suite

vendredi 8 juillet 2005

SAM-UI 0.2

Une nouvelle version de SAM-UI est disponible. Voici la liste des changements :

- Réglé le bug d'ajout de symbole à la racine de la librarie.

- Changé les labels "home" pour "path" dans la configuration de projet.

- Ajout d'un champ pour les paramètres optionels.

- Gestion de la commande TRACE() de MTASC. Il y a donc maintenant un serveur socket d'intégrer à SAM-UI (port 12000). Il peut y avoir un nombre infini de SWF connectés à l'application simultanément.

- Dans le console de sortie, lorsqu'on bouge la souris au dessus d'un message de log, un tooltip apparait avec le nom du fichier AS et le numéro de ligne à laquelle le log à été envoyé. (voir screenshot ci-dessous)

Lire la suite

dimanche 3 juillet 2005

SAM-UI 0.1

De retour du weekend avec une première version (apha) de SAM-UI.  Le but de cette application est de fournir une interface graphique pour manipuler swfmill, ant et MTASC.

Lire la suite

dimanche 16 janvier 2005

com.liguo.layout 0.1 beta

J'ai repris ce weekend les travaux sur mon package com.liguo.layout. Il est donc désormais disponible en tant que version 0.1 beta.

Lire la suite

jeudi 2 décembre 2004

com.liguo.layout

Depuis que j'ai acheté GTA, un mauvais sort s'est abattu sur moi...

Je suis bombardé des nouvelles versions de mes jeux favoris ! ;)  
Après GTA, c'est Metal Gear Solid 3 qui a fait surface. Je dois vous avouer que ce jeu est un véritable chef d'oeuvre sur tous les aspects ! 8) (must have)

J'ai terminer ma scéance de gaming intensive dimanche dernier. N'étant pas équipé d'une technologie Hyper-Threading, je n'ai donc pas pratiqué mes activités de geek quotidiennes...  Histoire de rattraper le temps perdu, j'ai décidé d'ajouter un nouveau package à ma libraire perso. J'ai nommé : com.liguo.layout.

Lire la suite

dimanche 19 septembre 2004

Moteur de jeu 2D v2.0

Ce weekend j'ai décidé de reprendre à zéro un projet qui était en pause depuis un bon bout de temps. Il s'agit d'un moteur de jeu 2D à la Metroid avec un éditeur de map wysiwyg. J'ai choisi cette fois de débuter avec l'éditeur de map plutôt que le moteur en soi. Il est loin d'être fini et il a encore des bugs... Mais voici quand même un petit aperçu. :) (désolé il n'y a pas encore de preload...)

J'ai pris la décision de laisser tomber les librairies de textures externes. C'était  bien de pouvoir uploader de nouvelles textures sur le serveur sans recompiler le moteur, mais ce n'était vraiment pas pratique pour faire la gestion du z-index... :S Aussi maintenant il sera possible d'animer les objets du décor.

dimanche 15 août 2004

Struts en AS2 (suite)

Bon ça y est, j'ai abouti à quelque chose de présentable! ;) J'ai fais un exemple bien simple. Il s'agit d'une application qui charge un document XML et l'affiche dans un TextField.  L'url du document est entré par l'usager. C'est tout... :P

Pour montrer la possibilité d'ajouter des fonctionnalitées facilement, j'ai fait un controlleur custom qui filtre le document XML et censure le contenu parental! ;)  

Il y a le package com.liguo.core.simple qui contient l'implémentation de base des interfaces du package com.liguo.core.  Voici les sources. Merci d'avance à ceux qui prendront le temps d'y jeter un coup d'oeil et me dire ce que je devrais améliorer. :D

samedi 14 août 2004

Struts en AS2

Ce matin, j'ai décidé de reprendre un projet que j'avais laissé de côté depuis longtemps. Mon but primaire était de facilité le travail d'équipe entre développeur, intégrateur et designer.  J'avais donc décidé de faire un API MVC à la Struts en AS2.  À l'époque, j'avais utilisé le pattern Singleton pour faire mon controlleur. C'était bien, mais pas assez souple pour rajouter des fonctionnalité sans modifier l'ensemble de l'application. J'ai plutôt décidé d'opter pour un mixe entre le Singleton et le Strategy Pattern.

Lire la suite

mercredi 11 août 2004

LiguoBug #1

Un premier problème fait surface avec mon blog... ;) Afin de diminuer les requêtes vers la base de données, je mets dans la cache du serveur : le menu, l'index et le flux RSS. Je me suis fais un CacheManager équipé d'une méthode update() qui mets à jour la cache. Au déploiment du blog, j'ai un plugIn qui invoque cette méthode afin que l'index soit tout de suite disponible. Ensuite, la cache est updaté à chaque billets ou commentaires postés.

Lire la suite