vendredi 25 février 2011

Veille technologique semaine 8

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • Intel annonce la sortie d'une nouvelle technologie de connexion de périphérique très haute vitesse (10Gbits/s) : THUNDERBOLT
  • Oracle propose la première version béta du JDK 7 avec l'outil NetBeans 7. Uniquement pour public avertis, sur le chemin de la sortie du JDK 7 pour mi-2011.
  • Confirmation que JavaFX 2.0 est la prochaine toolkit de Java qui sera intégré au JDK 8, et que la toolkit actuelle de Java, Swing, devrait passer en maintenance.
  • Quelques info sur JavaFX 2.0.
  • Sortie de la version 2.4 de EHCache qui propose un moyen de faire des requêtes sous une forme typé : par des API (en non pas des chaine de caractères).
  • Un résumé des Tech Day 2011 de Microsoft qui se sont passé à Paris.
  • Comment concilier l'agilité et les contrats entre clients et fournisseurs. Une analyse de Valtech.
  • Une définition de wikipédia sur la complexité essentiel et la complexité accidentelle : une traduction française de ces deux termes serait : il ne faut pas confondre complexité et complication. La complexité est lié au problème à résoudre : il faut la maitriser. La complication est apporté par la solution pour résoudre la problème. Il ne faut pas que la complication devienne supérieure au problème à résoudre : c'est un anti-pattern. Je veut passer un booléen entre deux machines, via le réseau, c'est un problème simple, la solution doit rester simple.
  • La sérialisation haute performance en Java.
  • La programmation concurrente et le fork/join du JDK 7
Bonne lecture.



THUNDERBOLT TECHNOLOGY
The Fastest Connection To Your PC Experience

From the company with the fastest processors comes the fastest way to get information in and out of your PC and peripheral devices. At 10 Gbps, Thunderbolt technology gives you great responsiveness with highspeed data and display transfers in each direction—at the same time. With a single cable, connecting a PC to multiple devices is simple, making it easy to get and see what you want, when you want it. Thunderbolt technology gives you incredible flexibility; high performance expansion is just a cable away for new and novel uses, now and in the future. With the 10 Gbps performance of Thunderbolt products you can Transfer a full-length HD movie in less than 30 seconds Backup 1 year of continuous MP3 playback in just over 10 minutes.


Chez Oracle: Netbeans 7, Java FX 2…
Attention, cette info est réservée à un public averti. Aux aventuriers du code. A ceux qui aiment prendre des risques avec leurs sources en utilisant un IDE encore en bêta. En effet, la bêta 2 de Netbeans 7 vient de sortir. Et elle sait nous mettre l'eau à la bouche ! On ne sera pas surpris d'apprendre que le support des produits Oracle comme WebLogic ou la base de donnée a été amélioré, mais c'est surtout le support de Java 7 qui nous fait saliver: découvrez les possibilités de refactoring dans les release notes.

Toujours concernant Netbeans, certains d'entre nous avaient été déçus de l'annonce de l'arrêt du développement du plugin Ruby. Rassurez-vous, la newsletter hebdomadaire de Netbeans annonce que
Tom Enebo et la communauté comptent continuer à le développer. C'est une bonne nouvelle pour les amateurs de multilinguisme.
Pour continuer sur Oracle, Gerbrand van Dieijen, notre collègue Xebian néerlandais, nous livre quelques informations glanées lors d'un JUG. Les voici:
  • comme prévu, le langage de script JavaFX est bien abandonné. Java FX 2 sera une librairie jar.
  • il sera possible de mixer Swing et JavaFX2…
  • … mais Swing est en mode maintenance. Comprendre « ne plus attendre d'innovations de ce coté ». Aie…
Faut-il s'attendre à ce que Java FX2 soit en fait Swing 2 ? Nous verrons mais en attendant, contrairement à d'autres, nous avons du mal à nous enthousiasmer pour un simple composant TableView qui était absent de la librairie jusqu'ici (bien que gérer correctement une table soit beaucoup plus dur qu'il n'y parait !).


JavaFX 2.0
Roger gave an overview of the new JavaFX 2.0, the road-map and the planned features. The software seems to be developed in an agile manner: the dead line is fixed, as is policy at Oracle (not meeting a dead line means exit for the responsible executive), but the final set of features is not. The preview is available now for a limited audience, in May the first public beta will be released and in November the final will be available.


Ehcache Search
La nouvelle version Ehcache 2.4 est sortie la semaine dernière, elle apporte une nouvelle fonctionnalité importante, Search, qui améliore les mécanismes de recherche. Elle offre entre autre une API fluent (Désignation chainée en français ?) qu'on retrouve souvent dans les API de recherche de ce type. Voici un exemple:

Results results =
 cache.createQuery().includeKeys().addCriteria(age.eq(32).and(gender.eq("male"))).execute();
Nous voici donc avec un nouveau query language, EQL, qui rassemble toutes les fonctionnalités classiques de requêtage: les critères ( eq , lt, like, ilike, between…), les tris descendant/ascendant et les agrégateurs ( min , max, avg, sum,count…). Par contre il n'y a pas de possibilités de jointure.
 
Deux approches ont été utilisées selon qu'on soit en mode standalone ou distribué. En standalone la recherche se fait simplement en parcourant l'ensemble des éléments. Même si il y a beaucoup d'éléments le fait d'être en local permet d'avoir un temps de réponse très bon (d'après Ehcache, 1 million d'entrée en moins d'une seconde environ). Par contre le mode distribué, qui ne sera disponible qu'avec la future release Terracota 3.5, s'appuie sur des indexes et est par conséquent beaucoup plus rapide sur des tailles de cache de plusieurs giga voire téra octets. Dans ce mode on peut doubler le volume en gardant quasiment le même temps de réponse si on ajoute tout simplement un cache. A noter que la mise à jour des indexes est asynchrone.
 
Sans être révolutionnaire voici une nouvelle fonctionnalité assez utile pour un outil déjà appréciable par sa simplicité.



Tech days 2011 : le bilan
Voici deux semaines se tenaient les Microsoft Tech Days à Paris, et OCTO y était. Voilà un comtpe rendu des séances auxquelles nous avons assisté, garanti sans langue de bois. Merci à Sofian, Maxence et Vincent pour leurs retours.


La contractualisation agile, une affaire de bon sens !
Inspiré des méthodes agiles, le contrat agile construit un climat de confiance
entre clients et prestataires de développement ou d'intégration. Il repose sur
la collaboration, la transparence et l'adaptation.


Essential complexity and Accidental complexity
Essential complexity refers to a situation where the problem to solve is complexe.

Accidental complexity is complexity that arises in computer programs or their development process
which is cause by the chosen solution to solve the problem.

While essential complexity is inherent and must be mastered, accidental complexity is caused by the approach chosen to solve the problem and must be reduced.

While accidental complexity is to be minimized in any good architecture, design, and implementation, excessive accidental complexity is an example of an anti-pattern.

Java Best Practices – High performance Serialization

Serialization is the process of converting an object into a stream of bytes. That stream can then be sent through a socket, stored to a file and/or database or simply manipulated as is. With this article we do not intend to present an in depth description of the serialization mechanism, there are numerous articles out there that provide this kind of information. What will be discussed here is our proposition for utilizing serialization in order to achieve high performance results.

Java Fork/Join for Parallel Programming

Parallel computing or parallelization is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently ("in parallel"). In essence, if a CPU intensive problem can be divided in smaller, independent tasks, then those tasks can be assigned to different processors.

Aucun commentaire: