jeudi 20 mai 2010

Ajax et les webservices

On pourrait croire à un conte mythologique mais pas du tout.

Si vous aimez les webservices et si vous êtes enthousiaste à propos d'Ajax, apprenez à travers cet exemple comment coupler les deux pour créer des applications riches orienté services :)

mercredi 28 avril 2010

Performances comparées Axis2, Metro, CXF

Si vous hésitez entre Axis2, Metro et CXF pour choisir une API d'utilisation de webservices, les performances de chacune des 3 peut être un argument supplémentaire.

mercredi 17 mars 2010

PMD - vérifier si une variable est null

Au cours d'un projet, j'ai eu pour tâche de vérifier le code avec PMD afin de l'améliorer et ainsi de diminuer les bugs (grossiers pour la plupart).

Et là je me suis rendu compte qu'il n'existait aucune règle PMD qui permettait de vérifier si avant d'appeler une méthode d'un objet, un test de nullité de cet objet avait été fait.

En gros est-ce que j'avais des blocs de code comme ca :

Objet obj=getObjectFromAnotherMethod();//potentially null !
obj.doSomething();

Alors qu'il faudrait mieux avoir :

Objet obj=getObjectFromAnotherMethod();//potentially null !
if(obj!=null)
obj.doSomething();

J'ai donc remonté mes manches et suis assez fier de vous présenter la règle PMD XPath qui permet de vérifier cette bonne pratique !


//MethodDeclaration/Block/BlockStatement/Statement//StatementExpression/PrimaryExpression
/PrimaryPrefix/Name
[substring-before(@Image,".")=
./ancestor::Block/BlockStatement/LocalVariableDeclaration//VariableDeclaratorId
[not (../VariableInitializer/Expression/PrimaryExpression/PrimaryPrefix/Literal)
and not(../..//PrimitiveType)
and not (../VariableInitializer/Expression/PrimaryExpression/PrimaryPrefix/AllocationExpression)]
/@Image

and

not( substring-before(@Image,".")=
./ancestor::BlockStatement/Statement/IfStatement/Expression//EqualityExpression
[../../..//NullLiteral]
/PrimaryExpression/PrimaryPrefix/Name/@Image )

]

N'hésitez pas à me faire des commentaires si la règle n'est pas satisfaisante, si vous avez des cas où elle marche pas !

vendredi 12 mars 2010

XPath et JQuery

XPath et JQuery sont 2 "expression language" permettant de manipuler du XML pour par exemple retrouver des éléments selon leur type, leur attribut, etc....

Mais comment choisir entre XPath et JQuery? Cet article peut vous aider.

Plus spécifiquement que JQuery, cet article vous explique comme l'utiliser depuis le navigateur web.

Pour Xpath, voici un explication de l'API et 3 tutoriels d'introduction pour apprendre à la manipuler :

jeudi 11 mars 2010

Les frameworks PHP qui valent le coup

Voici dans cet article une liste de frameworks PHP qui permette de faire du code beau, intelligent (à voir la compatibilité avec l'interface chaise <-> clavier) en un minimum de temps.

C'est beau la technologie.

mercredi 24 février 2010

De Excel au XML, en Java

Voici un exemple d'utilisation de l'API Apache POI pour lire des documents Excel (et autres) depuis du code Java.

Ensuite, l'auteure aborde la transformation Excel <-> XML : utile pour stocker des données et re-générer à la volée des nouveaux fichiers Excel.

mardi 16 février 2010

Introduction à Google SideBricks

Et si créer des applications web dynamiques (j'ai pas dit des applications web RIA hein mais bien dynamique c'est à dire qui se servent de données stockées en base par exemple) devenait simple ?

Google Sidebricks apporte une réponse :
  • expression language simple
  • annotations permettant la mise en place de paramètre dynamique
  • Modèle MVC et principalement les parties View et Controller
A surveiller car pour l'instant toujours en béta.

lundi 11 janvier 2010

Accessibilité et web 2.0

Bonne année à tous !

Et pour comment cette nouvelle année, voici de quoi redonner espoir à ceux qui considère que le web 2.0 n'apporte aucune évolution valable en terme d'accessibilité des applications. Souhaitons que le projet WAI-ARIA et la librairie WCAG 2.0 deviennent des standards !

lundi 9 novembre 2009

Le bon, le mauvais et le franchement pénible

SOA est sur beaucoup de lèvres à l'heure actuelle. Ce concept apparaît comme la solution à la course aux produits innovants, à la sécurité des données, à la réduction des coûts, à la flexibilité.

Or toute belle chose a un côté moche. Voici quelque aspect niveau business déclinait en SOA avec :
A méditer !

jeudi 29 octobre 2009

Mise à jour dynamique d'une page web

En complément du précédent article, voici un cas d'école sur la mise à jour d'une page web via des composants dynamiques. Tout ça reposant sur du JSF et de l'Ajax.

A noter un schéma ultra intéressant voir vital qu'il faudrait toujours avoir accroché au mur pour se souvenir de "comment doit fonctionner une application à interface dynamique ?".

Le voici reproduit pour vous mettre l'eau à la bouche :

Introduction à RichFaces

Dans le monde des RIA (Rich Internet Application), il existe l'API RichFaces qui permet de mutualiser la puissance d'une application JEE, la richesse des JSF et la flexibilité du modèle Ajax.

Et tout ça d'une manière assez souple et sympa. Allons-y donc pour une petite introduction !

lundi 28 septembre 2009

mardi 22 septembre 2009

Le "Server Push" ou comment notifier d'un événement

Vous vous demandez comment faire en sorte que votre serveur notifie ces clients riches d'une nouvelle information, sans que ce soit les clients qui interroge régulièrement le serveur ?

Vous avez besoin d'implémenter le "server push" pour maintenir à jour une interface de suivi de commande ?

Cet article est fait pour vous : démonstration pour Flex et OpenLazlo, ainsi que des solutions alternatives (mais consommatrice de ressources réseaux) pour les API Ajax.

jeudi 17 septembre 2009

L'expérience utilisateur

Cet article est très intéressant car il permet de faire la part des choses entre le look, le feel et le model utilisateur qui sont présentés au travers d'une application, web ou desktop.

On se rend compte qu'en termes d'expérience utilisateur, le look and feel ne compte que pour 40%.

De gros efforts doivent donc être mené au niveau du modèle, c'est à dire ce que peuvent faire les utilisateurs plutôt que l'apparence que cela peut avoir.

mercredi 9 septembre 2009

Java NIO et NIO 2

Vous développez en Java et vous voulez manipuler des fichiers, des sockets ou des buffers en mémoire de manière non bloquante et ultra rapide ?

NIO et NIO 2
sont faits pour vous !

Maj du 16/09/09 :

Un autre article détaillant les fonctionnalités de Java NIO et les nouveautés apportées à ce sujet par Java 7 Dolphin

mercredi 15 juillet 2009

Outil de test pour Flex

Le Flex c'est bien.

Mais le Flex testé c'est mieux :)

Voici un outil de test qui permet de capturer et de rejouer des scénarios de tests d'interface Flex.

via : http://www.infoq.com/news/2009/07/flex-monkey-1.0-released

mercredi 8 juillet 2009

Agile dans la vrai vie

"Nous sommes agiles ! Nous travaillons par itérations".

Ok. C'est super.

Mais qu'est-ce que ca veut dire "travailler par itération" ? Quelle est la durée d'une itération ? Comment sont découpés les besoins du client et comment les différentes taches sont-elles priorisées dans chaque itération ? Comment estimer la charge de réalisation d'une tache ?

Tous les éléments de réponses au bout du clic.

mardi 7 juillet 2009

Pertinence des webservices

Est-ce que les webservices sont toujours la bonne solution pour une architecture orientée services (SOA) ?

La réponse est mitigée mais tend vers le non. Du moins, quand des applications hétéroclites de plusieurs sociétés doivent proposer et consommer des services, c'est la solution à retenir. En revanche, pour des applications d'une même société, voire au sein même d'une application, des solutions plus simples comme RMI / Corba, voire même l'échange direct de commandes brutes est plus avantageux et plus rapide.

Tous les détails au bout du clic.

Flex et le CSS

Toutes les subtilités de l'utilisation du CSS dans Flex vous sont enfin dévoilées !

A vos souris! Prêt ! Bookmarkez !