vendredi 23 décembre 2011

5 tendances pour 2012 #nodejs #html5 #javascript


La fin d'année arrive avec son lot de prédiction, de tendance pour l'année 2012.
Je vais faire ici ma liste des 5 tendances qui vont  dominer ou non l'année qui arrive.
Par honnêteté je réaliserai l'an prochain à la même époque un bilan.

Tendance 1: De plus en plus de chose font se faire en javascript coté client. HTML5 annonce une mutation sur la manière de faire des applications. jQuery, Backbone , batman  seront les valeurs montantes. Les raisons de ce phénomène ?:
a) La fragmentation des postes clients (pc, tablettes, smartphone)
b) les couts de traitement coté serveur vous sont facturés cash (cloud computing, serveur , salle machine)

Tendance 2: amaigrissement des frameworks : c'est le corollaire du point 1. Les serveurs ne sont que des distributeurs  de données , en JSON si possible,  avec une simplification à l’extrême. Une application métier  sera l’agrégation de mini-services hétérogènes.

Tendance 3: Les entreprises vont continuer à investir dans les réseaux sociaux (Facebook pour ne pas le citer). Après les pages de groupe ou de fan, l'étape suivante est la création par les entreprises d'applications intégrées à Facebook. La force de Facebook n'est pas son contenu mais son architecture. C'est  une architecture ouverte qui permet à chacun de développer des applications qui viennent s'intégrer à Facebook (exemple ici avec Rails) .

Tendance 4: Virage de Twitter, l'usage que je préfère est le partage de lien. Il permet de savoir que telle ou telle personne   est en cours de lecture d'un document. Delicious remplissait ce role mais depuis peu , il se tourne vers la curation de contenu, dommage. L'autre usage de twitter est la recherche d'information en continu. 2012 sera une année charnière pour twitter qui doit dégager une logique économique ou etre mangé par un gros (Facebook , microsoft ou google)

Tendance 5: Les bases de données NoSQL. Les volumes de données explosent et les entreprises ne savent plus les analyser (moins de 10 % de données sont exploitées) . Les bases NOSQL ne vont pas résoudre ce problème mais ne font que le repousser.


Les conséquences de tout ca:

Croissance de javascript et HTML5 dans les systèmes d'information. Javascript va prendre pied sur le coté serveur avec la révolution de node.js. Node.js permet à un développeur moyen de programmer des services asynchrones repoussant très loin les limites: en temps de crise , l’intelligence remplace l'argent. Dans le monde JEE scalabilité est synonyme d'achat de serveur, c'est la fin d'une époque.

Seuls les framework qui  anticiperont ce mouvement vont tirer leur épingle du jeu: parmi ceux ci :Rails.

Posez vous cette question: c'est le framework qui est à votre service ou vous qui êtes à son service.


dimanche 18 décembre 2011

Le blues des frameworks MVC #node.js

Le concept du framework MVC  (modele vue controleur)  date du début des années 80 , bien avant le temps d'Internet ou de Java/JEE.
mvc 2

Jusqu’à maintenant les choses étaient simples. Un bon gros serveur MVC générant des vues pour le client.
La carrière de l'informaticien était toute tracée: Le MVC serveur tu maitriseras. Hélas des elements sont venus parasiter ce bel édifice.

  • La montée en puissance du javascript.

Boosté par les gars de google ou de microsoft , le moteur d'exécution javascript est celui qui a gagné le plus en performance.

  • Le javascript est le seul langage supporté par tous les navigateurs.
  • La segmentation du poste client
Le PC est maintenant en concurrence directe avec les smatphones ou les tablettes. Le concepteur se retrouve devant une fragmentation du matériel et il doit gérer tous les cas de figure (clavier / ecran tactile)
ET cela même au niveau des applications métiers

 Il n'est donc  plus réaliste d'avoir tout le traitement de la vue préparé au niveau du serveur. Le framework se trouve réduit à un distributeur de données en ... JSON.  

  • Plusieurs frameworks et non plus un seul framework

Certains traitements sont déportés sur le client mais sans pouvoir êtres terminés.
Prenons l'exemple d'un export CSV pris en charge par du javascript sur le poste client:
A)  Le client recoit de la donnée en JSON
B)  Le client retravaille les données et fabrique un export CSV
C) Le client NE POURRA pas enregistrer son travail sur son poste local (pour des raisons de sécurité, le navigateur refuse de dialoguer avec le système de fichier local) .

La solution est d'envoyer le fichier CSV vers un serveur qui se chargera de retourner le fichier reçu avec la bonne entete. Ce serveur joue le rôle d'un miroir qui se contente de renvoyer ce qu'il reçoit du client. Pour cela une dizaine de lignes suffit, nul besoin d'un framework embarquant plusieurs milliers de ligne de code.

Ainsi l'architecture applicative ne sera pas composée d'un gros serveur MVC mais de plusieurs composants hétérogènes de taille réduite.

On ne peut plus parler de modèle MVC. Sur ce site http://blog.nodejitsu.com/scaling-isomorphic-javascript-code  Charlie Robbins  liste les differents modèles induits par l'utilisation de framework client (backbone.js , batman.js etc ) et introduit la notion de RVP : Resource-View-Presenter




C'est pour ça que les frameworks  'classiques' vont devoir s'adapter ou disparaître. A ce jour seul Rails avec les versions > 3.0 a pris le parti de se mettre en retrait sa partie serveur pour mettre en avant la partie cliente.



lundi 28 novembre 2011

LemonNode.js nouvel SSO en javascript

J'ai initialisé le projet lemon:node.js sur la forge github (lien ici ) .


Le dessin ci dessous illustre l'aspect novateur de cette solution :
Plus besoin d'infrastructure dédiée, chaque application est responsable du  SSO. Le SSO fait partie de l'application et n'est plus un composant tiers.
Tout ce ci est possible grace à plusieurs facteurs :


Le serveur de javascript  node.js : Il est léger, terriblement efficace. Il s'installe infdifferement sur des serveurs unices ou windows. Il facilite la programmation asynchrone non bloquante.


Le langage coffeescript: il permet de générer du javascript à partir d'un langage projet du python ou du ruby.
Lemon:node.js c'est une centaine de ligne de code à comparer au millier de ligne de code d'un lemonldap (ou lemnladap::ng)

Tout est parti de cet article :
A HTTP Proxy Server in 20 Lines of node.js Code . Dans ce,  post  Peteris Krumin explique comment réaliser un proxy web en 20 lignes de javascript. En ajoutant quelques lignes de plus cela est devenu un reverse-proxy.

Je vais tacher maintenant de completer le projet avec de la documentation.


Comment utiliser lemon:node.js :

Les prérequis sont :
L'installation de node.js
L'installation de npm : le gestionnaire de module pour node
Le module api_request

Coffeescript  n'est utilise que pour modifier le source. Le projet contient les sources coffee et le javascript généré.









mardi 22 novembre 2011

Le prochain défi du SSO ( signle sign on): faire simple

Le principe du SSO date maintenant d'une bonne dizaine d'année. j'ai travaillé sur lemonldap puis le projet lemonldap::NG (NG pour Nouvelle Gendarmerie et non pas Next Generation)  a pris la suite. Mais depuis, il n'y a rien de vraiment innovant dans ce domaine. La gestion d'identité devait etre un élément stratégique pour les editeurs , les frameworks , les entreprises et les fournisseurs d'identité. Tout ça est retombé comme un soufflet à la guimauve. Chacun compte ses pertes sur le champ de bataille. Que reste-t-il de tout ca ?

Les fournisseurs d'identité et les protocoles: les grands vainqueur sont les sites offrant des services d'authentification basés sur le protocole oauth : exit liberty alliance et SAML. Tous les grands sites comme facebook , twitter, google ont emboité le pas à ce protocole.

Les parefeux applicatifs: on reste sur des équipements en frontal à base d'apache ou de  tomcat  (rupture de flux) ou en service de redirection  (CAS).

Le service d'authentification: S'authentifier auprès d'un annuaire LDAP est cohérent dans la mesure où les équipements les plus hétérogènes peuvent dialoguer avec un service LDAP. En revanche , utiliser un annuaire LDAP comme stockage  d'habilitation est une solution  inadaptée.  Une base de données est plus performante pour cela , notament grace à la puissance du SQL.

Devoir utiliser deux systèmes (LDAP et base de données)  pour rendre le service du SSO est génant. Les administrateurs systèmes préfèrent ne gérer qu'un seul type d'équipement. C'est pour cette qu'un système de stockage NoSQL peut tirer son épingle du jeu.

La mise en place d'un SSO au sein d'une entité reste une opération compliquée, intrusive et structurante. Le SSO introduit un point de  fragilité dans les architectures.  Il faut des serveurs , le plus souvent doublés: tout cela coute cher  et rend  les applications interdépendantes.


Les SSO sont des constructions délicates et réservées aux experts. 
Illustration: machine de Rube Golberg

Est ce qu'il ne serait pas possible de faire des systèmes de SSO SIMPLE ? 


La réponse est : OUI

samedi 19 novembre 2011

Conférence sur coffeescript

Dans cette vidéo,  David Kinney de Redpoint Technologies présente les avantages de coffeescript.
J'ai réalisé le montage suivant à partir de sa présentation :
Dave met en parallèle la grosse bible : guide définitif de javascript et le petit fascicule sur les bons morceaux de javascript. C'est vrai qe javascript PLUS que tous les autres langages est une arme dangereuse à ne pas mettre en toutes les mains.


La preuve cette petite expérience:
Sur une console lancer  le calcul : '10' + '4'  puis '10' -'4'
Le résultat est là:


node
console.log('10' + '4')
104
console.log('10' - '4')
6



Surprenant !


Aussi coffeescript permet d'éviter la plupart des pièges de javascript tout en générant du javascript propre.

En plus il fournit des opérateurs qui simplifie la vie comme par exemple le '?'

Sa présentation se termine par l'intégration dans  rails 3.1 de coffeescript

La video :

CoffeeScript: A New Brew by David Kinney, Redpoint Technologies from ChicagoRuby on Vimeo.

samedi 5 novembre 2011

Livre électronique kindle

Je me suis laissé tenter par un livre électronique kindle d'Amazon.
Vendu au prix de 99 Euros sur le site d'amazon
Apres un jour d'utilisation et de test , je tire mon chapeau aux concepteurs , c'est un superbe appareil. Chaque kindle est muni d'une adresse mail. Je me suis rendu sur la librairie  Pramatic programmer chez qui j'avais  déja acheté une dizaine de livre au format PDF.
Sur leur site, j'ai demandé à télécharger mes ouvrages au format MOBI (kindle) . L'éditeur a proposé de me les envoyer directement sur mon appareil via son adresse mail. Quelques minutes après, mes bouquins étaient installés sur le kindle grâce au wifi. Ce matin j'ai acheté le journal via amazon. Là , la mise en page n'est pas parfaite: des mots sont collés. 
Le confort de lecture est très bon. 

Concernant la conversion des pdf ou des epub vers mobi. Le service de mail peut aussi convertir un document (mette convertir dans l'objet) sinon j'utilise depuis longtemps le produit 'calibre' pour gérer tous mes bouquins, il intègre des convertisseurs.
Cette liseuse peut stocker 1400 livres avec une autonomie d'un mois. 
Il est possible de gérer directement son kindle en la branchant au port USB d'un PC. 
Le contenu des répertoire est le suivant: 





Le répertoire document contient vos livres, le répertoire système les collections.

Le fichier collections est au format json ! Normal, amazon est un sponsor très actif des nouvelles technologies comme javascript, node.js  et Ruby. 

mercredi 2 novembre 2011

Un nouveau job : les curateurs , curators

Il existe un nouveau type de site Internet : les sites de 'curation'.
Wikipédia nous donne la définition suivante:

La curation de contenu (de l'anglais content curation ou data curation) est une pratique qui consiste à sélectionner, éditorialiser et partager les contenus les plus pertinents du Web pour une requête ou un sujet donné. La curation est utilisée et revendiquée par des sites qui souhaitent donner une plus grande visibilité et une meilleure lisibilité à des contenus (textes, documents, images, vidéos, sons...) qu'ils jugent utiles aux internautes et dont le partage peut les aider ou les intéresser.
La curation de contenu s'inscrit dans la mouvance du Web sémantique, un écosystème plus organisé qui permettrait aux machines de traiter plus intelligemment les requêtes des internautes et d'afficher des pages de résultats plus pertinentes.


Je tente l'expérience depuis quelque temps avec le site scoopit.com.  

J'essaye , de faire le tri dans les sites sur les sujets qui m’intéressent.  Les voici en vrac :

 Ce système a été repris par delicious.com qui propose des 'stacks' ciblées sur un sujet.
Le travail de curation de contenu va prendre une importance stratégique pour  la communication d'une entreprise. On reviens aux premiers temps des moteurs de recherche où l’indexation se faisait à la main. 
Nous voici entré dans l'ère du web 3.0 , du web sémantique.