vendredi 22 avril 2011

petit break 4Clojure

Bonjour à tous,

Çà faisait longtemps que je n'avais pas posté sur ce blog. Emploi du temps chargé, contraintes personnelles ...

Bref, histoire de voir si je n'étais pas trop rouillé, j'ai participé cet après-midi aux épreuves de 4clojure. Un site qui propose un ensemble de petits exercices pour tester vos connaissances en Clojure. Un interpréteur en ligne permet de tester vos réponses sous forme de code. L'un des aspects ludiques de ce site est qu'il propose un classement en fonction du nombre de réponses correctes fournies.


Il est clair que j'étais assez fier de me retrouver en tête du classement. Ok, les exercices ne sont pas méga-complexes, mais quand même, après autant de temps de pause dans la programmation, çà fait plaisir et cela donne du courage pour la suite du projet ClojAdventure.

vendredi 4 février 2011

04 - le flux général des données

Dans le post précédent, nous avions commencé à parler de modèle client, de transformation xsl ou de css. Afin de mettre tout cela en perspective, nous allons présenter le flux général des données auquel nous pensons à priori pour Clojadventure. En voici le schéma :

flux de données

Décrivons les étapes du flux de données :
  1. l'utilisateur interagit avec son navigateur web;
  2. le navigateur envoie une requête Http au serveur;
  3. le serveur renvoie dans la réponse Http le 'modèle client' :
    1. en fonction de l'action et de l'état courant, un nouvel état est créé. Utilisation du 'modèle serveur';
    2. cet état est sauvegardé en base. Utilisation du 'modèle de stockage';
    3. une vue partielle du nouvel état courant est assemblé. Utilisation du 'modèle client';
    4. cette vue est convertie en au format XML;
    5. ce 'modèle client' au format XML est retourné au navigateur web;
  4. le client interprète le 'modèle client' pour générer un rendu HTML :
    1. une transformation XSL permet de générer la structure HTML cible;
    2. le navigateur crée un rendu visuel à partir du HTML et des propriétés CSS;
  5. l'utilisateur obtient le retour visuel de sa requête.

Les principaux axes de travail identifiés afin de mettre en oeuvre ce flux de données sont :
  • la gestion des requêtes http : en se basant sur Google App engine et les librairies clojure;
  • le modèle serveur : en fonction du modèle client;
  • la gestion du stockage : en se basant sur Google App engine;
  • le modèle de stockage : en fonction du modèle serveur;
  • les modèles client : en fonction des écrans;
  • la conversion des données en xml : cf librairies clojure;
  • la transformation xsl : mise en place des techniques;
  • les fichiers XSL : en fonctions des écrans;
  • les fichiers CSS : en fonctions des écrans.

Ces axes seront développés dans les posts à venir.

jeudi 3 février 2011

03 - modélisation

Avant d'aller plus loin dans la description des environnements de développement, j'aimerai vous parler un peu de la phase de modélisation du projet.

Nous utiliserons l'outil UMLet. Petit outil gratuit permettant une modélisation UML complète et customisable tout en restant très simple et intuitif d'utilisation. Bon nombre d'éditeur devrait s'inspirer de la conception de ce petit outil.

Nous utiliserons une méthodologie itérative. L'idée pour modéliser un logiciel existant est simple, vous prenez un écran et vous modélisez ce que vous voyez. Puis vous prenez un autre écran et vous affinez votre modélisation ainsi de suite. Enfin, vous complétez par toute information dont vous disposez par ailleurs.

dimanche 16 janvier 2011

SyntaxHighlighter et Blogger

Après quelques posts sur ce blog, la question se pose sur le formatage du code publié. Comment formater mon code source dans Blogger, si possible avec des barres de défilements ?

Après quelques recherches, je trouve deux outils ayant un mode pour Clojure : SyntaxHighlighter et prettify. Le premier a l'avantage de permettre l'affichage des barres de défilements.

Comment j'ai intégré SyntaxHighlighter à Blogger :

mardi 11 janvier 2011

02 - Hello World en clojure

Deuxième étape dans la réalisation du projet 'clojadventure'.

Objectif : mettre en ligne une application très simple en utilisant GAE (Google App Engine) et Clojure.

Spécifications :
  • afficher "HelloWorld" sur la page d'accès;
  • réécrire les fichiers Java en Clojure.
Prérequis :
  • avoir un compte google actif;
  • sdk Google Appengine installé. cf partie 01;
  • ant installé. cf partie 01.
Actions :