vendredi 25 mars 2011

Veille technologique semaine 12

Pour le bulletin de cette semaine, je vous propose les sujet suivants :
  • une mise à jour du tutorial Java est sortie le 17 mars 2011 avec déjà les évolutions du JDK 7
  • Un article au sujet de l'agilité et la contractualisation
  • La loi de Conway : comment une organisation qui construit un système peut finir par le concevoir comme le reflet de sa propre structure.
  • Deux articles sur l'architecture logicielle : un terme qui n'est pas strictement défini.
  • Le produit EHCache qui propose un système de requête sur des objets en Java.
  • Les quatre règles minimum pour écrire du code.
Bonne lecture.


What's and What's Old? The History of  the Tutorial
17 March 2011


Travaillons ensemble à votre contractualisation Agile
L'Agile est aujourd'hui un outil puissant d'amélioration de la qualité des produits et de la satisfaction des acteurs, utilisateurs comme artisans du système d'information. Si la méthode commence à être connue, sa mise en oeuvre peut néanmoins se heurter à des difficultés, notamment sur le volet contractuel.

Ainsi, dans les organisations où les pratiques d'achats reposent sur une définition exhaustive des besoins (i.e. cahier des charges) et une obligation de résultat portant sur un périmètre figé et qui ne peut évoluer qu'à l'aide d'avenants, il est souvent difficile voire impossible de concilier ces pratiques avec les
principes fondamentaux de l'Agile à savoir : autoriser le changement, affiner et spécifier les fonctionnalités au fil de l'avancement du projet pour répondre mieux aux besoins des utilisateurs. Alors que faire ?


The Conway's Law
This concept is known as Conway's Law, named after Mel Conway, who published a paper called "How Do Committees Invent?". Fred Brooks cited Conway's paper in his classic "The Mythical Man Month", and invented the name "Conway's Law". Here's the definition from Conway's own website (which also has the original paper in full):

Any organization that designs a system will inevitably produce a design whose structure is a copy of the organization's communication structure.

ConwaysLaw appears in MythicalManMonth, citing an earlier article by Conway from Datamation.


Conway's Law

Over the years I've heard a number of creative derivations of ConwaysLaw, including
  • The architecture of a system is a copy of the architecture of the organization
  • The structure of a system is determined by the structure of the team.
  • To understand the team, look at the software they're producing. If it's slow and bloated, the team is slow and bloated. If it's lean and quick, the team is lean and quick.
  • More precisely, The structure of a system reflects the .status and power relationships of the people and organizations involved.

Conway's Law and the Impact to Product Development
Think about your product and it’s strengths and weaknesses. Can these strengths and weaknesses be mapped to the strengths and weaknesses of the communication paths in your organization? Component-based teams and human relationships are at the core of this idea.



What is Software Architecture?
It's what software architects do / create / make! :-)
But still . . . . we've asked probably the hardest question in the world of software development.



What is a software architecture?
Architecture is the first of a four-part series on "architecting" in general. The author begins by defining the discipline's key terms and goes on to explore what a well-designed architecture contributes to the environment in which it is deployed.


Ehcache: Distributed Cache or NoSQL Store?
Is Ehcache a NoSQL store? No, I would not characterise it as that, but I have seen it used for some NoSQL use cases. In these situations it compared very well — with higher performance and more flexible consistency than the well-known NoSQL stores. Let me explain.
Ehcache is the de facto open source cache for Java. It is used to boost performance, offload databases and simplify scalability. Backed by the Terracotta Server Array, Ehcache becomes a linearly scalable distributed cache. It is a schema-less, key-value, Java-based distributed cache. It provides flexible
consistency control, data durability, and with the release of Ehcache 2.4, search by key, value and
attribute indexes.


Clean Code: Four Simple Design Rules – Obligatory Read
Posted by theholyjava on February 14, 2011 consider the Clean Code book to be obligatory for every programmer. And if you currently haven't the time to read it all at once then you should read – and take deep into your heart at least the 12th chapter Emergence by Jeff Langr, which introduces Kent Beck's Four Simple Design Rules and explains thoroughly what they mean and why they're so important. The rules, in the order of importance, are:


vendredi 18 mars 2011

Veille technologique semaine 11

Pour le bulletin de cette semaine, je vous propose les sujet suivants :
  • Microsoft propose la version 9 du navigateur Internet Explorer : compatible HTML 5 et performances sont au rendez vous. Pour Windows Vista ou 7 uniquement.
  • Le standard Java Enterprise Edition 7 (JEE7) est ouvert : objectif cloud et HTML5.
  • Un IDE (Intégrated Development Environment) dans un navigateur web : le Cloud IDE
  • JavaFX 2.0 : interview de l'architecte chez Oracle. Version publique pour mi-2011.
  • Une série d'article pour essayer de préciser la différence entre l'analyse et la conception (design) dans le logiciel : il est très important de séparer correctement la phase d'analyse et les concepts correspondants, et la phase de conception et ses concepts. L'industrie du logiciel propose les concepts d'architecture logiciel orienté services (Services Oriented Architecture : SOA) et orienté événements (Event Driven Architecture : EDA). Ces deux styles d'architectures ne sont pas liée à une solution technologique. C'est donc l'analyse des spécifications fonctionnelles qui va permettre de construire l'architecture du logiciel (espace du problème : le quoi) uniquement à l'aide de principe basé sur ces concepts de services et d'événements. La phase d'après, la conception (espace de la solution : le comment) permet d'intégrer les exigences non fonctionnelles (les performances, ...) et les solutions techniques pour la persistance, la distribution de données, les invocations distantes (remote) ... La distribution de données n'est donc pas un concept du niveau de l'analyse mais bien un concept de design, de l'espace des solutions. Il n'y a pas d'architecture orienté distribution de données.
  • IBM propose un article qui résume la complémentarité des architectures orienté services (SOA) et Orienté événements (EDA) et propose de l'appeler ED-SOA : pour Event Driven-Service Oriented Architecture.
  • Un COTS de messageries : ZeroMQ. Interropérable avec une vingtaine de langage de programmation, avec un modèle de programmation requête-réponse (SOA) et publish/subscribe (EDA), différent transport : intra-process, IPC, IP et des performances remarquable (en débit et latence).
  • Un article pour préciser la différence entre la surcharge (overload) et la redéfinition (override). Ces deux concepts sont très souvent confondu.
  • Un exemple de code Java pour observer le système de fichier, avec les nouvelles API du JDK 7.

Bonne lecture


Microsoft IE 9 Released
Microsoft released IE9, its flagship internet browser, at the SxSW conference yesterday. This brings IE into closer alignment with current web browsers, as it introduces some level of HTML5 support and achieves a 95% pass rate on the Acid 3 tests.
The most notable feature of IE9 is its speed. With a background thread for JIT compilation of JavaScript and hardware acceleration, it feels much faster in performance than its predecessors. There are other user interface updates to fit in with Windows 7, including "pinned sites" which give you a quick link from the shortcut bar to a web page.

The addition of HTML5 features such as the HTML History API will enable more user friendly websites/applications to be written without needing to invoke the hashbang syntax which was largely derided when sites like gawker disappeared from Google's caches.


Java EE: Objectif Cloud !
Vous n'avez pu rater la semaine dernière l'annonce de la sortie de la JSR 342! Il s'agit de la spécification de Java EE 7 dont le principal focus se veut être le Cloud.
Cette évolution de la plateforme était attendue. En effet, nombreux sont ceux qui, depuis plusieurs mois, prédisent que l'avenir de Java dépendra de sa faculté à intégrer les paradigmes du Cloud, tels que le « multitenancy » (partage d'une même application entre plusieurs utilisateurs ou organisations clientes) ou encore l'élasticité (mise à disposition automatique de ressources en fonction de la montée ou de la baisse de charge).
Voici un rapide tour d'horizons du contenu de cette JSR.



Oracle's Java EE 7 Plans Include Adding Cloud and HTML5 Support to the Platform
Oracle has filed Java Specification Request (JSR) 342, the umbrella JSR for Java EE 7. The JSR places emphasis on emerging web technologies, cloud computing, and continued ease of use improvements including an overhaul to the JMS API. Elsewhere, JPA is scheduled to receive attention, and Oracle is talking about plans to revive the long dormant JCACHE JSR.
The primary focus for making Java EE more suited to the cloud is on multi-tenancy (having the same program execute in a variety of different environments from a local application server to a private cloud to a public cloud), application versioning, and support for non-relational (NRDBMS) data stores.
 


Java EE 7
Suite à la sortie de Java SE 7 en developper preview, c'est au tour de Java EE 7 de faire parler de lui. Il y a deux semaines, la spécification de la plateforme Java Entreprise Edition dans sa version 7 a été soumise au JCP sous la JSR 342. Bien entendu, cette spécification est une proposition qui devra être votée et implémentée par l'« expert group ». Selon plusieurs sources, JEE 7 devrait voir le jour courant 2012, au troisième ou quatrième trimestre.
Au programme de cette version 7 : du cloud, du cloud et encore du cloud. En effet, cette JSR « umbrella » — c'est-à-dire chapeautant à son tour d'autres JSR — se veut résolument « cloud-friendly ».
Mais JEE 7 couvrira aussi d'autres sujets : le support des derniers standards du Web, la modularité et la facilité de développement.
 
Focus sur le Cloud
Le spec lead de cette JSR voit le cloud comme un prolongement du modèle orienté conteneur (accès au système et aux ressources externes géré par le conteneur) de la plateforme Java Entreprise Edition, où une application peut être déployée sur une machine unique comme sur un cluster de manière distribuée, sans changements radicaux, grâce à la souplesse de la stack.
La plateforme JEE étant déjà bien parée pour des environnements cloud — grâce à son modèle orienté conteneur et à son abstraction d'accès aux ressources — l'objectif de la spécification est d'améliorer l'intégration de la plateforme dans des clouds privés ou publics, afin que les applications y soient exposées « as a service », avec le support de fonctionnalités telles que l'extensibilité horizontale (« horizontal scalability ») ou encore la « multitenancy » (principe d'architecture logicielle où une seule instance d'une application peut servir, de manière individualisée, différents clients avec potentiellement des configurations et des paramétrages personnalisés).
Il s'agit également de tenir compte des problématiques liées au cloud (sécurité, isolation, qualité de service), en définissant par exemple de nouveaux rôles, tel que celui de PaaS (Platform as a Service) administrator ou en mettant à jour le modèle de sécurité de la plateforme en ce sens. Aussi, les applications qui voudront tirer avantage des différentes fonctionnalités spécifiques au modèle PaaS devront-elles obéir à certaines contraintes et fournir un moyen d'être identifiées comme étant conçues pour évoluer dans un environnement cloud.
Bon nombre d'APIs vont être mises à jour pour tenir compte de ces problématiques. Celles notamment qui gèrent des accès aux ressources, comme JPA, JDBC ou encore JMS, devront se rendre compatibles avec les systèmes multitenants. Dès lors, des ressources externes telles qu'une source de données ou une file de messages pourront être marquées comme étant partagées entre plusieurs applications. Les « expert groups » qui gouvernent chaque API seront chargés d'identifier ces besoins et de prendre les mesures adéquates.
 
Les derniers standards du Web
Le Web est aussi à l'honneur pour cette version 7 de la plateforme. D'ailleurs, deux nouvelles APIs, venant étoffer le support des dernières technologies Web dans le vent, sont en discussion :
  • Support du HTML5 et des Web Sockets via l'API Java Web Sockets.
  • Support de JSON (JavaScript Object Notation) via l'API Java JSON.
JEE 7 inclura aussi la version 2.0 de l'API JAX-RS (Java API for RESTful Web Services) définie par la JSR 339. Cette dernière sera rajoutée au profil Web, en plus des mises à jour des APIs déjà présentes au sein de celui-ci.

Modularité
Cette JSR a aussi pour objectif de faciliter la modularité et la gestion de versions, en permettant par exemple à une application d'utiliser une version supérieure d'une API déjà incluse dans la plateforme. Ce travail devra être coordonné avec la JSR à venir sur la modularité dans Java SE afin de rendre les deux plateformes cohérentes.
 
Facilité de développement
Tirant les leçons de certaines API vilipendées pour leur lourdeur ou leur complexité — on pense aux EJB d'avant la version 3.0 — cette version 7 se veut simple, légère, efficace et efficiente. En ce sens, l'API JMS dans sa version 2.0 va être améliorée et l'API CDI (Context and Dependency Injectio), introduite dans JEE 6, se verra doter d'une API pour configurer un injecteur : l'API DI 1.1 (la suite de la JSR 330).
A noter que la JSR 342 propose l'ajout de deux nouvelles JSRs, à savoir :
  • Concurrency Utilities for Java EE (JSR-236) : construite sur l'API java.util.concurrent, cette API offre des facilités pour exécuter des tâches de manière asynchrone.
  • JCache (JSR-107) : cette API a pour objectif de standardiser un système de cache accessible depuis tous les conteneurs en vue de rendre les applications plus « scalables » (extensibles).
En résumé, plusieurs APIs déjà présentes dans JEE seront mises à jour :
  • Java Persistence API (JPA)
  • Java API for RESTful Web Services (JAX-RS)
  • JavaServer Faces (JSF)
  • Servlets
  • Enterprise JavaBeans (EJB)
  • JavaServer Pages
  • Expression Language
  • Java Messaging Service (JMS)
  • Java API for XML-based Web Services (JAX-WS)
  • Contexts and Dependency Injection for Java EE (CDI)
  • Bean Validation
  • Dependency Injection for the Java Platform (JSR-330)
  • Common Annotations (JSR-250)
  • Java Connector Architecture


eXo Releases Cloud IDE
What Is Cloud IDE
Cloud IDE is a full-fledged development environment inside of a browser. Cloud
IDE contains many of the features developers expect such as color-coded syntax,
context sensitivity, auto-complete, multi-file editor with preview panel and
integration with source control systems.



JavaFX 2.0 Will Bring Hardware Accelerated Graphics and Better Licensing Terms to the Platform
At last year's JavaOne conference Oracle announced that it would continue to invest in JavaFX, shipping JavaFX 2.0 this year. At part of this, however, it also announced that it would be dropping support for JavaFX Script, replacing it with a new Java API for creating JavaFX applications. That API can also be used from alternative languages such as JRuby, Clojure, Scala and Groovy.
The beta program for JavaFX 2.0 has started, with Early Access releases open to members of the JavaFX Partner Program. A public beta is planned by the end of the first half of 2011. Participants will have the opportunity to provide feedback through multiple channels, including surveys, participation in focus group sessions, and discussions with key members of the JavaFX product team.

InfoQ spoke to Richard Bair, the architect for client software at Oracle, to find out more about the release and future plans


Object-oriented analysis and design
  • Object-oriented systems
  • Object-oriented analysis
  • Object-oriented design

The Architectures for software engineering
  • 1. Enterprise
  • 2. Functional
  • 3. Software
  • 4. Logical
  • 5. Technical
  • 6. Physical
  • 7. System
  • 8. Deployed

Architectural Principles and Solution Architectures
How I see it...

There is a difference between architectural principles and solution architectures.
Architectural principles are guidance in ambiguous situations toward an ideal.
A solution architecture holds the trade-off.
Deviating from the principle must be motivated, adhere to the principle not. That's what enterprise architecture is about: principles, decisions and solutions.

Architectural principles help in decision-making, solution architectures help in building systems solutions. Architects should recognize this difference. Architectural principles lead to design-to-change, solution architectures lead to design-to-release.
Practice learns that not all architects do make this distinction. And even worse, some architects don't see the necessity to lean on the guiding principles to which you may deviate during the designing of the solution.

If you don't take into account architectural principles that guide you to flexibility in changing the system across versions, and you don't document your design decisions that deviate from them, you may build perfectly working systems for extremely happy users and at the same time create a nightmare when you have to build and release the next version of the system. That may turn to be lethal for businesses in a world with the current increasing pace of change.




Event Driven Architecture and Service Oriented Architecture :
  • (1) the fusion of SOA and EDA into ED-SOA (event-driven, service oriented architecture) is the way of the future,
  • (2) building processes is greatly facilitated by ED-SOAs,
  • (3) conversely ED-SOAs can be constructed as layered architectures using BPM systems.
  • (4) CEP principles must become an integral component of both ED-SOAs and business processes because of the ever increasing quest for control of our business processes, real time autonomous operation, and the need to gather business intelligence from the events flowing through our IT systems.

Event-Driven Architecture and Service-Oriented Architecture
  • What is EDA?
  • EDA and SOA
  • EDA, SOA, and Services
  • EDA and SOA Programming Techniques
  • EDA, SOA, and ESBs
  • Conclusions

ZeroMQ.
un broker qui implémente plusieurs protocoles dont AMQP. On est ici à la limite du sujet tant cette application s'attache moins à son intégration dans une application de gestion classique qu'à construire une bête de course aux performances affichées impressionnantes (13.4 microsecondes de latence end-to-end, 4.1 millions de messages à la seconde).


ZeroMQ
Less is More :
  • The socket library that acts as a concurrency framework.
  • Carries messages across inproc, IPC, TCP, and multicast.
  • Connect N-to-N via fanout, pub-sub, pipeline, request-reply.
  • Fast enough for clustered products and supercomputing.
  • Asynch I/O for scalable multicore message-passing apps.
  • Large and active open source community.
  • 20+ languages including C, C++, Java, .NET, Python.
  • Most OSes including Linux, Windows, OS X.
  • LGPL free software with full commercial support from iMatix.

ZeroMQ
ZeroMQ is a messaging library, which allows you to design a complex communication system without much effort. It has been wrestling with how to effectively describe itself in the recent years. In the beginning it was introduced as 'messaging middleware' later they moved to 'TCP on steroids' and right now it is a 'new layer on the networking stack'.


What is the difference between method overriding and method overloading in Java?



How to watch the file system for changes in Java 7 (JDK 7)
Java 7 uses the underlying file system functionalities to watch the file system for changes. Now, we can watch for events like creation, deletion, modification, and get involved with our own actions. For accomplish this task, we need:

vendredi 11 mars 2011

Veille technologique semaine 10

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • Microsoft propose à ses utilisateurs d'Internet Exploreur 6 de passer à une version plus récente.
  • Adobe annonce un outil de conversion du flash en HTML5. Tout n'est pas encore convertible mais cela confirme la tendance vers le HTML5 pour l'IHM web.
  • Le Java Specification Request (JSR 342) relatif à la prochaine version du serveur d'application Java Enterprise Edition 7 est ouvert.
  • Un article sur la manière de faire des Domain Specific Language (DSL) interne au langage Java.
  • Le processus d'accueil des débutants dans le domaine du logiciel, avec une démarche d'amélioration.
  • Un article au sujet des types paramétrés en C++, C# et Java : les génériques
  • L'outil de test FEST adopte les "fluentes interfaces" pour les assertions : faite des phrases pour les humains dans votre code de test.
Bonne lecture.


Microsoft veut mettre fin à IE6
Alors que fut un temps, Microsoft pouvait s'enorgueillir de l'omniprésence de son
navigateur web, voilà qu'aujourd'hui celle-ci fait figure de caillou dans sa chaussure : nombre d'internautes utilisent encore et toujours l'indéboulonnable Internet Explorer 6. Il faut dire que cette version a été la dernière en date pendant pas moins de cinq ans, et on en mesure aujourd'hui encore les conséquences : près de dix ans après sa sortie, d'après NetApplications 12 % des internautes s'entêtent à utiliser ce navigateur, en dépit de la marche du progrès. Il faut bien évidemment y voir un effet Windows XP, que nombre d'entreprises continuent à utiliser, rechignant à faire le saut vers l'inconnu de la mise à jour face à un système éprouvé.


Adobe targets iOS with Wallaby Flash-to-HTML5 converter
HTML5 may one day be the future of rich interactive Web content and advertising,
but at the moment Adobe Flash remains the tool of choice for designers everywhere. That's a problem when exciting new smartphone and tablet platforms don't support Flash. To resolve that difference, Adobe has published a prerelease version of Wallaby: a program that converts Flash files to HTML5, using JavaScript, CSS, and SVG to produce Flash-like graphics that don't need plug-ins.

With Wallaby, Adobe is clearly readying itself for a "post-Flash" era that may be ushered in with the "post-PC" era.


JSR 342: Java Platform, Enterprise Edition 7 (Java EE 7) Specification
This JSR is to develop Java EE 7, the next release of the Java Platform, Enterprise Edition. The main theme for this release is the Cloud. The Java EE platform is already well suited for cloud environments thanks to its container-based model and the abstraction of resource access it entails.
In this release we aim to further enhance the suitability of the Java EE platform for cloudenvironments. As a result, Java EE 7 products will be able to more easily operate on private orpublic clouds and deliver their functionality as a service with support for features such asmultitenancy and elasticity (horizontal scaling). Applications written for Java EE 7 will be better ableto take advantage of the benefits of a cloud environment.

- Cloud -
- Ease of development -
- Web Profile -
- Pruning -
- Modularity -


An Approach to Internal Domain-Specific Languages in Java
A domain-specific language (DSL) is commonly described as a computer language targeted at a particular kind of problem and it is not planned to solve problems outside of its domain. DSLs have been formally studied for many years. Until recently, however, internal DSLs have been written into programs only as a happy accident by programmers simply trying to solve their problems in the most readable and concise way possible. Lately, with the advent of Ruby and other dynamic languages, there has been a growing interest in DSLs amongst programmers. These loosely structured languages offer an approach to DSLs which allow a minimum of grammar and therefore the most direct representation of a particular language.
 
However, discarding the compiler and the ability to use the most powerful modern IDEs such as Eclipse is a definite disadvantage with this approach.
The authors have successfully compromised between the two approaches, and will argue that is quite possible and helpful to approach API design from the DSL orientation in a structured language such as Java. This article describes how it is possible to write domain-specific languages using the Java language and suggests some patterns for constructing them.


Save money from Agile Development
Young developers usually don't learn how to create a high quality and clean code atthe university and thus in spite of all their efforts they sometimes write code of poorquality, which then causes headakes to many other people and makes maintenance and evolution of the software more error-prone, expensive and slow.

The best way to give them this opportunity is to let them work in a pair with an experienced developer and later, when they've already gaind the right mind set, they can be kept on the right track and encouraged towards further development via code reviews.
  • Bad Code Can Kill You
  • Learning Clean Coding via Pair Programming and Code Reviews
  • Selling the Idea to the Management

Generics in C#, Java, and C++
A Conversation with Anders Hejlsberg.


FEST-Assert 1.4: Fluent Interface for Assertions
FEST-Assert is an "assertThat" library that provides a fluent interface for writing assertions. Its main goal is to improve
test code readability and make maintenance of tests easier.

assertThat(newHires).containsOnly("Gandalf", "Arwen", "Gimli");

assertThat(yoda).isInstanceOf(Jedi.class)
        .isEqualTo(foundJedi)
        .isNotEqualTo(foundSith);

vendredi 4 mars 2011

Veille technologique semaine 9

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • La norme Unicode 6.0 a été publiée avec 109 384 caractères normalisé. La version 1 d'Unicode en proposait 28 294.
  • Le standard WebGL (pour le HTML 5) est proposé par le groupe Khronos. Bientôt le WebCL.
  • Oracle pense au Cloud pour le prochain JEE (7 ou 8 ?) du 2013.
  • La liste officielle des évolutions du JDK 7 : l'implémentation publique passe en mode "fonctionnalités figées" d'après le site web du JDK 7. Exemple de ces évolutions du langage Java.
  • Les données non mutables : l'exemple avec le langage Closure.
  • Parmi les principes de conceptions avancées, un sous-ensemble est regroupé sous l'acronyme S.O.L.I.D. Explications
  • WinFroms, WPF (Windows Presentation Framework) ou Silverlight : trois technologiques de Microsoft pour faire des interfaces homme machine.
Bonne lecture.



Unicode 6.0.0 Standard Published
The week before last, the Unicode Consortium which manages standards for Unicode and Locale published the 6.0 version of Unicode to their site. These standards represent the common set of symbols and locales software vendors use to internationalize their solutions. Over time, the Unicode Standard set of characters has grown in size from 28,294 assigned graphic and format characters in Version 1.0, to 109,384 characters in Version 6.0. This release represents the first time the full specification has been published online in its entirety.


WebGL est finalisé et sera suivi par WebCL
Lors de la Game Developer Conference qui se tient en ce moment, le Khronos Group a annoncé la finalisation de WebGL, ce nouveau standard qui permet d'utiliser OpenGL ES 2.0 dans le navigateur par le biais de JavaScript. Il est de plus en plus utilisé pour la conception de jeux en ligne : ils peuvent alors être utilisés sans plug-in, sur ordinateur classique, tablette ou même sur un smartphone. Il permet aussi de réaliser des applications Web plus classiques avec des éléments graphiques complexes : c'est la carte graphique qui alors géré du rendu, une accélération matérielle 3D bien plus efficace qu'un rendu processeur.


Oracle to float cloud-ready Java EE in 2013
The flavor of Java used to build application servers like IBM's WebSphere, Oracle's WebLogic, and Red Hat's JBoss is getting a two-stage retooling designed to float app severs to the cloud.
Oracle is thrashing out a roadmap for the next versions of Java Enterprise Edition (Java EE) that will add new web technologies such as HTML5, WebSockets, and JSON. The roadmap also places a lot of emphasis on REST, according to a source familiar with the matter.
 



Java Programming Language Enhancements in JDK 7
• Binary Literals
• Underscores in Numeric Literals
• Strings in switch Statements
• Type Inference for Generic Instance Creation
• Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods
• The try-with-resources Statement
• Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking

Mark Reinhold announced availability of the first JDK 7 developer preview today.
Reason enough for me to give some of the Project Coin features a shot. I won't get into details here, but instead just show some quick examples. Most of them are self-explanatory anyway.


Immutability in Clojure - Part 1, Programming Without Variables
In Clojure, immutability is the default. Once an object or data structure is
created, it cannot be changed. This provides many benefits:



SOLID - OOPS/OOAD Principle
The Object Oriented concepts in all OOPS language follow some common principles. These principles are guidelines for developers and architects which they need to understand as they grow their understanding of the language.

The SOLID principles are the most talked about in the Enterprise Java world. These principles deal with cohesion, coupling, inheritance, abstract types in the Object Oriented Analysis and Design (OOAD)



A Case for WinForms
When DevExpress released their roadmap for 2011, WinForms barely got a mention. As a ten year old technology that is basically abandoned by its creator this isn't too surprising. But what it interesting the amount of negative feedback that generated. A lot of DevExpress's customers just don't see WPF or Silverlight as a viable replacement for their major applications.

Seven years ago Avalon was announced. Now known as WPF and Silverlight, it represented a major evolution in the design and development of graphical user interfaces. Combining the declarative style of HTML programming with WinForm's ability to create custom controls has proven to be very effective. With three major versions of WPF and four of Silverlight now in production, one would not expect the technology to be pretty solid.

Unfortunately there continues to be serious performance concerns, both in terms of processor and memory usage. While very real on their own, these concerns are exaggerated by the steep learning curve. Even minor design flaws have a bad tendency to multiply the amount of resources needed for a given screen.