samedi 9 octobre 2010

Après java ? Lava !


Alors que java devrait normalement s'intégrer dans les nuages (cloud) , c'est l'inverse qui se passe : des nuages sombres penetrent dans les cieux de Java.

La grand messe JavaOne qui est d'habitude l'occasion d'annoncer des nouvelles promesses technologies et des nouveaux Everest à gravir, etait placée sous le signe de la morosité cette année. RCLE a un peu foiré sur cet évènement. A tel point que les accros de java se posent des questions. Avec comme illustration le post suivant :
Is it time to fork Java? (il est temps de créer une nouvelle branche java)

L'auteur propose un nom 'lava' (la lave). Il a assité à la javaOne et il reparti avec le sentiment que dans un avenir porche , RCLE va faire en sorte d'avoir un JDK basique gratuit mais limité , et un JAVA/JDK optimisé destiné aux entreprises ou aux fabriquants de mobile. Cette version serait payante. Les menaces de développement d'un JDK et d'un java entièrement libre de droit , portés par une fondation (comme mozilla) sont les moyens les plus surs d'infléchir la tendance.

Toute cette agitation a fait dire à un des créateurs de java (James Gosling ) :The shit finally hits the fan.... (la merde a atteint le ventilateur) lire ici. Avec en prime des motifs pour des t-shirts


Le débat se poursuit sur des groupes de discussion google... http://groups.google.com/group/javaposse/browse_thread/thread/21b313a55ca4511e#
et sur http://sacha.labourey.com/2010/10/04/time-to-fork-java-si-vis-pacem-para-bellum/ (Si tu veux la paix prépare la guerre)

mercredi 6 octobre 2010

postgreSQL : de plus en plus fort

La CNAF a terminé ses migrations de base de données vers du Postgresql sur linux. Cela représente 168 bases pour 4 To de données. L'architecture répond à 1 milliard de transaction SQL / jour. Cette opération vient à la suite de celle de Méteo France qui possède des bases Postgresql de près de 3,5 To.

Pendant ce temps Oracle continue sa diversification et provoque des vagues dans toutes le communautés héritées de Sun , jugez plutôt:
* Mysql : le responsable du projet commence à forker (créer une nouvelle branche) vers une version libre du moteur de Mysql : Maria.
* Openoffice: La communauté a pris ses distances en créant une fondation : Libreoffice
* Java : quel sera le Java de demain ? Oracle se veut rassurant mais sans plus. Alors qu'il y avait qu'un Java, on pourrait voir émerger plusieurs déclinaisons de java avec leur propre machine virtuelle.
* Le socle Linux: oracle lance son socle propriétaire Linux
* Abandon du projet opensolaris


A signaler : le numero d'octobre 2010 (131) de linux magazine détaille la mise en place de la réplication Postgresql.

lundi 27 septembre 2010

Le cross domain authentification ou comment envoyer un cookie d'un domaine à l'autre

Pour maintenir une session le protocole du web (HTTP) ne prévoit pas vraiment de mécanisme. Il faut pour cela utiliser les cookies (RFC 2109). Mais un cookie par mesure de sécurité ne relève que d'un seul domaine. Le client (navigateur) ne doit accepter des cookies que pour le domaine de l'url consultée. Et il ne doit les présenter que sur le domaine en question.

Alors comment passer un cookie d'un domaine à l'autre ?. Cette opération peut etre 'légale' dans un but de propagation d'information (authentification ou autre) ou illégale afin de capturer les cookies.
Dans les deux cas la technique est un peu similaire.

Le serveur web sur le domaine appli.domainA qui veut récupérer le cookie déposé par appli.domainB (donc un domaine diffèrent) va dans une des pages de l'appli.domainA inserer un lien vers une ressource de appli.domainB. Pour que le processus soit invisible pour l'utilisateur on utilise souvent un lien vers une image de taille de 1 pixel. Le gestionnaire de l'appli.domainA doit évidemment avoir accès à la location sur domainB qui héberge cette image pour enregistrer les cookies.

L'autre méthode utilisée pour propager la session d'un domaine à un autre est le cross domain authentification: Le site domainA qui veut passer la valeur de son cookie à domainB va réaliser une redirection de domainA vers domainB en passant en paramètre la valeur de son cookie , comme par exemple :
get http://appli.domainB/service?cookiesurdomainA=valeur.

Cette technique pose plusieurs problèmes:

Quel est le nom du paramètre, de l'url du service , du mode d'encodage et sur quelle url rebrancher l'utilisateur.

Les protocoles Oauth , openID servent à normaliser tout ceci.

Temps d'inactivité.

Dans un système où un utilisateur travaille sur 5 domaines, on peut imaginer un dispositif de controle du timeout (temps d'inactivité ) de la session.
Chaque domaine dépose un cookie mis à jour à chaque sollicitation.
En ca de timeout détecté par un domain , il interroge successivement les autres domaines pour collecter l'état du compteur inactivité. En fonction du résultat collecté , le serveur valide ou invalide le timeout. L'url servant de support aux interrogations serait de la forme : get http://serveur.domainSuivant/timeout?cookiedomainA=30min&cookiedomainB=0 etc.
Il est plus facile de réaliser ce montage en définissant un domaine maitre et des domaines esclaves.

Le processus de connexion pourrait etre le suivant :



dans l'implementation du Lemonldap le CDA est construit sous la forme d'une redirection:
print CGI::redirect($controlslave."?op=$session_id&url=".$urlc);

Qui va donner : http://serveur.domaine?op=valeur_cookie&url=url_de_retour

vendredi 24 septembre 2010

Distribution ubuntu sur un ASUS eeePC



En voulant installer Erlang OPT sur un asus eeepc/xandros , j'ai saturé le système de fichier racine. J'ai commencé par ré-installer la distribution d'origine xandros. Cette distribution est maintenant bien vieillotte.

J'ai tenté l'expérience d' une version ubuntu pour eeepc.

Pour cela il faut préparer une clé USB : la rendre bootable et y installer une image du système.

Préparation
Pour preparer la clé : linux live USB creator.


Cette étape peut etre réalisée sous Linux ou windows.
La clé doit faire 1 go.
Le programme vous demande de choisir l'image iso du système.

J'ai utilisé l'image : ubuntu-10.04.1-desktop-i386-fr.iso
(à télécharger sur le site ubuntu)

Boot sur la clé.

Pour booter sur la clé, il faut qu'elle soit détectée comme telle.
Dans l'assus eeepc : mettre la clé, allumer la machine et maintenir la touche F2 enfoncée.
Aller dans l'option Boot => Hard disk Drives: mettre la clé (usb:nnn) en disque 1.
Aller dans l'option Boot => Boot Device Priority et mettre en 1 la cle usb.

Appliquer les changements et démarrer.....
C'est tout !

Après l'installation du système, il faudra retourner dans le bios pour enlever le boot sur la clé USB.

Il est possible d'utiliser UBUNTU à partir de la clé sans l'installer sur son asus eepc.

Conclusion ... c'est de la bombe.

jeudi 23 septembre 2010

Nouvelle version 9.0 de postgresql


La nouvelle version majeure de postgresql 9.0 propose :

* Authentification par un annuaire LDAP ou par serveur RADIUS
* Réplication interne en continu
* Reprise à chaud des données (cette fonctionnalité se chiffre en milliers de dollar chez les produits propriétaires)
* Extension des procedures stockées Perl et Python pour le PS/SQL.
* Nouveaux points de trigger

Et des optimisations à tous les étages.

samedi 18 septembre 2010

#rails vs #java : video



Cette video reprise par le blog http://www.geeek.org/post/2007/05/20/Ruby-on-Rails-vs-Java

Illustre la complexité d'une architecture java JEE.

Dans les commentaires du post quelques perle dont une très plaisante :

comparer par exemple php (et rails) à java c'est comme comparer une twingo à une mercedes classe S.

Ruby ne rend pas forcement vos développements meilleurs , il rend VOS DEVELLOPEURS meilleurs (AMHO je crois qu'ils les rend plus intelligents)

lectures , romans

J'ai profité des vacances pour lire des romans. J'ai particulièrement apprécié deux livres:


The blonde de Duane Swierczynski: Une belle blonde empoisonne un homme et lui propose le marché suivant: elle lui donne l'antidote s' il s'engage à ne pas s'éloigner d'elle de plus de 10 mètres. Ca ressemble au style de Pulp Fiction.



Enfant 44 de Tom Rob Smith : Un un ex-policier du MGB, police d'Etat chargée du contre-espionnage, se lance sur la piste d'un serial killer dans la russie du temps de staline.


Mais je vous rassure, j'ai également aimé :

CouchDB : Beginning CouchDB



Nginx : Nginx HTTP Server