samedi 23 juin 2012

Veille technologique semaine 25

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • Suite au procès, Oracle accepte 0$ de dédommagement de la part de Google et fait appel.
  • IBM installe le calculateur le plus puissant de la planète : 16,32 petaflops, ou 16 thousand trillion calculations per second, avec 98.304 calculateurs, 1,6 million de coeurs, et 1,6 petabytes de mémoire.
  • Des chercheurs ont mis au point une mémoire 100 fois plus rapide que la NAND flash actuelle : la ReRAM.
  • Microsoft annonce Surface, une tablette qui utilise Windows 8.
  • Le programme de la plus grande conférence de l'éco-système JavaOne 2012 est disponible en ligne.
  • Les premiers exemples de modularité de la plate-forme Java (pour le JDK 8) avec le projet Jigsaw : à votre services.
  • Les premières API du JDK 8 avec des entiers non signés.
  • La programmation asynchrone en C# avec DotNet 4.5.
Bonne lecture.


Oracle accepts $0 in damages from Google, moves toward appeal
Oracle has agreed to accept zero dollars worth of damages from Google, three weeks after losing the major portions of the case in which Oracle accused Google of violating Java patents and copyrights in Android.


With 16 petaflops and 1.6M cores, DOE supercomputer is world's fastest
In the latest Top 500 Supercomputer Sites list unveiled Monday morning, a newly assembled cluster built with IBM hardware at the Department of Energy's Lawrence Livermore National Laboratory (LLNL) takes the top prize. Its speed? A whopping 16.32 petaflops, or 16 thousand trillion calculations per second. With 96 racks, 98,304 compute nodes, 1.6 million cores, and 1.6 petabytes of memory across 4,500 square feet, the IBM Blue Gene/Q system installed at LLNL overtakes the 10-petaflop, 705,000-core "K computer" in Japan's RIKEN Advanced Institute for Computational Science.


ReRam : une puce mémoire 100 fois plus rapide
Des chercheurs britanniques pensent avoir mis au point une mémoire cent fois plus rapide que la NAND Flash. La RAM résistive, ou ReRAM, consiste en des puces composées d'oxyde de métal qui disposent d'une propriété résistive et changent d'état en fonction de la tension appliquée sur celles-ci. Cette valeur résistive induite est enregistrée même si la tension n'y est plus appliquée, par exemple dans le cas d'une mise hors tension du système.

La mémoire du futur ?


Une première application concrète de la ReRAM
Pour l'industrie électronique la ReRAM est une sorte de Saint Graal de la mémoire. En développement depuis très longtemps, 1971, elle permettrait un bond énorme, encore bien plus important que celui de l'arrivée des SSD. En résumé, la ReRAM a des performances similaires à la DRAM (mémoire vive) tout en ayant l'avantage de la FLASH, permettre de conserver les données sans avoir à être alimentée en permanence.
Dans le détail la ReRAM est composée d'unités élémentaires les memristors qui peuvent changer de résistance en fonction de la tension qui leur sont appliquée et ainsi stocker des 0 ou des 1. Contrairement à la FLASH NAND, ils n'y a pas besoin d'effacer les memristors avant de leur donner un nouvel état et on peut créer des blocks de 512 bits plutôt que quelques Ko.


Microsoft unveils Surface tablets, powered by Windows 8
The Earth-shattering Microsoft announcement we've been waiting for is finally here. As several pre-event rumors suggested, Microsoft is indeed building its own tablet.
Make that two tablets. One Windows RT tablet runs an NVIDIA Tegra 3 ARM processor and the other Windows 8 Pro tablet runs Intel's Ivy Bridge Core i5 chips. One thing that looks really cool are new magnetic covers that are quite reminiscent of Apple's "Smart Cover" for the iPad. But it's a lot smarter—Microsoft's cover actually includes a multitouch trackpad and a keyboard.
There are two, as we explain in this story: a Touch Cover with virtual keys and a Type Cover with a tactile keyboard and touchpad.


Programme de JavaOne
http://www.oracle.com/javaone/index.html
http://www.oracle.com/javaone/program/schedule/index.html


Modules in the Java Language and VM



Project Jigsaw
http://openjdk.java.net/projects/jigsaw/

Current javadoc
http://cr.openjdk.java.net/~mr/jigsaw/api/


Project Jigsaw: Modular services
Service interface: An interface or class 

Service interface module: A module which exports [a package containing] a service interface 

Service provider class: A non-abstract class which implements/extends a service interface 

Service provider module: A module which binds a service interface to a 
service provider class in the module via “provides service ... with ... 

Service consumer module: A module which denotes it's use of a service interface via “requires [optional] service ... 

Service (interface) instance: An object whose class is a service provider class. The vast majority of references to such an object are made through it's implemented service interface


Services are a simple but effective way to decouple interface and implementation.
The class java.util.ServiceLoader was introduced in Java SE 6 and formalized a pattern that many developers were already implementing prior to SE 6 (especially for JSR implementations).


Unsigned Integer Arithmetic API now in JDK 8
At long last, after due discussion and review, I've just pushed initial API support for unsigned integer arithmetic into JDK 8! The support is implemented via static methods, primarily on java.lang.Integer and java.lang.Long, that:
  • Provide bidirectional conversion between strings and unsigned integers
  • Compare values as unsigned
  • Compute unsigned divide and remainder

Parallel Programming with .NET
Async/Await FAQ
From time to time, I receive questions from developers which highlight either a need for more information about the new "async" and "await" keywords in C# and Visual Basic. I've been cataloguing these questions, and I thought I'd take this opportunity to share my answers to them.

Conceptual Overview
Where can I get a good overview of the async/await keywords?
Generally, you can find lots of resources (links to articles, videos, blogs, etc.) on the Visual Studio Async page at http://msdn.com/async. To call out just a few specific resources, the October 2011 issue of MSDN Magazine included a trio of articles that provided a good introduction to the topic. If you read them all, I recommend you read them in the following order:
1. Asynchronous Programming: Easier Asynchronous Programming with the New Visual Studio Async CTP
2. Asynchronous Programming: Pause and Play with Await
3. Asynchronous Programming: Understanding the Costs of Async and Await

The .NET team blog also includes a good overview of asynchrony in .NET 4.5: Async in 4.5: Worth the Await.

dimanche 17 juin 2012

Veille technologique semaine 24

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • la disparition de la pellicule des films prévue pour 2013 ?
  • Steve Jobs proposait la disparition (du point de vue de l'utilisateur) du système de fichier, dès 2005. Le système de fichier n'est pas un concept grand public.
  • Microsoft et Google veulent améliorer le protocole http, qui commence à dater.
  • La sortie de la version 5 du framework OSGi.
  • Les cinq anti-patterns du management.
  • Un article sur les écarts de compréhension entre les informaticiens et les non informaticiens.
  • Les différences majeures des types C# et Java.
  • Les expressions lambda et JavaFX

Bonne lecture.


Celluloid no more: distribution of film to cease by 2013 in the US
A recent report from IHS Screen Digest, a company that analyzes trends in digital media, says that movie studios will cease producing 35 mm film prints for major markets by the end of 2013 (the US, France, the UK, Japan, and Australia are considered "major markets"). IHS predicts studios will stop producing film for the rest of the world by 2015.


Quand Steve Jobs annonçait la fin des systèmes de fichiers
À quelques jours de l'ouverture de la conférence des développeurs (WWDC), les rumeurs fleurissent sur la toile. À chaque nouvelle version d'un système, beaucoup rêvent d'un système de fichiers pour iOS et d'un tout nouveau Finder pour Mac OS X. Si ce dernier évolue lors de chaque mise à jour, il est loin de connaître la ou les révolutions attendues par certains.


Google and Microsoft Want to Improve HTTP
Google and Microsoft want to improve HTTP with SPDY and Speed+Mobility. This article reviews both proposals outlining what benefits they bring to the much used Internet protocol.
Along with W3C, the Internet Engineering Task Force (IETF) is coordinating efforts related to network routing, transport, and security, including the specification proposal for RFC 2616 on HTTP 1.1 elaborated in 1999 and signed by Roy Fielding and T. Berners-Lee among others. More than 12 years have passed since the last HTTP version was adopted, and some have drawn the attention that the highly used Internet protocol needs to be enhanced in order to face the needs of this time. A number of proposals have been submitted to IETF for HTTP 2.0, including Google SPDY and Microsoft HTTP Speed+Mobility. Both proposals mentioned are backward compatible with previous versions of the protocol, trying to built on existing infrastructure.


OSGi Release 5 Specifications add Repositories and Version Ranges
The OSGi Alliance have released the specifications for Release 5 of their namesake framework, standardising the OSGi Bundle Repository (known as OBR), using the generic capability requirements model, and introducing programmatic access to version ranges. The specifications can be downloaded, and will be implemented by the upcoming release of Equinox 3.8 available in June, as well as Apache Felix 4.0.


5 Common Antipatterns in Software Project Management
  • Overplanning/analysis/meetings
  • Project mismanagement
  • Wrong choices of staff motivation techniques
  • Wrong selection of metrics and evaluation methods
  • Documentation strategy mistakes

The Developer/Non-Developer Impedance Mismatch
Most software developers have probably heard of and even had experiences with the object-relational impedance mismatch (often addressed with ORM tools), the object-XML impedance mismatch (often addressed with OXM tools), and even the developer-DBA impedance mismatch. I don't believe that these impedance mismatches are as difficult as they are sometimes made out to be, but for those wishing to mitigate them, we have tools such as Java Persistence API implementations and JDO implementations for dealing with the object-relational mismatch (and some of the developer-DBA impedance mismatch) and
similarly have approaches such as JAXB, XMLBeans, JiBX and Apache Commons Digester for dealing with the object-XML mismatch (and .NET's LINQ deals with both ORM and OXM mismatches). At this point in my career, I believe the developer/non-developer impedance mismatch is perhaps the most frustrating impedance mismatch I have run into.


5 Differences Between C# and Java: Data Types
The line between desktop development and web-based applications has been all but obliterated in the last few years. With the advent of smartphones, especially Google's Java-based Android operating system, developers are scrambling to jump onto the newest technology, while fearing that the skills they have cultivated over the years may become obsolete.
Many former C++ and C# programmers are migrating their way to Java applications. While the languages are remarkably similar (as Java was built around the C and C++ structures in the 1990s), a few subtle differences can trip up even the most experienced developers.


Using Lambda Expressions of Java 8 in Java FX event handlers
Note: The Project Lambda (JSR-335) to be added in Java 8 is evolving and the sample here is how one can use Lambdas with the current Java8 build downloaded from here. I will try to update the sample if there are any changes in the API in future.
I thought it will be good to get a peak of how Lambda Expressions can be used with JavaFX or for that matter any Single Abstract Method (SAM) types. Lets build a sample with just one toggle button and change the text of the toggle as and when it is selected/un-selected.

samedi 9 juin 2012

Veille technologique semaine 23

Pour le bulletin de cette semaine, je vous propose les sujets suivants :

  • Oracle pert son procès contre Google
  • Les API ne peut pas être "Copyrightées".
  • La journée de IPV6 : avez vous vérifié votre connectivité IPV6 : http://test-ipv6.com/
  • Une lettre de Vauban à son ministre Louvois pour lui expliquer les problèmes qu'il a avec ses entrepreneurs.
  • Intel commence à faire des essais de gravure en 7 et 5 nm ! Il faut compter les atomes ?
  • La programmation fonctionnelle pour la JVM.
  • La modularité en Java : OSGi versus Jigsaw
  • L'utilisation de Hamcrest Core Matcher avec JUnit : l'expression des asserts.
Bonne lecture

Sérieux revers pour Oracle face à Google

Dans le procès qui l'oppose à Google sur la violation de brevets et la copie de fragments de code Java dans Android, Oracle a essuyé il y a quelques jours un nouveau revers, et non des moindres.


En effet, après avoir déjà tranché en faveur de Google il y a deux semaines sur la question des brevets, le juge en charge du dossier, Williams Alsup a également rendu un verdict favorable à Google sur la question de la violation du copyright des API de 37 packages Java reprises par Google dans Android. S'il a bien reconnu que la mise au point de ces API a nécessité un travail créatif, théoriquement couvert par le copyright, Williams Alsup a en effet jugé que les API représentent une "structure de commandes", et entrent donc dans le cadre d'une exception au copyright prévue par la loi pour permettre l'interopérabilité. Le juge indique ainsi que "tant que le code utilisé pour l'implémentation est différent, le Copyright Act permet à n'importe qui d'écrire librement du code pour effectuer exactement les mêmes traitements que n'importe quelle méthode utilisée dans l'API Java", précisant en plus que le nom et la signature des méthodes peuvent être repris.


Il est intéressant de noter que, une fois n'est pas coutume, le dossier est tombé entre les mains d'un juge maitrisant parfaitement le sujet, Williams Alsup ayant indiqué en pleine audience qu'il est lui même développeur, dans une tirade contre l'avocat d'Oracle, pour expliquer à ce dernier qu'une portion de code copiée par Google est particulièrement simpliste, et donc, que cette copie n'a pas pû permettre à Google de prendre un avantage en sortant Android plus rapidement. Baptisée rangeCheck, la fonction en question sert simplement de vérifier qu'un entier est compris entre deux bornes, ce qui est à la portée de n'importe quel étudiant selon le juge, même si l'avocat d'Oracle prétend qu'il ne serait pas capable de le faire lui même en six mois...


Ces quelques lignes de codes sont d'ailleurs le dernier point en suspens dans ce dossier. Mais compte tenu des déclarations du juge sur le sujet, qui a qualifié cette question de "cas de copiage innocent et sans importance" (9 lignes dans une classe en contenant près de 3200), il serait surprenant que la décision finale soit très favorable à Oracle. Au maximum, Oracle pourrait espérer des dommages et intérêt à hauteur de 150 000 dollars, une goutte d'eau par rapport aux plusieurs milliards de dollars initialement exigés par Oracle, qui a déjà revu ses prétentions à la baisse plusieurs fois.


Bien entendu, il reste à Oracle la possibilité de faire appel, ce que l'éditeur a d'ores et déjà annoncé qu'il fera... en espérant probablement tomber sur un juge dominant un peu moins le sujet...

APIs Cannot be Copyrighted
In a decisive legal ruling yesterday, the judge in the Oracle vs Google case declared that APIs are not copyrightable, and Oracle cannot claim anything for the SSO – structure, sequence and organisation of those methods, classes and packages. From the summary judgement:

World IPv6 Launch gets 27 percent of pageviews on IPv6
Today, 3,000 websites have made themselves reachable over IPv6 in order to participate in World IPv6 Launch. (Some have enabled IPv6 prior to today.) The 3,000 includes the top four in the Alexa Web ranking: Google, Facebook, YouTube, and Yahoo. Other notable converters include Bing, AOL, Netflix, Comcast, AT&T, Microsoft, NASA, Sprint, the US Geological
Survey, Sony Japan, and Porsche.
Last year, many websites also enabled IPv6, but turned the new version of the Internet Protocol off again after 24 hours. After that test flight, the Internet Society and other organizers now deem IPv6 permanently ready for prime time: "the future is forever."

L'autorité reconnue de Vauban : lettre à Louvois
Il y a quelques queues d'ouvrage des années dernières qui ne sont point finies et qui ne finiront point, et tout cela, Monseigneur, par la confusion que causent les fréquents Rabais qui se font dans vos ouvrages, car il est certain que toutes ces ruptures de marché, manquements de parole et renouvellement d'adjudications ne servent qu'à vous attirer comme Entrepreneurs tous les misérables qui ne savent où donner de la tête : les fripons et les ignorants, et à faire fuir tous ceux qui ont de quoi et qui sont capables de conduire une Entreprise.

Intel commence à travailler aux gravures en 7 et 5 nm
Aujourd'hui Intel est la seule société au monde à pouvoir produire en masse des puces gravées en 22 nm alors que ses concurrents les plus proches peinent à fabriquer en masse en 28 nm et se contentent le plus souvent d'une gravure en 32 nm.

Functional Programming on the JVM
In recent times, many programming languages that run on JVM have emerged. Many of these languages support the concept of writing code in a functional style. Programmers have started realizing the benefits of functional programming and are beginning to rediscover the powerful style of this programming paradigm. The emergence of multiple languages on JVM have only helped to reignite the strong interest in this paradigm.

OSGi vs. Jigsaw: Kirk Knoernschild on Modularity
Kirk Knoernschild is one of the leading experts when it comes to the OSGi community. DZone recently had a chance ot interview him about his thoughts on modularity in 2012 and his new book is "Java Application Architecture: Modularity Patterns with Examples Using OSGi." The book introduces 18 patterns that will help you design more modular software.

JUnit's Built-in Hamcrest Core Matcher Support
In the post Improving On assertEquals with JUnit and Hamcrest, I briefly discussed Hamcrest "core" matchers being "baked in" with modern versions of JUnit. In that post, I focused particularly on use of JUnit's assertThat(T, Matcher) static method coupled with the Hamcrest core is() matcher that is automatically included in later versions of JUnit. In this post, I look at additional Hamcrest "core" matchers that are bundled with recent versions of JUnit.