AlcionTech

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 30 avril 2010

Le site d'Alcion Group fait peau neuve

Après près de trois mois de travail, la nouvelle version du site web d'AlcionGroup a vu le jour.

A première vue, pas beaucoup de différences avec l'ancienne mouture, si ce n'est le bandeau bas faisant défiler les articles du blog... Mais s'arrêter à cette analyse ne ferait pas honneur au travail de notre administrateur, qui a totalement revu le moteur du site (en se basant sur le CMS Open Source Joomla), et qui a fait un énorme travail d'adaptation de la charte graphique (CSS, Javascript, etc.) à ce CMS, justement pour que ce grand changement technique se remarque un minimum dans le résultat final.

C'est un pari qui a visiblement été réussi ! Souhaitons donc maintenant une bonne continuation à ce nouveau site dont le contenu sera très prochainement enrichi !

lundi 1 décembre 2008

Javascript bouscule le modèle MVC

Vu sur Advogato : Javascript bouscule le modèle MVC.

''When HTML first came out, browsers could have been called "Application Thin Clients", if the buzzword had been in use at the time. The introduction of javascript made it possible to execute code on the client, and this turned browsers into something much more than just a "display" mechanism.

Before Javascript, Web application development was simple: everything was done server-side. The concept of MVC - Model View Controller - was easy: the HTML was generated, and that was the view. With Javascript being a full-blown programming language, the lines are being blurred between which code is responsible for the View, the Controller and even the Model. The resultant split of responsibility across client and server in wildly diverse programming languages is driving many developers to alternative technologies such as Flash, and causing headaches for those Web developers who remain.''

lundi 28 janvier 2008

Perl, pour quoi faire ?

Choisir le bon outil pour le bon usage... Facile à dire !
Un petit article qui résume ce que l'on peut faire avec Perl :

  • pattern-matching : en ligne de commande, recherche dans des fichiers
  • in-place editing : en ligne de commande, rechercher/remplacer dans des fichiers
  • shell scripts : en Perl, on peut faire plus lisible (hum ?), plus puissant,
  • manipulation rapide de base de données : rapport...
  • tout ça en cross-platform.

et ce qu'il vaut mieux éviter :

  • des applications temps-réel ou haute performance,
  • des scripts shell que l'on pourrait écrire en shell, et/ou ayant besoin de performance
  • du développement web,
  • d'utiliser toute la puissance de la syntaxe Perl, qui peut vite rendre le code illisible.

D'autres articles dans la même série : Javascript, pour quoi faire, et PHP, pour quoi faire ?

lundi 10 décembre 2007

Mashups cartographiques...

MapifiedKayak.screenshot.jpgJe me fais un petit peu de pub:

Si vous êtes intéressés par les technos du Web 2.0 (javascript, html, css, php,...) et la représentation cartographique de données, je vous invites à faire un passage par mon site perso. Vous y trouverez plusieurs projets de veille technologique sur ces sujets, dont un à même eu le privilège d'être 'Mashup of the day" sur programmableweb.com.

  • Mapified Kayak: une jolie couche de présentation pour le métamoteur de recherche de voyages Kayak, et la possibilité de rechercher plusieurs destinations et dates d'un coup (Google Maps + Kayak API).
  • Overflown Countries: pour savoir quels pays vous survolez lors de vos voyages (Google Maps + Geonames API).
  • Mapified Stock Indices: une présentation géolocalisée des variations d'indices boursiers asiatiques (Google Maps + Geonames + Dapper API).
  • Mapified Rss: pour géolocaliser n'importe quel flux RSS et mettre en surbrillance les pays (Google Maps + Geonames API).
  • GoogleMaps vs YahooMaps: les 2 cartes sur la même page pour comparer facilement les niveaux de zoom disponibles. Une fonction de synchronisation est fournie (Google Maps + Yahoo Maps API).


Bien que personnels, ces projets constituent également des démos pour présenter notre offre E-business et les compétences des ingénieurs d'Alcion dans ce domaine. Dans cette optique, si vous êtes vous-mêmes ingénieurs d'Alcion, n'hésitez pas à faire partager vos projets logiciels sur ce blog.

mercredi 5 décembre 2007

Slides de l'open bar GWT (Google Web Toolkit)

Disponibles au téléchargement ci-dessous (lien "une annexe").
dilbertFlashJS.gif

lundi 19 novembre 2007

OpenBar Alciontech le 29 novembre : le client riche en Java, c'est facile avec GWT et JavaFX

ajax.jpgCe mois-ci, une conférence pleine de bonnes nouvelles : on peut développer des écrans portables et sexy en Java, sans avoir besoin de connaître Javascript !

En introduction, un coup de projecteur sur JavaFX, sur le thème de "comment faire du flash, en java".

En plat principal, GWT, un framework qui a le potentiel de changer la donne. Il permet de réaliser des applications Ajax portables, en Java. Ses caractéristiques principales sont :

  • il est open-source ;
  • il n'impose pas d'apprendre javascript pour faire de l'ajax,
  • il absorbe les nuances de navigateurs,
  • il gère automatiquement des concepts de haut niveau comme la sérialisation, les appels RPC, et la traduction de code java->javascript pour exécution des traitements locaux au navigateur, ce qui est une petite prouesse.

Après 6 mois sur le terrain, il commence à être adopté par certains de nos clients.

Thierry a travaillé quelques semaines sur GWT. Il vous en expliquera les concepts, les principes de développement et vous fera une démo couvrant le design d'écrans, le remoting et l'exécution de code au sein du navigateur.


Que vient faire ici ce barbu frisé ? C'est Ajax le Grand, héros de la guerre de Troie... ;-)

lundi 15 octobre 2007

Des widgets aux mapplets

UPDATE DU 16/10/07: En complément du blog officiel de Google Map, je vous recommande le blog Google Maps Mania qui regorge d'informations fascinantes sur les mashups possibles avec Google Maps.

BILLET ORIGINAL:

Le 11 juillet dernier, Google annonçait le lancement d'un nouveau service appelé Mapplets. Il s'agit de mini-applications insérables dans google map, comme le précise le site officiel. Un certains nombres sont déja disponibles dans le Google Map Directory et sont pour la plupart superposables pour faire du recroisement d'informations.
L'intérêt des Mapplets est identique à celui des Widgets web: permettre aux utilisateurs d'installer gratuitement les services de tiers dans leur application & pages web. C'est à la charge de votre business model d'évaluer comment rentabiliser l'opération (un chercheur d'hôtels ou de cinémas avec commisions).

D'un point de vue technique il est très facile de transformer une application utilisant Google Map en Mapplet en suivant le protocole proposé. Et c'est ce que nous allons faire avec notre visualiseur de variation quotidienne des bourses asiatiques exposé dans le billet précédent. L'idée maitresse est d'encapsuler le code html, css et javascrit dans un fichier XML qui est servi en tant que mini page web (dans des balises <iframe>) sur le site de Google Map. Le fichier XML doit-être accessible depuis l'internet pour être récupéré à la demande par Google.
Notre application est accessible ici et insérable dans votre map en activant ce lien (Vous devez posséder un compte Google).

mapplet.screenshot.gif

L'opération a pris environ 1h mais l'application initiale était déja parfaitement fonctionnel. Le développement from scratch est plutôt délicat et nécessite de farcir son code d'alert(). Il est plutôt conseillé de développer dans un 1er temps une application standard AJAX puis de la mappletiser. Par ailleurs le code source est parfaitement lisible et donc récupérable par d'autres mais c'est le jeux: la plus-value de votre application vient du mode de présentation des données aux utilisateurs, pas de son algorithme.

PS: Sur le plan fonctionnel, on a maintenant une largeur de barre proportionnelle à la capitalisation boursière du pays. Par exemple, le marché japonais (4872 milliards $) n'a pas la même envergure que l'indonésien (166 milliards $) et cela est mis clairement en évidence.

vendredi 12 octobre 2007

API de Google et Yahoo! map

Dans un billet précédent de ce blog, nous avions vu qu'il était possible de construire des flux rss (dapper) et de géolocaliser leur contenu (yahoo!pipe). Nous avions pris comme exemple les variations des indices principaux des bourses asiatiques.
La présentation par défaut sur la page du pipe a le bon goût d'exister mais convenons que le rendu n'est pas percutant. Il faut en effet cliquer sur chaque marqueur pour avoir les informations.
L'idéal serait d'avoir des marqueurs représentatifs de la variation de l'indice, vert quand positif, rouge quand négatif, avec une taille proportionnelle à cette variation.
Pour arriver à ce résultat, il faut un peu programmer. Un API maps est fourni par Google et Yahoo! donc nous allons travailler avec les 2 pour comparer.
Le principe est relativement simple, dans chaque carte (YMap et GMap), pour chaque pays présent dans le flux RSS, on ajoute un marqueur (YMarker, GMarker) personnalisé (YImage ou GIcon). La hauteur du marqueur est ajustée par la formule Math.round(Math.abs(fChange) * 20) et donc d'avoir une hauteur de 20px pour une variation d'indice de 1%. Le fichier source est disponible en annexe (fonction fFillYahooMapWithGeo et fFillGoogleMapWithGeo).
Les résultats sont visibles ci-dessous, avec à gauche Google en haut et Yahoo en bas.

google.map.asian.stock.daily.change2.jpg yahoo.map.asian.stock.daily.change2.jpg

Sur le plan fonctionnel, un léger avantage à Yahoo! qui permet d'afficher un label par un simple passage de la souris sur le marqueur alors que Google nécessite de cliquer dessus.
Les métriques ne font pas apparaitre de différences significatives entre les 2 API:

  • Temps de chargement: environ 4s,
  • Nombre de requêtes: légèrement plus pour Yahoo (71 contre 54),
  • Octets téléchargés: environ 400kO,
  • Nombre de lignes de code propres aux API: une dizaine.

Les 2 API offrant un services de géolocalisation, nous pouvons donc essayer d'utiliser directement le flux RSS de Dapper (non géo-localisé) et confier la tâche de géolocalisation aux API. Yahoo le permet très simplement en remplacant un paramètre d'entrée du constructeur de YMarker mais les requêtes sont synchrones (fonction fFillYahooMapWithoutGeo dans le source). L'API Google est plus délicate à mettre en oeuvre car il faut utiliser un objet GClientGeocoder et utiliser une fonction de callback.
Dans les tests, il a été constaté un léger ralentissement (environ 1s) avec cette méthode à cause d'une plus forte utilisation du réseau (17 requêtes de plus).

Avis subjectif de l'auteur:

  • Aucune API ne se démarque de l'autre. Celle de Google est légèrement plus complexe mais compense par légèrement plus de fonctionnalités.
  • Notre application est bien exigeante en bande passante et temps d'UC puisqu'elle nécessite de mettre en forme le HTML chez Bloomberg, de transférer ce flux de Bloomberg à Dapper qui est alors retraité en RSS, de transférer de Dapper à Yahoo pour géolocaliser, puis enfin de Yahoo au client. Si Bloomberg (ou un autre) fournissait directement le flux rss (idéalement déja géolocalisé et gratuitement), on ne serait pas obligé de faire tout cela :)


PS: La démo utilise l'objet XMLhttpRequest qui n'autorise pas chez Firefox les requêtes hors du domaine courant, alors que si chez IE. Donc

  • si vous utilisez IE, mettez simplement "urlProxy":"" à la ligne 29 dans maps.htm,
  • si vous utilisez Firefox, installez un serveur local (localhost) avec la page php_proxy_simple.php fournie en annexe,

mercredi 3 octobre 2007

L'évolution des langages web

Aujourd'hui les développements web s'articulent principalement autour

Des travaux sont actuellement en cours au sein du W3C pour préparer les évolutions qui seront prises en charge par les prochaines générations de navigateurs.

longue-vue-telescopique.jpgHTML5 (auparavant Web Applications 1.0)
Apple, Opera et la fondation Mozilla se sont associés de manière informelle au sein du Web Hypertext Application Technology Working Group (WhatWG) pour donner naissance au successeur du HTML4.1 figé depuis 8ans. Le W3C a pris ensuite le résultat de ces travaux comme base.
Les specs du HTML5 et de son équivalent XML, appelé XHTML5, sont à l'état de draft.
Pour ceux intéréssés par les nouveautés, un article d'IBM mérite une lecture. La synthèse de la prise en charge par les navigateurs est disponible ici.

ECMA-262 edition 4
A la base du futur Javascript 2, la naissance de la 4eme édition des specs de l'ECMA-262 a été lente et laborieuse pour cause de vision divergente entre Mozilla et Microsoft. Toutes les infos sur l'état courant sont sur un wiki.
On annonce une machine virtuelle et un compilateur JIT (appelée Tamarin dans Mozilla2).

Les microformats
Supportés par Firefox3 et IE8, les microformats visent à faciliter l'extraction automatique de contenu web en attachant de la sémantique aux données. Une introduction se trouve sur le site de référence.

jeudi 20 septembre 2007

Gérer les browsers à l'heure des RIA

valid-css2.pngLes Rich Internet Applications présentent bien des avantages mais il faut leur reconnaitre un inconvénient majeur du point de vue de l'ingéniérie logicielle: l'obligation de gérer différents navigateurs.
Le marché des navigateurs est dominé par 2 acteurs: Microsoft Internet Explorer (avec environ 80% de PDM en légère décroissance) et Mozilla Firefox (avec environ 15% de PDM en légère croissance). Si IE6 domine encore (45% de PDM), IE7 prend petit à petit sa succession (35%). Du côté de firefox, la version 2 est devenue ultra-majoritaire. Le bilan est donc qu'il convient de veiller en ce moment à la compatibilité de son application avec 3 navigateurs dans le cas d'un développement destiné au grand public.
Il existe des technologies permettant de faire abstraction du navigateur comme les applets Java ou Flash mais cela oblige l'utilisateur à posséder une JVM ou des plugins spécifiques (dans la bonne version) ... et l'ingénieur les compétences.
valid-xhtml10.pngUne des grosse tendance de ces dernières années est l'utilisation d'AJAX, ce qui revient à utiliser le javascript, le DOM et les feuilles de styles. Si les choses se passent bien en terme de portabilité avec la syntaxe du javascript, les ennuis apparaissent lorsqu'on accède au DOM, chaque browser ne gérant pas les mêmes entités. Les spécifications du W3C vont vers une standardisation mais celle-ci est lente. On retrouve exactement le même phénomène avec les feuilles de styles (les specs sont ici).

Pour y avoir passé plus d'heures que je n'aurais voulu sur différents projets, il est fondamental d'éviter le champ de mines du cross-browser compliance si l'on veut respecter les délais d'un projet de RIA. Pour cela on s'appuiera au maximum sur les librairies et frameworks disponibles en veillant à régulièrement tester le rendu dans les navigateurs cibles et surtout pas uniquement à la fin des développements.
Notez bien que les librairies ne font pas tout. La RIA Alcionbooks est par exemple non complètement fonctionnelle sous IE dans sa V1.0 malgré l'utilisation de scriptaculous et de nombreuses heures passées dessus par Eric.

mardi 4 septembre 2007

Mesurer un temps de réponse web avec Pingdom tools

Votre page web met trop longtemps à s'afficher... Avant même de procéder à des tests de charge, une mesure unitaire permet d'identifier des causes importantes de sous-performance : latence, temps de construction de la page, débit réseau, complexité du webdesign - feuilles de styles, images...
Ce n'est que dans un deuxième temps qu'une intervention en profondeur - dans la configuration du serveur applicatif, voire dans le code contribuant à la génération des pages - devient justifiée.
L'outil mis à disposition gratuitement par Pingdom, en ligne, permet de procéder à cette première analyse.
http://tools.pingdom.com/fpt/

Les cordonniers étant proverbialement mal chaussés, on constate que notre instance de dotclear - qui motorise ce blog - n'est pas un foudre de guerre...
http://tools.pingdom.com/fpt/?url=www.alciongroup.com/alciontech
Enfin, il faut tenir compte de la localisation de l'outil - aux US - pour analyser les latences mesurées.

vendredi 30 juin 2006

La Française des Jeux accélère son e-business avec Alcion

fdjeux.pngDepuis le 5 juin, on peut enfin jouer aux 17 jeux de tirage, de grattage et de pronostics de la Française des Jeux sur le web (www.fdjeux.com), grâce à la mise en production d'une version totalement nouvelle du site de jeu, en remplacement d'une architecture basée sur un client applet java et un serveur C/C++. Ce sont désormais près d'un million de comptes joueurs qui sont ouverts 24h/24 sur une plate-forme à laquelle AlcionGroup a collaboré de près, tant sur le plan de l'architecture, que de la gestion de projet et de l'industrialisation.

  • Site JSP + jeux Flash/XML/webservices
  • Back-end java, framework propriétaire, Tomcat, Oracle
  • Plate-forme transactionnelle sécurisée full-https
  • Performances : 5000 sessions simultanées, temps de réponse moyen < 0.3s, sur 24 processeurs AIX
  • Système de porte-monnaie permettant le micro-paiement
  • équipe de 10 développeurs + 10 testeurs, sur 10 mois.

Aujourd'hui, la Française des jeux peut espérer convertir une part significative des 8 milliards d'euros de CA vers le online et ainsi jouer dans la cours des grands de l'e-business français, derrière voyages-sncf.com mais dans le peloton de tête des ténors de la VPC (notamment fnac.com). Avec un avantage majeur pour le online : la possibilité de limiter les mises des joueurs, qui sont parfaitement identifiés, dans le cadre de la politique de "jeu responsable". Limitation impossible dans le réseau des points de vente traditionnels. Enfin, deux scoops :

  • en 2007, on pourra également jouer depuis son mobile ; il s'agit d'une tendance lourde, comme on le voit par exemple au Japon ;
  • les systèmes hautement sécurisés rendent honnête. Inutile donc de me demander si j'ai un truc, une martingale ou une backdoor !

jeudi 22 juin 2006

Brèves développement

Téléchargement gratuit de l'ouvrage "All the algorithms you will ever need" www.cse.ucsd.edu/users/dasgupta/mcgrawhill/

Les tutoriaux définitifs HTML, CSS, PHP et Javascript sur le Ron's Guide www.ronsguide.com

10 conseils pour produire du code réutilisable : assécher, spécialiser, découpler http://hoskinator.blogspot.com/2006/06/10-tips-on-writing-reusable-code.html

La programmation fonctionnelle pour les nuls : http://www.defmacro.org/ramblings/fp.html

mercredi 21 juin 2006

Développer en AJAX avec Google

AJAX (Asynchronous javascript and XML) désigne un ensemble de technologies permettant la réalisation d'interfaces utilisateurs utilisables dans un simple navigateur, mais au rendu bien plus dynamique que le HTML. De plus en plus utilisé sur le web grand public (maps.google.com...), AJAX s'étend aujourd'hui aux applications intra/extranet, en mal d'ergonomie. Dès 2002/2003, Alcion a mené un grand forfait pour la réalisation d'une plate-forme de téléconférence couplée téléphone/web, qui reposait sur les principes AJAX.
desktopclone.jpg Depuis quelques semaines, le développement AJAX est entré dans l'age adulte grâce à la décision de Google de distribuer gratuitement le framework utilisé en interne le Google Web Toolkit (GWT). Une des qualités majeures de cette solution est qu'elle est J2EE et épargne l'essentiel du développement HTML/Javascript au réalisateur de l'application. Cela tombe bien, c'était le plus délicat et sujet aux bugs et aux incompatibilités entre navigateurs.
L'assemblage des widgets graphiques est déclaratif et n'est pas sans rappeler Swing, jusqu'aux mécanismes de listeners pour la gestion événementielle :

public class Hello implements EntryPoint {
  public void onModuleLoad() {
    Button b = new Button("Click me", new ClickListener() {
      public void onClick(Widget sender) {
        Window.alert("Hello, AJAX");
      }
    });
    RootPanel.get().add(b);
  }
}


http://code.google.com/webtoolkit/