De mieux en mieux!

Written by Fneuch on 3.12.05

Définitivement, j'apprécie de plus en plus Eclipe comme éditeur Java.

Ce billet (c'est laid comme terme pour un "post", mais bon c'est
fran?ais!) vous parvient directement d'Eclipse. Le concept de plugin
est tellement bien fait qu'un crinqué c'est amusé a faire un plugin
pour accéder à GMail depuis Eclipse (Le plugin est super bien fait!).
J'ai donc installé le plugin (un simple dé-zip dans le bon répertoire)
configurer mon compte et il ne me restait plus qu'a envoyé mon
courriel à l'adresse de publication de Blogger...

____________________________________
.: Message sent using GmailClipse :.

Dans la même suite d'idée...

Written by Fneuch on 29.11.05

Toujours dans mon exploration/utilisation de l'outil génial qu'est Maven 2, j'ai eu la chance d'obtenir un plugin de Maven pour l'éditeur Eclipse.

Je ne sais pas si je peux vous le transmettre, mais si vous êtes réellement intéresser, laisser moi vos coordonnées, je vous envérrai les informations pour l'obtenir.

Bref, ce fabuleux plugin crée le pom lorsque le projet existe déjà, vérifie les dépendances et fait seul les recherches sur ibiblio (Je sais pas c'est exactement sur ibiblio, mais c'est le même concept de repository). L'interface de recherche est le même que celui de l'IDE.

Définitivement, j'aurais du m'y mettre plutôt!

Un outil génial !?!

Written by Fneuch on 24.11.05

Au bureau, on a commencé à travailler avec un outil qu'on veut implanter. Ça fait longtemp que j'y avait jetté un oeil. Mais à l'époque, c'était complexe d'utilisation et par le fait même, dure à implanter dans une grosse organisation.

Or, la version 2 vient de sortir et mon dieu que d'amélioration!

Vous vous demandez de quoi je parle... Il sagit de Maven. C'est un outil sous l'égide de la fondation Apache. Si vous fouillez sur le site, vous allez apprendre que Maven se veut : to apply patterns to a project's build infrastructure in order to promote comprehension and productivity by providing a clear path in the use of best practices. En gros, il se veut une façon d'uniformiser le processus de développement.

Si vous voulez voir comment il est simple de partir un projet, avec maven, allez voir ce guide.

Il faut par contre avoir un bémol sur cet outil génial (c'est pourquoi y a un point d'interrogation dans le titre) c'est qu'il faut bien connaitre comment ça marche pour faire vraiment du développement. Maven est difficilement utilisable sans le site ibiblio. Et encore là, il faut savoir chercher sur ce site, décortiquer l'information afin de l'ajouter dans votre POM.
Il est vrai qu'il est plus simple d'ajouter 5 lignes dans un fichier XML que d'installer une librairie de code dans n'importe quel IDE. Par exemple, afin d'ajouter struts dans votre projet, vous devez ajouter dans votre fichier pom.xml les lignes suivantes:

<dependency>
<groupId>struts</groupId>
<artifactId>struts</artifactId>
<version>1.2.8</version>
</dependency>

Et c'est tout, aucune librairie à télécharger, aucune dépendance à trouver, Maven s'en charge! Tous ce qu'on a à faire, c'est de trouver les 5 lignes que je viens de vous montrer.

Il y a peut-être 10 millions de façon de procéder afin de trouver les informations sur la librairie qu'on veut ajouter, mais voici comment moi, je procède:


  1. Recherche du nom de la librairie sur le site d'Ibiblio. (ex.: struts)

  2. Sélection d'un résultat qui semble correspondre à ce que je cherche.

  3. Parcours le répertoire pour tenter de trouver le fichier *.pom

  4. Récupère les informations suivantes(que je copie dans mon pom.xml) :
    <project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>struts</groupId>
    <artifactId>struts-el</artifactId>
    <version>1.2.8</version>
    </project>

  5. Supprimer la ligne <modelVersion>

  6. Changer project pour dependency

  7. Et voilà!



Par la suite peut, importe la commande que vous lancerez, Maven téléchargera la librairie avec ses dépendences.

Vous pouvez même générer vos projets pour les éditers avec vos IDE favoris. (il n'y a pas encore de plugin pour générer un projet JDeveloper, mais bon je suis entrain de me convertir à Eclipse...)

Afin de vous aider à rechercher des librairies dans ibiblio (et par le fait même, vous y convertir) j'ai ajouté un choix dans mon champ de recherche. Il fera directement la recherche dans maven2 sur ibiblio. Vous n'avez qu'a y inscrire le nom de votre librairie et cliquer sur rechercher!

mvn bye:bye

Vraiment génial!

Written by Fneuch on 11.10.05

Je viens de tomber sur un article de Romain Guy's Blog qui montre comment générer du code Java pour une formule mathématique très compexe.

Vous avez besoins de développer l'équation permettant de modeliser un problème du style:

Le taux d'évaporation d'une boule à mites est proportionnel au carré de son rayon. On sait qu'au temps t=0 mois, elle fait 8mm de rayon et qu'au temps t=1 mois, elle ne fait plus que 6mm de rayon. Donner le rayon r de la boule à mites en fonction de t et déterminer à quel moment elle ne fera plus que 1mm de rayon.

On sait qu'on aura une équation du style :

dr/dt = kr2(carré)

Cette équation est assez simple à programmer, mais qu'advient-il lorsque nous devons trouvez le chemin le plus rapide que doit emprunter un robot dans son déplacement?

C'est à ce moment que cette solution : Unexpected Java Tool rentre en ligne de compte...

Il est certain qu'il faut le logiciel Maple pour que ça fonctionne, mais il est quand même interressant de savoir que ça existe.

Du nouveau...

Written by Fneuch on 26.9.05

La nouvelle version de JDeveloper 10.1.3 est sortie la semaine dernière... J'ai même pas eu le temps de l'ouvrir encore...

Il fait toujours plaisir d'être utile!

Written by Fneuch on 16.2.05

Je me suis fait demandé quel était les caracteristiques d'un architecte organique. (Car c'est le rôle que j'ai au sein de mon ministère, pour ceux qui n'ont pas vu mon profil).

La question peut-être répondu de 2 façons:

  • La première (et je suis certain que c'est celle recherché), c'est du point de vue du travail effectué.
  • La deuxième (je la fournis afin d'encourager tout ceux d'entre vous qui voudrais, soit engagé un architecte organique, soit en devenir un) est du point de vue de l'humain qui le fait.
Je ne prétends pas avoir la vérité absolu sur la définition d'un architecte organique, mais j'essais plutôt de définir en fonction de ce que je vois dans la communauté informatique.

Un «Architecte organique», qu'est-ce que ça mange en hiver?

Premièrement, l'architecte organique ne doit pas être confondu avec l'architecte technologique. Dans la plupart des organisations, il y a des décisions, choix qui sont fait pour l'entreprise entière. Des choix comme les composantes matérielles, les systèmes d'exploitations et certains logiciels (les serveurs d'application, les serveurs de base de données sont quelques exemples) Ces choix sont effectués par les architectes technologiques. Il va de soi, que l'architecte organique travaille en collaboration avec l'architecte technologique, car ces choix vont influencer directement son travail.
Mais, dans chaque projet de développement, il y a toujours des besoins techniques qui n'ont pas à être dicté pour l'entreprise au grand complet. Le choix d'une librairie «third-party» en est un exemple. Prenons nous «Apache Struts» ou «Spring» comme framework. Ces choix sont de la responsabilité de l'architecte organique.

L'architecte organique apporte aussi son conseil au gestionnaire de projet dans la spécification des cas d'utilisation (use cases) lorsque ceux-ci peuvent être influencer par la technologie. Un système d'envoie de courrier en lot par exemple, est un cas simple où la définition du cas d'utilisation doit absolument se faire en collaboration avec l'architecte organique.

L'architecte organique peut (ce n'est pas le cas dans mon ministère) être responsabilité de la méthodologie de développement utilisé, Extreme Programing, Rational, etc.

L'architecte organique est souvent reviseur de la documentation d'un système. Il n'est pas la personne qui approuve la documentation, mais il se doit de commenter celle-ci afin de pouvoir aider les programmeurs qui travailleront sur le projet. Ceci permet aussi de soulever d'avance les difficultés techniques qui pourront se présenter.

L'architecte organique est responsable d'établir les règles de programmation. Il se doit de fournir les façons de faire qui seront utilisées dans les projets. Sans ça, les programmeurs seront laissé à eux-mêmes, et il deviendra impossible de maintenir le système par la suite, il devient aussi difficile de remplacer un programmeur par un autres si un problème survient. (Les règles de programmation doivent définir des choses tel que la gestion des erreurs, la journalisation (logging), la normalisation des tests, etc.) Il est aussi responsable de vérifier que les règles sont suivis.

L'architecte organique aide le gestionnaire de projet dans l'identification des taches qui sont à réaliser dans le cadre du projet. Il peut aussi (s'il en est capable) fournir des estimer de temps au gestionnaire de projet. (Oublier moi la dessus!)

L'architecte organique aide et supervise les programmeurs pour les taches complexes. Il se doit d'être en mesure de répondre au question technique, de fournir une aide concrête dans la solution des problèmes qui se présente.

L'architecte organique peut aussi être de conseil pour l'embauche/evaluation d'un employé. Il est souvent nécéssaire de vérifier les compétences techniques d'un employé, l'architecte organique se doit d'être en mesure de conseiller le «manager» (vous pouvez mettre la personne que vous voulez, mais c'est celui qui est responsable du personnel).

L'architecte organique se doit de travailler de pair avec le spécialiste des interfaces (Dans mon cas le Web Designer) Afin de déceler les impossibilités techniques (faire tourner un texte sur 360 degré en avançant dans une page web) Il est aussi responsable de s'assurer que les programmeurs respecte les normes visuels qu'il a défini avec le Designer.

L'architecte organique est souvent responsables d'établir les règles physique de l'application. En d'autre mot, le découpage en packetage, de soulever les endroits où les bonnes pratiques (Design Pattern) sont de rigueur, etc.

Il est à noter aussi que l'architecte organique joue un rôle du début à la fin du développement, il se doit d'être en constante communication avec tous les intervenants dans le projets, afin de toujours être en mesure d'assurer une cohésion constante entre toutes les parties de l'applications.

Un «Architecte organique», qui est-ce qui veut manger ça l'hiver?

Les accros... LOL! Il n'est pas nécéssaire de posseder 25 Baccalaureat pour pouvoir faire la job d'architecte organique.

Généralement, l'architecte organique est quelqu'un qui lit beaucoup sur la technologie. (Il n'est pas obligé de connaitre toutes les technologies parfaitement, il suffit simplement de savoir que ça existe et de se souvenir où trouver l'information quand le besoins se pointe.)

L'architecte organique se doit d'être un bon communicateur, être en mesure de vulgariser les technologies. Puisqu'il interragit avec beaucoup de personne qui n'ont pas tous les mêmes connaissances, il doit adapter son niveau de communication avec son interlocuteur. (T'explique pas le céduleur quartz de la même façon à un chargé de projet qu'à un technicien)

L'architecte organique se doit d'avoir un bon esprit de synthèse. Il arrive fréquemment qu'on soit «pitcher» en plein milieu d'un problème et qu'on doit trouver une solution, une explication, peut importe... Il faut être en mesure de rapidement comprendre la situation et la cause du problème.

Je pense que j'ai fait le tour, si vous pensez à autres choses, faites-le moi savoir.

Je vais changer de système d'exploitation!

Written by Fneuch on 29.1.05

Pas dans la seconde car il n'est pas encore disponible, mais ça ne saurait tarder!

Sun vient d'annoncer officièllement la distribution de son OS, Solaris 10, à la communauté OpenSource.

Bientôt : OpenSolaris!

Quand sécurité rhyme avec difficulté!

Written by Fneuch on 25.1.05

Ça fait un bon petit bout que j'ai pas écris! Plusieurs raisons en sont la cause. Des raisons qui d'après moi n'ont besoins d'aucune justification ici.

Sauf que pour vous donner un «cue», j'avais besoins de vacance et j'en ai pris. (3 semaine et demi pour votre curiosité)

Je l'ai déjà mentionné, on travaillait en décembre sur un concept de sécurité applicative. Quand je dis «on», je dois levé mon chapeau à Alex, mon partner au bureau! Il a réussis à mettre en oeuvre les concepts de sécurité applicative que j'avais en tête. Et il a fichu une super bonne job! Je l'agace en disant qu'il en a trop fait, il a fait ça juste pour épater la galerie... lol Alex! Par contre, le composant qu'il a développer est tellement génial qu'on peut passer d'une authentification ldap, à une en xml, une sur la BD Oracle ou avec SSO en changement seulement un paramêtre dans le fichier de config.

Notre module de sécurité est fort simple en soi, il utilise les concepts de JAAS et les mécanismes déclaratifs de J2EE (mécanismes qui sont libre de l'implémentation par les manufacturier) . La combinaison de ces 2 concepts est faite en utilisant une partie de l'implémentation Jazn d'Oracle. (Si vous ne saviez pas que nous étions avec Oracle, c'est que vous ne venez pas souvent sur mon blogue.)

Notre mécanisme d'authentification et d'authorisation utilise un composant commun que nous avons développé. Et qui dit composant commun dit généralement un déploiement unique pour toutes les applications, bref un EJB.

C'est ce mécanisme que nous devions livrer au 10 décembre. Or, vacance nuisant (et pas seulement les miennes) le module n'a été livré qu'en unitaire, soit sur le poste des développeurs qui en avaient besoins. Les vacances finissent, tout le monde reviens, quelques modifications sont nécéssaires au module pour fin de «fine tuning».

Et voilà, nous sommes prêts à déployer le mécanismes sur nos serveurs... Paf, patate! Le module ne fonctionne pas d'un serveur à l'autre... De notre poste-client au composant serveur, ça marchait, mais de serveur à serveur, niet, zéro, nada. Ça fait une semaine qu'on travaille d'arrache pied pour faire fonctionner notre module de sécurité. Ça fait 2 jours qu'on sait que le problème de notre module de sécurité, et bien c'est la sécurité! Nous ne sommes pas en mesures d'appeler un remote EJB. (Et on a tout fait comme il faut, vérifier au moins 6 fois.)

Dans cette impasse (et dans l'impatience montante de mon boss), on décide de temporairement distribué notre composant en EJB local à l'application (chose que nous fesions auparavent) et deviné quoi... Pouf, patate! le module ne fonctionne plus. Que voulez-vous, en informatique, il y a comme une espèce de malédiction qui dit : comprends pas, ça marchait hier!

Dans cette impasse, on jase au monde avec qui on travaille et on se rend compte, que ce soit au niveau de la sécurité technologique (implantation d'un serveur d'authentification, implantation d'un mécanisme de sécurité d'accès au batiment), au niveau des progiciels dont le ministère se fait acquéreurs (Un christie de logiciel pourri, comprends pas pourquoi quand t'as un module qui est pourri, tu va en acheter un deuxième... Enfin bref.) ou tout simplement au niveau des modules que nous développons nous-même, la sécurité cause des difficultés!

En soit, ce n'est pas la sécurité qui cause tant de difficulté, mais plutôt la betise humaine qui nous entoure. Ça fait 7 ans que je travaille pour mon employeur et nous n'avions au paravent de sécurité que le nom! Maintenant, ils faudraient que tout soit sécurisé sans rien modifier dans leurs façons de faire. Eh! Oh! On peut pas avoir le beurre et l'argent du beurre...

Bon, maintenant que ma crise est un peu passé, je retourne à mes tentatives de déploiement de mon composant EJB. Je vous en redonne des news bientôt.

En attendant, surveillez bien vos voisins, votre employeur, les employés de magasins que vous croisez, l'agent de police, le médecin, le fonctionnaire... Car depuis environ un an maintenant, la paranoïa gouvernemental sur la sécurité est bien enraciné...

Qui suis-je ?

Je suis un "accro" de Java: que vous parliez de programmation, ou de café! Je suis architecte organique pour une compagnie de consultation à Québec.

PLAYSTATION®Network

Utiliser vous Twitter?

Twitter Updates