AlcionTech

Aller au contenu | Aller au menu | Aller à la recherche

Tag - Outils de développement

Fil des billets - Fil des commentaires

mardi 31 août 2010

Utiliser Git en local

Les gestionnaires de configuration distribués ont vraiment la côte en ce moment, et en particulier Git.

Pour l'avoir testé, il faut bien admettre que ces outils simplifient énormément le processus de développement, en permettant de découpler très facilement les différentes tâches sur lesquelles on travaille dans autant de branches de développement.

Sur SVN, la gestion des branches n'est pas aisée. Donc dans la pratique, quand on travaille sur plusieurs évolutions (sous Eclipse) :

  • Soit on duplique le projet dans son espace de travail (avec un projet par évolution) : c' est certainement encore la manière la plus propre de faire, bien qu'un peu lourde à mettre en oeuvre.
  • Soit on travaille dans un unique projet : on n'a alors pas de moyen évident de distinguer quelle modification de code correspond à quelle évolution.

Cas d'application concret : en local, un développeur travaille sur deux fonctionnalités dans son projet, dont une est terminée et doit être commitée pour être embarquée dans la livraison du jour. Il faut alors retrouver quels sont les fichiers correspondants, pour faire un commit partiel du projet.

Autant dire que les risques de faire une erreur (oubli de fichier ou commit d'un fichier de l'autre évolution) sont loin d'être négligeables... et conduisent donc souvent à devoir faire un deuxième (quand ce n'est pas un troisième) commit correctif.

Ce scénario peut paraître un peu catastrophique, mais il peut pourtant arriver (et peut-être plus souvent qu'on ne le croit).

Quelques avantages de Git :

  • il permet de résoudre le problème mentionné ci-dessus : la gestion locale des branches permet d'en créer et d'en changer très rapidement, sans avoir à dupliquer le projet (entre autres fonctionnalités).
  • il est beaucoup plus souple que SVN dans ses possibilités de revenir en arrière en cas d'erreur : il permet par exemple "d'amender" un commit déjà effectué.
  • une fois que plusieurs fonctionnalités sont terminées, les possibilités de fusion (merge) des branches sont beaucoup plus puissantes que celle de Git, avec plusieurs stratégies de résolution des conflits (fast forward, etc.)

Tout ceci est très bien sur le papier, mais passons maintenant à l'application en entreprise, où la gestion de configuration des projets est gérée de manière centralisée par SVN (à Alcion Group, par exemple). Même si on est convaincu par les avantages des DVCS, l'impact sur le SI est tel que ça peut difficilement être mis en place.

Mais là encore, Git peut nous sauver. Il peut en effet être utilisé en local sur les postes de développement, et s'interfacer avec le serveur SVN de l'entreprise. Les développeurs bénéficient ainsi de ses avantages, pour un faible impact sur l'infrastructure.

Nicolas de loof explique très bien les principes d'utilisation de Git avec SVN. Afin d'adapter ces principes à nos environnements de développement, j'ai rédigé un tutoriel d'application pratique pour Eclipse.

Pour commencer et découvrir Git, je vouc recommande :

Et, pour aller plus loin, quelques lectures studieuses... et un peu plus volumineuses :

vendredi 19 mars 2010

Openbar Alciontech sur la "Java Software Factory" le jeudi 25 mars 2010

Lors de cet conférence technique sera présentée la plateforme de développement Java utilisée en interne sur les projets au forfait.

Cette plate-forme est composée d'un ensemble cohérent d'outils Open Source, fonctionnant ensemble pour couvrir l'ensemble des besoins du cycle de vie d'un projet :

  • SVN (gestion de configuration)
  • Eclipse (environnement de développement)
  • Maven2 (gestionnaire de build)
  • Nexus (repository Maven)
  • Hudson (serveur d'intégration continue)
  • Sonar (serveur de reporting sur la qualité des développements)
  • Mantis (traçabilité du suivi des anomalies et des demandes d'évolution)


Très tôt préoccupés de la qualité des applications orientées objet, les experts d’Alcion Group ont mis en œuvre dès 1998 la toute nouvelle modélisation UML ainsi que les Patterns d'analyse et de conception. Ils sont aujourd'hui persuadés de l'intérêt de fusionner les Méthodes Agiles et la modélisation avancée. Impliqués dans les problématiques de productivité des développements, ils se font les promoteurs de techniques avancées de génie logiciel, génération de code, automatisation de la persistance. Passionnés de technologies, convaincus qu'un processus de développement logiciel moderne est nécessairement outillé, les consultants d’Alcion Group conseillent et assistent leurs clients dans la mise en œuvre de leur "Usine Logicielle Agile".

lundi 30 mars 2009

Alcion Group développe des composants pour Talend Open Studio

Il y a maintenant un peu plus de trois mois, des ingénieurs d'Alcion Group ont suivi une formation "Talend Foundation" sur l'ETL Open Source Talend Open Studio. Ils proposeront bientôt dans le cadre d'un Alcion Bar une conférence interne pour présenter ce produit intéressant.

Mais en attendant cette soirée, ils ont mis cette formation à profit en développant de nouveaux composants pour cet ETL, afin de mieux gérer les bases de données Informix (qui sont utilisées sur un des projets au forfait actuellement développés).

Alcion Group ayant décidé de jouer le jeu de l'Open Source, ces composants ont été cédés à la communauté :

  • tInformixConnection, permettant d'initialiser une connexion à une base de données Informix ;
  • tInformixCommit, permettant de faire un "commit" des opérations effectuées sur une connexion ;
  • tInformixRollback, permettant de faire un "rollback" des opérations effectuées sur une connexion ;
  • tInformixInput, évolution du composant original permettant de récupérer des données à partir d'une connexion existante ;
  • tInformixOutput, évolution du composant original permettant d'insérer des données dans une table en utilisant une connexion existante ;
  • tInformixRow, évolution du composant original permettant d'exécuter une requête SQL quelconque en utilisant une connexion existante ;
  • tInformixSP, qui permet d'exécuter des procédures stockées et fonctions d'une base de données Informix ;

jeudi 19 février 2009

Paradigme MDA : sortie de Lyria Leonardi 4.2

Je me permet de copier ici (avec quelques modifications) le contenu d'un post de mon blog personnel... qui lui-même reprenait un billet du blog java de developpez.com signalant la sortie de la nouvelle version de l'outil Leonardi.

Les principales nouveautés de ce produit étant décrites dans le billet que je site, je ne les recopierai pas. En revanche, je ferai une (très) rapide présentation de l'outil (un résumé des informations que l'on peut trouver sur le site de Lyria), ainsi que du paradigme MDA auquel il se rattache.

Lire la suite...

mercredi 16 juillet 2008

Revue de presse estivale du monde java

En juin et en juillet, de nombreux projets liés à java ont bien évolué. Voilà un petit résumé de ces évolutions (outre la sortie de la nouvelle version d'Eclipse Ganymède à laquelle un billet complet a été dédié):

Par ailleurs, Sun a publié un compte-rendu des différentes présentations techniques qui y ont été faites lors de JavaOne session 2008.

jeudi 26 juin 2008

Sortie de Eclipse Ganymede

Il y a un mois, nous avions annoncé la sortie de la première release candidate de la nouvelle version d'Eclipse, et les nouveautés qu'elle apportait.

Hier, c'est la version finale de cette nouvelle version (Eclipse 3.4 "Ganymede") qui est parue. Et avec elle, un certain nombre de fonctionnalités supplémentaires par rapport à la release candidate et à la version précédente.

Lire la suite...

lundi 23 juin 2008

Vérifier automatiquement la qualité d'un code java

Il existe de nombreuses règles de "bonnes pratiques" en programmation objet, dont certaines sont spécifiques au langage java. Il existe des formations et des ouvrages entiers consacrés à ce sujet: je n'ai donc absolument pas la prétention d'en faire la liste ici. En revanche, j'aimerais attirer l'attention sur le fait qu'il existe maintenant des outils faciles à mettre en oeuvre, et permettant de vérifier automatiquement un certain nombre de ces règles de "bonnes pratiques". Ils permettent d'améliorer significativement la qualité du code, pour un faible coup (à condition qu'ils soient déployés le plus tôt possible dans le processus de développement).

Lire la suite...

mercredi 28 mai 2008

Eclipse Ganymede est passé en RC1

La nouvelle version de Eclipse (Ganymede) vient de passer la cap de la "Release Candidate". Il est encore un peu tôt pour l'utiliser en environnement professionnel, mais cette version se montre déjà prometteuse.

Du point de vue de l'interface, il y aura moins d'évolution majeures que n'en a connu la version "Europa" actuelle, mais on peut tout de même relever quelques points que les développeurs apprécieront:

  • le "quickfix" proposant de corriger automatiquement les erreurs de code apparaît maintenant au survol des erreurs: il n'est plus nécessaire d'aller jusque dans la barre latérale de l'éditeur
  • une navigation en "fil d'Ariane" permet de revenir bien plus facilement à la classe sur laquelle on travaillait lorsqu'on se déplace en suivant des objets ou des méthodes
  • la gestion des plugins installés et disponibles, qui a été complètement revue et qui est maintenant beaucoup plus intuitive
  • le temps de chargement de l'espace de travail, qui a été nettement réduit (divisé par 2 à 3)

Mais la grosse nouveauté de cette version réside à mon avis dans les deux nouvelles distributions disponibles, qui vont certainement être très prisées:

  • une distribution "Java J2EE" spécialisée dans les applications de reporting, incluant des outils de développement pour BIRT
  • une distribution "Architectes", incluant des outils de modélisation (UML, etc.)

Enfin, j'ai pu remarquer que la vitesse de compilation des gros projets a été augmentée par une meilleure gestion des processeurs à plusieurs cœurs.

Pour télécharger une de ces distributions de Ganymede, c'est par ici: http://www.eclipse.org/downloads/packages/

jeudi 14 février 2008

OpenBar le 21 février : Webservices B2B : étude de cas et panorama technologique

mike Jeudi 21 février à 18h30 au siège

5 ans après leur arrivée sur le terrain, les webservices sont devenu un mode privilégié de communication entre applications, notamment de part et d'autre d'une frontière organisationnelle, par exemple entre partenaires (clients, fournisseurs). Ils offrent un couplage moins fort que d'autres protocoles, et sont disponibles sur une grande variété de plate-formes.

Après un rappel, l'étude de cas que nous présentera Aziz sera l'occasion de resituer les différents concepts (XML, HTTP, SOAP, UDDI, WSDL, WS-Security...), puis de passer aux choses sérieuses en implémentant un cas d'école sur Weblogic 8 et 9 et sur Apache CXF.

lundi 28 janvier 2008

Perl, pour quoi faire ?

Choisir le bon outil pour le bon usage... Facile à dire !
Un petit article qui résume ce que l'on peut faire avec Perl :

  • pattern-matching : en ligne de commande, recherche dans des fichiers
  • in-place editing : en ligne de commande, rechercher/remplacer dans des fichiers
  • shell scripts : en Perl, on peut faire plus lisible (hum ?), plus puissant,
  • manipulation rapide de base de données : rapport...
  • tout ça en cross-platform.

et ce qu'il vaut mieux éviter :

  • des applications temps-réel ou haute performance,
  • des scripts shell que l'on pourrait écrire en shell, et/ou ayant besoin de performance
  • du développement web,
  • d'utiliser toute la puissance de la syntaxe Perl, qui peut vite rendre le code illisible.

D'autres articles dans la même série : Javascript, pour quoi faire, et PHP, pour quoi faire ?

lundi 19 novembre 2007

OpenBar Alciontech le 29 novembre : le client riche en Java, c'est facile avec GWT et JavaFX

ajax.jpgCe mois-ci, une conférence pleine de bonnes nouvelles : on peut développer des écrans portables et sexy en Java, sans avoir besoin de connaître Javascript !

En introduction, un coup de projecteur sur JavaFX, sur le thème de "comment faire du flash, en java".

En plat principal, GWT, un framework qui a le potentiel de changer la donne. Il permet de réaliser des applications Ajax portables, en Java. Ses caractéristiques principales sont :

  • il est open-source ;
  • il n'impose pas d'apprendre javascript pour faire de l'ajax,
  • il absorbe les nuances de navigateurs,
  • il gère automatiquement des concepts de haut niveau comme la sérialisation, les appels RPC, et la traduction de code java->javascript pour exécution des traitements locaux au navigateur, ce qui est une petite prouesse.

Après 6 mois sur le terrain, il commence à être adopté par certains de nos clients.

Thierry a travaillé quelques semaines sur GWT. Il vous en expliquera les concepts, les principes de développement et vous fera une démo couvrant le design d'écrans, le remoting et l'exécution de code au sein du navigateur.


Que vient faire ici ce barbu frisé ? C'est Ajax le Grand, héros de la guerre de Troie... ;-)

lundi 12 novembre 2007

Brèves développement Java/J2EE

i-can-lift-40-pounds.jpgAujourd'hui je peux :

jeudi 4 octobre 2007

Java : outils

Ce matin, Florent m'a confié trois secrets d'un air de conspirateur :

  • Non, OSCache (d'Open Symphony) n'est pas un cache transactionnel distribué ; par contre, TerraCotta est extraordinairement prometteur ;
  • JXInsight est l'outil d'analyse de code java en fonctionnement (threads, mémoire, temps d'exécution) qui surpasse tous les autres en ce qu'il permet de débusquer rapidement les anomalies de fonctionnement ;
  • SonarJ,, outil de rétro-ingénierie du code et de l'architecture d'une application, par exemple dans un contexte d'audit.

Merci Florent !

lundi 17 septembre 2007

N°100 du magazine Programmez

Le magazine mensuel des développeurs Programmez fête sa 100ème édition avec le n° de ce mois (actuellement en kiosque). Souhaitons donc un bon anniversaire à ce magazine de qualité.
Parmi les sujets traités, un très intéressant dossier sur l'avenir du métier de développeur.

PS: Si vous passez au siège, je peux vous le prêter...

vendredi 17 août 2007

Une plate-forme d'intégration continue J2EE sous Win32

Pour célébrer la rentrée et vous aidez à mettre en pratique les bons principes du génie logiciel, la DT met à votre disposition une Plate-Forme d'Intégration Continue pour J2EE sous Windows. Elle est immédiatement opérationnelle, et de plus, portable, dans le sens où elle peut être mise sur une clef USB. PFIC.png Cette PFIC est exclusivement construite par l'intégration d'outils opensource: Eclipse pour l'IDE, Subversion pour le SCM, Maven pour le BUILD, Continuum comme CIM et Tomcat comme Serveur Web. De plus Une distribution Xampp (Apache-PHP-MySQL) est également fournie.
Toutes les infos sont disponibles dans le doc ci-joint.
Le Package est disponible sur le serveur de domaine (Telechargement/Serveur/PFIC).
Eh oui on est comme ça à la DT d'Alcion: généreux avec vous ;)

PS: prévoir au minimum 500Mo d'espace disque.

lundi 6 août 2007

Intégrer en continu...

UPDATE: Précisons que l'intégration continue peut très bien se coupler à n'importe quelle méthodologie de développement logiciel: cycle en V, Unified process, Scrum, Extreme Programming, ....


Un sujet actuel: l'intégration continue (continuous integration) est une stratégie de génie logiciel visant à répérer le plus rapidement possible les éventuelles régressions d'une application par passage de jeux de tests dès la mise en version du code.
On trouve une très bonne introduction sur le site de Martin Fowler, père du terme.
Alcion Group possède une plate-forme d'intégration continue pour .NET autour de Nant et CruiseControl dans le cadre du projet MGV et des études sont faites pour un avoir une pour J2EE (Maven, Continuum, ...).

Si vous même avait une expérience du sujet, n'hésitez pas à en faire part dans les commentaires.

jeudi 19 juillet 2007

Générateur de nombres aléatoires

Comme beaucoup le savent, la génération de nombres aléatoires n'a jamais été vraiment aléatoire en informatique.
En C++ par exemple, on utilise généralement les fonctions srand() et rand() fournies par la librairie standard.

Tout cela pourrait bien changer prochainement avec l'apparition d'un nouveau service online gratuit appelé Quantum Random Bit Generator qui permet d'obtenir de véritables nombres aléatoires en s'appuyant sur le phénomène physique quantique d'émission de photons dans les semiconducteurs.

A découvrir absolument...

jeudi 12 juillet 2007

Sortie d'Eclipse 3 "Europa", nouveaux plug-ins

http://www.eclipse.org/europa/ Quoi de neuf dans l'IDE utilisé par 60% des développeurs ?

  • Meilleur support pour C/C++ et pour les langages dynamiques (Ruby, Python) ;
  • Ouverture à des fonctionnalités colaboratives multimedia (intégration voix, chat...)
  • Fonctionne sous Vista.

Mais surtout, une mise à jour massive de 21 plug-ins pour toujours plus de productivité, en CSS, en JSF par exemple, sortis ensemble, packagés, testés, validés compatibles ! Ci dessous la liste de ces plug-ins par Benoit Courtine.

Lire la suite...

Ruby on Rails : slides, démo et liens

rails-small.pngMerci à Aurélien Drouet pour son intervention convaincante :

Lire la suite...

mardi 10 juillet 2007

Microsoft rendra-t-il .NET portable "Everywhere" ?

300px-DotNet3.0.png.NET ne se déploie bien que sur Windows. Ceci n'est pas une insulte aux développeurs de Mono qui essayent de développer les moyens de faire tourner .NET sous linux, c'est un constat issu du terrain. Au moins pour la partie serveur.
Pour ce qui est de l'environnement client (celle qui permet d'exécuter une IHM, à l'instar d'une JVM sur poste utilisateur permettant d'exécuter une application swt ou Swing), il y a un intérêt évident à rendre la technologie présente sur tous les systèmes d'exploitation. Ce mouvement ne se fait pas sans ratés :

vendredi 29 juin 2007

OpenBar AlcionTech le 11 juillet : Développement rapide avec RubyOnRails

rails-podcast.pngPour ce dernier rendez-vous avant l'été, nous mettons un coup de projecteur sur une nouvelle technologie dont beaucoup ont entendu parler mais que peu ont eu l'occasion d'utiliser.

Ruby On Rails est une plate-forme open-source dont la promesse est de permettre le développement rapide d'applications relativement simples, en interface web, sur une base de données.

Basée sur un langage de script objet apparu dans les années 90 - Ruby - RoR permet, grâce à la simplicité de sa configuration, le recours à de nombreux implicites, d'éviter les répétitions et de simplifier les développements. Les zélotes parlent développement 10 fois plus rapides (qu'en J2EE ou .NET), et de "framework hautement productif".

Aurélien Drouet, qui a pu développer plusieurs applications pour un leader de la distribution, nous fera bénéficier de son retour d'expérience par une présentation générale accompagnée d'une démo, et nous aidera à y voir clair dans l'énorme éco-système Ruby On Rails en cours de développement. Enfin, il nous dira pour quelles applications utiliser Ruby On Rails... et celles pour lesquels c'est inadapté.

Le 11 juillet à 18h30 au siège.

vendredi 1 juin 2007

Conférence technique animée par Jaxio

Le commencement de tout projet, nouvelles technologies ou autre, nécessite la mise en place d'un socle technique sur lequel va reposer l'ensemble de la logique métier de l'application future. L'expérience montre que bon nombre de développeurs, ont recours à une sorte de boite à outils qu'ils ont dû mettre en en place petit à petit au fil des projets et qui se compose de frameworks, classes utilitaires, bonnes pratiques etc.

Jaxio propsoe une solution élégante basée sur un générateur d'application reposant sur le modèle de la base de données pour générer le squelette de l'application. En quelques minutes, le temps du lancement du générateur, une application packagée est prête à être déployée sur, en théorie, n'importe quel serveur J2EE.

L'application résultatnte est plus qu'un socle technique: elle propose la majeur partie des widgets qu'on trouve dans une IHM classique: tri, pagination, changement de look and feel en quelques clicks

Lire la suite...

mardi 27 mars 2007

OpenBar AlcionTech : meta-frameworks, Jaxio, le 26 avril

>> Jeudi 26 avril 2007 à 18h30 au siège

Qu'est-ce qu'un méta-framework ?

Les frameworks sont à présent un état de fait ; plus un projet ne démarre sans l'adoption de briques techniques telles que Struts, Spring, Log4J, Hibernate..., qui enrichissent, chacune dans sa spécialité, le paradigme J2EE. keel.gif Un méta-framework est une "suite" de frameworks techniques assemblés afin de couvrir l'ensemble des besoins de réalisation d'une application. Par exemple, certains réfléchissent, au sein d'AlcionGroup, à la possibilité de pré-assembler un socle applicatif basé sur Spring et Hibernate, prêt à partir sur nos projets. Différentes initiatives vont dans le même sens (JAD, Keel, Roma, Jaxio, MD4J, Seam, RIFE, AppFuse, Tapestry...) dans le double objectif d'améliorer la productivité du développement, et de réduire les dépendances entre composants afin de faciliter l'évolution du logiciel produit (rester agile !). Il y aura, à moyen terme, une norme defacto, sorte de "pile standard", incluant - ou non - les outils de développement rapide que l'intégration verticale suggère.

Quelques ressources : http://www.theserverside.com/tt/articles/article.tss?l=Keel http://romaframework.xwiki.com/xwiki/bin/view/Main/

La présentation du soir : Développement rapide d'applications J2EE avec Spring, Hibernate, et Jaxio

Jaxio est un outil de génération rapide d'applications J2EE à partir d'un modèle métier, développé par une jeune société française. Sur le constat d'une lassitude du développeur à réaliser certaines tâches répétitives liées aux patterns mis en oeuvre, Jaxio a automatisé la production de code pour les parties persistance, métier, et présentation, dans un cadre technologique tout à fait au niveau de l'état de l'art, et de plus totalement personnalisable. Les applications sont nombreuses : maquettage, RAD, développement itératif... Cette présentation sera assurée par Florent Ramière et Nicolas Romanetti, fondateurs de Jaxio. Et, pour tout vous dire... le retour des Alcionniens les intéresse.

mercredi 7 mars 2007

Oracle libère TopLink!

Oracle a annoncé hier lors de la conférence EclipseCon que Toplink sera cédé à l’Open Source sous l’égide du Projet Eclipse.
Tout sauf des spécificités liées à Oracle AS est concerné (même les fonctionnalités encore en cours de developpement)

Lire la suite...

mardi 16 janvier 2007

Les labs à suivre

fiole Une petite compilation des labs à suivre lors d'une veille technologique. N'hésitez pas à compléter la liste :)

Usenet ou le retour de l'ancêtre

UsenetUsenet, c'est l'ancêtre des forums web et c'est pas inutile de connaitre parce que cela regorge de groupes (et de fils de discussion) susceptibles d'intéresser les ingénieurs informaticiens que nous sommes. Avant c'était un peu technique pour entrer dans l'arène mais grâce à google (et oui encore lui!), plus d'excuse: tout se fait via le navigateur. Toute petite sélection de groupes à noter:


Pour info, Usenet est souvent la matière première des chercheurs en social cyberspaces (voir le projet Microsoft).

mercredi 10 janvier 2007

Et vous, quel IDE Java utilisez-vous?

java logoUn fil du forum de developpez.com à suivre (et pourquoi pas enrichir?) pour les javaphiles. Sans trop de surprise, Eclipse écrase nettement la concurrence (61%)suivi par NetBeans (24%). Les autres IDE n'ont plus que des miettes.

Sur un autre fil du même forum, un sondage sur les serveurs d'application. Là JBoss mène la course (36%) mais la concurrence est rude derrière. Attention, le sondage date de février 06 et dans l'écosystème java tout va vite.

vendredi 22 décembre 2006

Dans le radar : la réponse de Java à RubyOnRails ?

RomaFramework est une initiative à évaluer. Qui a des retours ?
http://www.romaframework.org/

Roma Meta Framework is a Open Source initiative to make Java application development easy. The approach is totally DDD, let's think to the domain of your application and Roma will makes the rest: persistence (database), presentation (HTML + Ajax), logging, user management, sessions, etc.

The Roma project is composed of two parts:

* Wizards to generate code automatically * Runtime libraries that works as a glue code to integrate you application with the best Java technologies and products (Spring, JDO 2.0, Echo2, Log4J, etc.)

StrutsTestCase

Louis Lefevre a rédigé pour nous un petit how-to pour vous permettre de connecter JUnit et Struts, sur le thème : "Comment tester votre application Struts sans passer des journées à répéter les mêmes clics dans vos pages web ?".

Expliquons-nous :

  • L'utilisation de framework de tests unitaires est essentielle à la constitution d'un code robuste. Il aide, d'une part à placer votre code en situation difficile, d'autre part, il en améliore la lisibilité ! Et surtout il fait gagner du temps.
  • Concernant une application basée sur une I.H.M (une application Web par exemple), les tests fonctionnels impliquent de se mettre à la place de l’utilisateur et de cliquer, de saisir des données dans un formulaire, puis de re-cliquer,… pour tester une fonctionnalité, pour une séquence de choix, dans un contexte, et … pour une version du code !!! Autant dire que le respect rigoureux de la phase de tests pourrait faire exploser les plannings les plus laxistes !

La note se télécharge ci-dessous sur le lien "une annexe".

jeudi 14 décembre 2006

Coder, même un bébé peut le faire !

lego.jpgAh bon, vous ne saviez pas ? Depuis l'avènement des technologies objet, des approches composants, du développement des outils de génie logiciel, coder est devenu aussi facile que d'assembler des Duplo... Enfin, c'est ce que l'on dit...

mercredi 6 décembre 2006

A la recherche du portail ultime

expeditor.jpgLe portail ultime ? Capable de fournir à chaque employé les applications dont il a besoin, sur son bureau. En prenant en compte la gestion des droits, et un déploiement totalement managé, particulièrement adapté aux grandes flottes.

C'est en tout cas l'a vision d'IBM qui vient de lancer, via sa filiale Lotus, le framework "Expeditor" pour assembler tout type d'IHM, a priori dans un contexte Windows, et reposant sur Eclipse et Websphere.

La concurrence ? Est clairement visé Microsoft, dont la nouvelle technologie Avalon/XAML, devenant dans l'ère Vista la couche de présentation de .NET, pourrait prétendre à l'ubiquité, sinon à l'universalité.

Une fonction originale de ce remplaçant de Websphere Everyplace : la capacité d'assembler des portlets (JSR169) qui tournent directement sur le poste client et fonctionnent donc en déconnecté... à condition de disposer de 512Mo de RAM. Et bien sûr, ça tourne également sur Linux.

jeudi 30 novembre 2006

Comment codez-vous vos IHM ?

wysiwyg.jpg_180_254_80.jpgVu sur slashdot :

There is a good debate about GUI generation tools for Java going on at theserverside.com: 'Almost every platform has a visual designer that serializes the GUI to resources (some XML, some proprietary binaries) and then attaches it to the controller at runtime. Apple has had this for years with Interface Builder, Vista has a similar philosophy now as well. Java developers though are left with either hand coding of GUIs or potentially messy and brittle code generators. Neither of which promote good MVC separation. In fact they tend to encourage violations unless you are a very disciplined coder.' Personally, I am partial to BuoyBuilder as a great solution to this issue.

Et vous, comment codez-vous vos IHM ?
La discussion continue ci-dessous ("commentaires").

jeudi 23 novembre 2006

Java et le temps réel

Java est enfin devenu compatible avec les applications temps réel. Le principe du garbage collector empêchait en effet une exécution prédictible, capable de garantir des temps de réponse sous un délai imparti. Aujourd'hui, l'implémentation de référence permet de gérer des lantences quantifiées de l'ordre de 20 microsecondes.
http://java.sun.com/javase/technologies/realtime.jsp

Première étape : la concrétisation de la JSR001, the "Real Time Specification for Java", qui définit des modifications profondes : une API et des ajouts à la JVM. En résumé :

  • Deux nouveaux types de threads, dont un ne pouvant pas être interrompu par le garbage collector, et assurant un respect absolu des priorités (ce que l'implémentation standard ne garantissait pas) sur 28 niveaux
  • Deux nouveaux espaces mémoire, ne faisant pas l'objet de garbage collection : l"immortal memory", jamais désallouée (prudence !), et la scoped memory (détruite à la sortie du scope). Des fonctions de l'API permettent l'allocation dans ces espaces.
  • Deux mécanismes spécifiques aux applications temps réel : la prise en compte d'événements asynchrones ("happenings") et d'un chronométrage à la nanoseconde,
  • L'accès direct à la mémoire physique permettant de coder des drivers en java plutôt qu'en C/C++ appelé par JNI. Ici aussi, prudence !


Deuxième étape : la disponibilité de machines virtuelles implémentant cette nouvelle norme. C'est chose faite, nous en avons au moins deux :

  • L'implémentation Sun (Java Real Time System ou JavaRTS), sous forme d'add-on au JDK 1.4.1, fonctionnant uniquement sur Solaris/Sparc pour l'instant (la promesse d'autres plates-formes a été faite, avec la limitation que JavaRTS repose entièrement sur les qualités temps-réel de l'OS sous-jacent, Solaris en l'occurrence)
  • L'implémentation de TimeSys, qui est lead sur la maintenance de la spécification et auteur de l'implémentation de référence : http://www.timesys.com/java/


Le modèle retenu permet de créer des systèmes complexes nécessitant de la logique temps-réel (réponse en temps imparti) combinée avec de larges portions de code n'ayant pas les mêmes exigences, codées en java "standard". A noter également des implémentations de corba tirant parti de ces nouvelles propriétés.

mardi 21 novembre 2006

Gestion de la memoire en Java avec NetBeans 5.x

l'article est accessible sur l'URL http://schmitt.developpez.com/tutoriel/java/memoire/

vendredi 10 novembre 2006

Rencontre avec Logiconsult

Logiconsult est une petite société de conseil spécialisée dans le décisionnel depuis 1989.
Datawarehouse.gifLe décisionnel, qu'est-ce exactement ? C'est l'art d'agréger les données du ou des systèmes d'information de l'entreprise, afin de fournir des outils de pilotage (pouvoir corréler par exemple les ventes dans une région avec les délais de fabrication dans telle usine et élaborer un plan d'action correctif). Les mots clés sont : datawarehouse (centralisation et historisation des données des différents SI), analyse muti-dimensionnelle (axes et indicateurs), et l'ordre SQL "group by"...
Alciongroup dispose de compétences dans ce domaine, qui concerne des projets assez différents des projets de développement et d'intégration. Aujourd'hui, nous voulons développer cet axe afin de compléter notre offre. Logiconsult nous a présenté deux axes de développement :

  • un logiciel d'aide à la conception de système décisionnel, permettant de tracer les champs tout au long du parcours des données et leur transformation ; réalisé en technologies Ajax, il est modifiable pour s'adapterà la logique du projet si nécessaire et sert, si on le souhaite, de base pour générer des schémas ou des scripts.
  • des briques logicielles Java/Ajax pour l'implémentation de tableaux de bord ; en particulier une interessante fonction de tableau croisé dynamique réalise tous les calculs sur le poste client, au cours de la navigation de l'utilisateur dans les données, après une unique requête sur la base de données qui se voit considérablement déchargée.

L'élaboration du partenariat est en cours.

A rapprocher d'un fil de discussion sur la possible relocalisation des données (et donc des traitements) dans les systèmes distribués à la faveur des évolutions des prix du stockage et de la bande passante sur une longue période, à partir de l'exemple du nouveau datacenter de Google à Portland, Oregon :

When we look at our current situation, we see that we have data 'here' and data 'there'. When we want to have more data, we need to go 'there' to bring the data 'here' for viewing. In the most extreme (and common) case, the data is only temporarily copied from 'there' to 'here' and once we are done with the data it is deleted from 'here'.

jeudi 12 octobre 2006

Slides des présentations à l'open bar : Spring et Scrum

Scrum par Stéphane Boisson

Spring par Thierry Roussel

mercredi 21 juin 2006

Développer en AJAX avec Google

AJAX (Asynchronous javascript and XML) désigne un ensemble de technologies permettant la réalisation d'interfaces utilisateurs utilisables dans un simple navigateur, mais au rendu bien plus dynamique que le HTML. De plus en plus utilisé sur le web grand public (maps.google.com...), AJAX s'étend aujourd'hui aux applications intra/extranet, en mal d'ergonomie. Dès 2002/2003, Alcion a mené un grand forfait pour la réalisation d'une plate-forme de téléconférence couplée téléphone/web, qui reposait sur les principes AJAX.
desktopclone.jpg Depuis quelques semaines, le développement AJAX est entré dans l'age adulte grâce à la décision de Google de distribuer gratuitement le framework utilisé en interne le Google Web Toolkit (GWT). Une des qualités majeures de cette solution est qu'elle est J2EE et épargne l'essentiel du développement HTML/Javascript au réalisateur de l'application. Cela tombe bien, c'était le plus délicat et sujet aux bugs et aux incompatibilités entre navigateurs.
L'assemblage des widgets graphiques est déclaratif et n'est pas sans rappeler Swing, jusqu'aux mécanismes de listeners pour la gestion événementielle :

public class Hello implements EntryPoint {
  public void onModuleLoad() {
    Button b = new Button("Click me", new ClickListener() {
      public void onClick(Widget sender) {
        Window.alert("Hello, AJAX");
      }
    });
    RootPanel.get().add(b);
  }
}


http://code.google.com/webtoolkit/