LiguoBlog v3

I just migrated the old blog on wordpress. I know that this blog is pretty much dead, but at least I will keep the engine up to date!

Maybe I will start being an active blogger again. I’ll post in english this time.

ping liguorien

Juste un petit billet pour signaler que je suis encore en vie! :)

Voici un petit récapitulatif des derniers mois/années classé par sujets.

Emploi

Techniquement je n’ai pas changé d’emploi depuis novembre 2007. Par contre, j’ai changé de compagnie! Tribal Nova a lancé un spin-off nommé Woozworld inc qui focus uniquement sur le projet sur lequel je travail. C’est à dire woozworld (anciennement nommé KidStudio). Il s’agit du communauté virtuel pour les pré-ados axé sur le User Generated Content (UGC). J’ai été nommé lead programmer front-end lors du changement de compagnie. Mon équipe se charge de l’ensemble du dévelopement Flex ainsi que du serveur multijoueur en java (smartfox).

Livres

Voici quelques livres que j’ai lu dans les derniers mois :

  • The definitive guide to Terracota
  • Fundamental networking in java
  • Network Warrior
  • The pragmatic programmer

Jeux

Et oui, je suis toujours un gamer assidu. Voici les jeux auquels je joue en ce moment :

  • Starcraft II
  • Final Fantasy XIV
  • Guitar Hero : Warriors of Rock

Misc

Pour finir, voici quelques pensées aléatoires :

  • Netty est vraiment bien si vous devez faire des applications clients/serveurs en java.
  • J’ai remplacé firefox pour chrome l’an dernier.
  • J’ai essayé d’apprivoiser l’Objective C pour faire des apps iPhone, mais c’est un language trop barbare pour moi :P
  • Je déteste travailler avec les APIs facebook.
  • Je n’ai jamais réussi a arrêter de fumer complètement.
  • Je n’ai pas encore fait de projet en Flex 4, et du coup, essayer les nouveaux composents spark. (Honte à moi, mais c’est ce qui arrive lorsqu’on travail sur le même projet depuis 3 ans)

Fiesta Russe HD

Je profite de ce début de semaine de vacances pour faire retrouvaille à mes archives de geek.

Aujourd’hui est votre jour de chance car vous avez droit en exclusité un re-export de mon étage pour la fameuse Mediabox Tower 2.0.

La réalisation et la totalité de la production avait été fait de mes propres mains. Le tout en respectant la contrainte de 40ko de poid total.

Bing.com easter egg?

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.

Continue reading

[Frame]

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

java.util.concurrent

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.
Continue reading

Exorcisme

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.

-Nicolas

Euh…

Dotclear c’est le royaume du spam… J’ai désactivé les commentaires le temps de régler le problème.

Mission accompli

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.

Bonjour

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 on Labs

Adobe vient de rajouter deux projets sur labs.

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.

Petit essai

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

Flex 2.0.1

Vous avez surement appris dernièrement qu’une mise à jour est disponible pour Flex 2.

Comme à chaque mise à jour, j’ai eu des problèmes de compilation :P

Cette fois, il s’agit de la propriété UIComponent.layoutManager qui n’existe plus…  Elle a été changé pour :

UIComponentGlobals.mx_internal::layoutManager


Voilà, si jamais c’est utile à quelqu’un :)

Java 6 – SystemTray

Vous souvenez-vous de JDIC ?   Dans ce billet, j’avais mentionné :

Si le développement continu au rythme prévu, JDIC devrait être intégré à la version finale de Mustang.

C’est maintenant partiellement le cas.

L’équipe de développement du JDK a reprit le code de JDIC pour le Tray API et l’a remodel
Continue reading

Java 6 – JAXB

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.

Java Architecture for XML Binding (JAXB) permet de créer générer des document XML à partir des entités et vice versa.  Un armé d’annotations est fourni pour configurer le tout.
Continue reading