tag:blogger.com,1999:blog-195193522024-03-20T00:09:50.012+01:00Le web 2.0, c'est pas du buzzLe Web 2.0, c'est pas du buzz... c'est ce que cherchent à montrer au jour le jour des petits gars dans mon genre.JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.comBlogger100125tag:blogger.com,1999:blog-19519352.post-6637495873496285982007-07-16T18:25:00.000+02:002007-07-16T18:31:22.054+02:00Un benchmark des performances des solutions RIA<p><img src="http://www.metalinkltd.com/wp-content/uploads/2007/02/wpfe_benchmark.png" height="175" width="258" /><br /></p><p>J'ai publié cet article ici pour les retardaires qui n'auraient pas encore noté <a href="http://blog.eutech-ssii.com/">le déménagement de ce blog</a>... je vous encourage donc à aller le voir <a href="http://blog.eutech-ssii.com/2007/07/16/un-benchmark-des-performances-des-solutions-ria/">ici</a>, en particulier si vous voulez faire un commentaire (ceci étant officiellement le dernier message à être publié à cette adresse).<br /></p><p>J’avais souligné il y a quelques temps combien le besoin de comparer objectivement les solutions RIA se faisait pressant. J’avais fourni <a href="http://blog.eutech-ssii.com/2007/05/18/les-principales-technos-ria-enfin-comparees/">une première base de comparaison</a> avec les fonctionnalités disponibles dans chacune des technologies et leurs exigences pour être déployées.</p><br /><p>Il manquait deux éléments pour que la comparaison soit valable :</p><br /><p>1- la <strong>productivité</strong></p><br /><p>2- les <strong>performances</strong></p><br /><br /><p><a href="http://bubblemark.com/">Voilà justement un benchmark</a> qui permet une bonne comparaison des différentes solutions en terme de performances. Le code source utilisé étant disponible pour chaque implémentation, on peut aussi avoir une petite idée du potentiel de productivité de chacune de ces technos.<br /><br /><a href="http://blog.eutech-ssii.com/2007/03/23/lheure-du-choix-dune-techno-ria-est-elle-arrivee/">A l’heure du choix d’une techno RIA</a>, un site à visiter et à revisiter sans hésiter…</p>JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com0tag:blogger.com,1999:blog-19519352.post-69154082689658453862007-07-04T14:11:00.000+02:002007-07-04T14:34:31.648+02:00Alerte : Web2rules déménage !J'avais annoncé, il y a environ 6 mois, un déménagement de ce blog afin de bénéficier des atouts de la plate-forme wordpress. Cette heure est aujourd'hui venue : vous pourrez désormais lire mes bafouilles sur <a href="http://blog.eutech-ssii.com">blog.eutech-ssii.com</a> et en finir avec le système de commentaires assez rebutant<br />qu'est celui de blogger.<br /><br />Pensez aussi à changer votre flux RSS : http://blog.eutech-ssii.com/feed/rss2/<br />Pour les fans, le flux des commentaires existe aussi maintenant : http://blog.eutech-ssii.com/comments/feed/<br /><br />Vous pouvez au passage laisser votre impression sur le nouveau look du blog, y compris<br /> avec des phrases du genre "tiens, il a gardé son rose tout pourri ?" ou encore "encore un mec qui se la donne alors qu'il s'est contenté de repomper un thème wordpress !".JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com0tag:blogger.com,1999:blog-19519352.post-17952741762012964022007-07-02T18:40:00.000+02:002007-07-02T19:07:23.759+02:00AIR / Gears : la preuve par ext<a href="http://web2rules.blogspot.com/2007/06/air-ex-apollo-google-gears-mme-combat.html">Mon billet précédent</a> vous annonçait combien AIR et Gears étaient proches dans leur philosophie mais je ne m'attendais pas à une confirmation aussi rapide de cela dans les faits.<br /><br />Pour s'amuser un peu, <span class="date-header"><a href="http://www.jackslocum.com/blog/index.php">Jack Slocum</a> auteur de la très réussie <a href="http://web2rules.blogspot.com/2007/04/ext-openajax-la-plante-ajax-sorganise.html">librairie ext</a>, a décidé de <a href="http://extjs.com/blog/2007/06/29/building-a-desktop-application-with-ext-air-aptana-and-red-bull/">se prendre quelques Red Bull et de coder</a> une application AIR. Résultat ? Il nous pond <a href="http://extjs.com/playpen/Tasks.air">un truc</a> qui marche aussi bien avec AIR qu'avec Google Gears, en nous faisant don au passage d'<span style="font-weight: bold;">une petite couche d'abstraction </span>permettant de coder simplement une application qui fonctionnera sous l'une ou l'autre formule.<br /><br />Les vainqueurs de la vague RIA ne seraient-ils pas déjà là ?<br /></span>JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com0tag:blogger.com,1999:blog-19519352.post-11990275907513238172007-06-29T09:12:00.000+02:002007-06-29T10:26:36.613+02:00AIR (ex Apollo) / Google Gears : même combat !<a href="https://www.blogger.com/comment.g?blogID=19519352&postID=9004196754516943075">Je ne suis pas de ceux</a> qui tracent une ligne rouge entre ce que certains appellent RDA (pour Rich Desktop Application qui s'exécutent hors navigateur) et les RIA (Rich Internet Application qui s'exécutent dans un navigateur).<br /><br />Les marchés, les technologies, les contenus et les possibilités de ces 2 familles sont trop proches pour les considérer comme véritablement distinctes... Je continuerai donc ici de parler de <a href="http://web2rules.blogspot.com/2006/12/apollo-xul-wpf-qui-sera-la-prochaine.html">plate-formes RIA</a> pour des technos aussi différentes que WPF, AIR, Ajax, Flash, Silverlight, XUL, Java ou les plate-formes de widgets : j'excluerai par contre OpenLazlo ou Flex de cette terminologie dans la mesure où ils ne sont que des technologies serveur (pour plate-forme RIA, certes) et non des runtimes.<br /><br />Cette proximité entre des technologies au prime abord assez différentes me paraît d'ailleurs chaque jour un peu plus évidente. Dernier exemple en date avec quelques essais menés sur <a href="http://web2rules.blogspot.com/2007/06/google-gears-une-rvolution.html">Google Gears</a> d'une part et AIR d'autre part.<br /><br />Ces 2 technos partent d'un même principe :<span style="font-weight: bold;"> l'inertie des habitudes</span> de développement web est telle, la concurrence entre nouvelles technos si féroce, que pour s'imposer il vaut mieux accomplir une révolution douce. Et quel est le discours de ces gentils révolutionnaires ?<br /><br />- Continuez à utiliser <span style="font-weight: bold;">vos technos</span> de développement web : Ajax, Flash... ce sont de bonnes technos, et vous avez encore pas mal de clients à satisfaire avec.<br />- Continuez à développer des sites/applications que l'on peut visiter avec un simple navigateur : c'est <span style="font-weight: bold;">une avancée majeure du web</span> qu'il ne faut pas perdre.<br />- <span style="font-weight: bold;">Allez plus loin</span> sur certaines fonctionnalités avec les clients/utilisateurs qui le souhaitent grâce à nos technologies : mode offline, accès aux ressources systèmes.<br />- Soyez rassurés, nos technologies sont convergentes : <span style="font-weight: bold;">Javascript, XML, SQLite...</span><br /><br />Et vous savez quoi ? C'est vrai ! Il n'agit pas simplement d'un discours commercial comme on en a beaucoup entendu ces dernières années. Les quelques essais que nous avons faits mes collègues et moi, nous ont montré que pour une même application <span style="font-weight: bold;">les implémentations AIR et Gears sont très proches</span>... et, ça, c'est une très bonne nouvelle, vous ne trouvez pas ?JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com0tag:blogger.com,1999:blog-19519352.post-48646444599211492942007-06-26T15:23:00.000+02:002007-06-26T15:49:58.522+02:00Traduction de "What is web 2.0" : nouvelle releaseAvec l'aide de Christelle, collaboratrice de passage, j'ai pu compléter les quelques morceaux qui manquaient à la <a href="http://www.eutech-ssii.com/ressources/view/1">version française</a> de "What is web 2.0", l'exposé de la brillante vision de Dale Dougherty et Tim O'Reilly. Tout cela a été mis sur le site de la <a href="http://www.eutech-ssii.com/">jeune et sympathique société</a> de votre serviteur. Les liens de la <a href="http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html">version originale</a> ont également été ajoutés et quelques bourdes corrigées.<br /><br />Ce nouveau petit plongeon dans cet article fondateur a d'ailleurs été pour moi l'occasion de constater que près de 2 ans après, il garde encore toute sa fraîcheur et sa pertinence comme si ses grands principes étaient intemporels...<br /><br />Pour les connaisseurs, quelques raccourcis vers les nouvelles parties traduites (ce sont les pavés latéraux) :<br /><strong><a href="http://www.blogger.com/Une%20plateforme%20gagne%20contre%20une%20application%20%C3%83%C2%A0%20tous%20les%20coups">Une plateforme gagne contre une application à tous les coups</a><br /></strong><strong><a href="http://www.eutech-ssii.com/ressources/view/3">L'architecture de participation</a><br /></strong><strong><a href="http://www.eutech-ssii.com/ressources/view/6">Une thèse de l'investissement dans le Web 2.0</a><br /></strong><strong><a href="http://www.eutech-ssii.com/ressources/view/8">Les modèles de conception du Web 2.0</a><br /></strong>JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com1tag:blogger.com,1999:blog-19519352.post-12540445141928469382007-06-23T16:15:00.000+02:002007-06-25T13:20:03.749+02:00Développement Ajax : quelques clés pour une architecture javascript moderne<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhysKzJ7VY0YsCI4OKvj5w-5jCx71ITnGKOzGFWUbHMBE2-QsfQvkJk_bUpAnd8ZsDVHosqRSgPem89TvO7lpofdvVhf_HPyxS_BtfU82MnfWElsDtyCjWl6t92RroqyMOYVzpN/s1600-h/figure_4.jpg"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhysKzJ7VY0YsCI4OKvj5w-5jCx71ITnGKOzGFWUbHMBE2-QsfQvkJk_bUpAnd8ZsDVHosqRSgPem89TvO7lpofdvVhf_HPyxS_BtfU82MnfWElsDtyCjWl6t92RroqyMOYVzpN/s400/figure_4.jpg" alt="" id="BLOGGER_PHOTO_ID_5079262722854742370" border="0" /></a><br /><br />A l'heure où Ajax se répand au point d'envahir bon nombre des offres d'emploi de <a href="http://fr.crunchboard.com/">certains sites spécialisés</a> et où de plus en plus de code repasse côté client, il devient nécessaire de se poser quelques questions sur l'<span style="font-weight: bold;">architecture</span> des développements Javascript.<br /><br />Ces questions, les voici :<br />1- Utilisera-t-on (ou non) des <span style="font-weight: bold;">frameworks intégrant serveur et client</span> (backbase, GWT, webdev) ?<br />2- Le javascript sera-t-il situé <span style="font-weight: bold;">uniquement côté client</span> ou alors sera-t-il aussi généré par le serveur ?<br />3- Quelles <span style="font-weight: bold;">librairies js</span> utiliser côté client ? comment les articuler ?<br />4- Utilisera-t-on (ou non) Javascript comme un vrai langage objet avec "<span style="font-weight: bold;">espaces de nom</span>" et "<span style="font-weight: bold;">classes</span>" héritant les unes des autres ?<br />5- Quelles <span style="font-weight: bold;">couches</span> distinguer dans le développement Javascript et comment les articuler à la fois entre elles et avec les couches serveur ?<br />6- Quelles<span style="font-weight: bold;"> bonnes pratiques</span> architecturales suivre de manière générale en js ?<br /><br />Je vous donne rapidement MES réponses à ces questions... je tranche assez franchement pour mieux faire naître le débat !<br /><br /><span style="font-weight: bold;">1- Un framework Ajax côté serveur ?</span><br />Non, déléguer la reponsabilité du client à une technologie serveur est une mauvaise idée. Ca vous permettra peut-être un temps d'être plus productif, mais certainement pas sur la durée. Pour traiter les problèmes côté client, il est bien entendu beaucoup plus efficace d'utiliser une technologie cliente... même si ça peut paraître pénible à certains de se (re)mettre à Javascript, XHTML et aux css.<br /><br /><span style="font-weight: bold;">2- le JS côté client uniquement ?</span><br />Oui, autant que cela est possible... les avantages sont nombreux : séparation des couches applicatives claire, performance, productivité du développement sur le long terme.<br /><br /><span style="font-weight: bold;">3- quelles librairies JS ?</span><br />Une et une seule bonne librairie "noyau" (prototype ou JQuery sont mes premiers choix mais il n'est pas interdit de regarder ailleurs... en faisant très attention !) qu'il faut utiliser à fond : plus question par exemple d'utiliser prototype uniquement pour Ajax.Request ! La librairie noyau doit servir à la gestion des événements, la manipulation du DOM et aux appels AJAX dans l'ensemble de votre code.<br />Si vous avez bien choisi la librairie noyau, les éléments qui viennent s'y raccrocher (en particulier les effets graphiques évolués) ne devraient pas vous manquer.<br /><br /><span style="font-weight: bold;">4- des classes et des espaces de nom ?</span><br />Oui, bien sûr ! Même si javascript n'offre pas ces possibilités de manière native, il est tout à fait possible de les simuler et de tirer tous les bénéfices que l'on connaît depuis longtemps côté serveur à ces pratiques. Prototype en est un excellent exemple.<br /><br /><span style="font-weight: bold;">5- quelles couches côté JS ?</span><br />A l'heure où le stockage local devient une réalité dans les applications Ajax, établir une véritable couche d'accès aux données paraît de plus en plus incontournable : lire à ce sujet <a href="http://code.google.com/apis/gears/architecture.html">le très bon brief</a> de l'équipe de Google Gears.<br />De manière générale, les couches côté JS vont ressembler de plus en plus à celles que l'on connaît habituellement "server side" : données / accès aux données / logique métier / interface. Tout le défi va être d'articuler cela avec les responsabilités attribuées au serveur : rien d'infaisable en réalité.<br /><br /><span style="font-weight: bold;">6- les bonnes pratiques architecturales JS ?</span><br />Ce ne sont évidemment pas tout à fait les mêmes que sur une technologie serveur : Javascript est un langage bien particulier (mais pas un sous-langage !) et le client riche pose des problèmes très spécifiques. Cependant, ça n'empêche pas, bien au contraire, d'avoir recours à des motifs de conception pour bien aborder et résoudre la plupart des problèmes : un petit tour sur <a href="http://www.ajaxpatterns.org/">Ajax Patterns</a> sera utile à toute personne qui se pose de bonnes questions sur le sujet.<br /><br />Allez-y, réagissez, indignez-vous, lancez moi des fleurs, insultez moi ! Ces questions-là sont capitales, alors il vaut mieux en parler...JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com5tag:blogger.com,1999:blog-19519352.post-4062097214633110432007-06-14T10:32:00.000+02:002007-06-14T10:58:52.392+02:00Google Gears : tout l'intérêt de WorkerPool en une démoJe reviendrai très prochainement plus en détail sur ce qui risque de changer <a href="http://web2rules.blogspot.com/2007/06/google-gears-une-rvolution.html">Google Gears</a> pour les utilisateurs, les développeurs et les entrepreneurs du web... mais je ne résiste pas dans l'attente au plaisir de vous faire partager une petite démo qui montre tout l'intérêt d'une partie de Gears qui n'a, semble-t-il, pas été apprécié à juste valeur par nombre de lecteurs : <a href="http://code.google.com/apis/gears/api_workerpool.html">WorkerPool</a>.<br /><br />En effet, si les atouts d'<a href="http://code.google.com/apis/gears/api_localserver.html">un serveur</a> et d'<a href="http://code.google.com/apis/gears/api_database.html">une base de données</a> accessibles en JS sur le poste client paraissent assez évidents, le concept du <span style="font-weight: bold;">workerpool</span> l'est moins. Rappelons-le. Le workerpool permet de faire fonctionner des morceaux de javascript dans un processus différent des autres. Ce n'est pas vraiment un "<span style="font-weight: bold;">thread</span>", mais ça a le même goût : les processus créés ne se bloquent pas les uns les autres et sont traités de manière efficace par le système d'exploitation.<br /><br />Pas convaincu ? Après avoir <a href="http://code.google.com/apis/gears/install.html">installé Gears</a>, essayez la démo suivante <a href="http://n.a.edgar.googlepages.com/mandelbrot-gg.html">avec workerpool</a> et <a href="http://n.a.edgar.googlepages.com/mandelbrot-nogg.html">sans workerpool</a>... on reparlera ensuite <a href="http://web2rules.blogspot.com/2007/04/tamarin-le-futur-de-javascript-par.html">des limites de performance de javascript</a> !JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com2tag:blogger.com,1999:blog-19519352.post-58708985184203075342007-06-02T17:38:00.000+02:002007-06-02T17:52:03.331+02:00Google Gears... une révolution ?Je ne pouvais décemment pas passer à côté de la sortie du projet sur Google <span class="blsp-spelling-error" id="SPELLING_ERROR_0">Gears</span> après tous mes articles sur le <span class="blsp-spelling-error" id="SPELLING_ERROR_1">web</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_2">offline</span>. Faute de temps, il va néanmoins me falloir faire (très) court sur le sujet pour le moment.<br /><br />Google <span class="blsp-spelling-error" id="SPELLING_ERROR_3">Gears</span> arrive en 3 morceaux : <span class="blsp-spelling-error" id="SPELLING_ERROR_4">workerpool</span> (une solution pour faire tourner le <span class="blsp-spelling-error" id="SPELLING_ERROR_5">JS</span> hors du <span class="blsp-spelling-error" id="SPELLING_ERROR_6">runtime</span> habituel du navigateur), <span class="blsp-spelling-error" id="SPELLING_ERROR_7">localserver</span> (un <span class="blsp-spelling-error" id="SPELLING_ERROR_8">mini-serveur</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_9">web</span> pour page stockées en cache) et <span class="blsp-spelling-error" id="SPELLING_ERROR_10">Database</span> (une base de données <span class="blsp-spelling-error" id="SPELLING_ERROR_11">SQLite</span> munie d'une API Javascript).<br /><br />Cela n'a pas grand chose à voir avec l'approche de <span class="blsp-spelling-error" id="SPELLING_ERROR_12">Dojo</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_13">Offline</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_14">Toolkit</span>, mais c'est tout de même très excitant : cette solution est même techniquement à ce point séduisante qu'elle pourrait à terme être inclue dans les systèmes d'exploitation et/ou les navigateurs. On parie ?JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com2tag:blogger.com,1999:blog-19519352.post-90041967545169430752007-05-18T17:09:00.000+02:002007-06-06T09:34:26.960+02:00Les principales technos RIA enfin comparéesCela faisait un moment que je recherchais un comparatif clair entre les technologies RIA majeures : n'ayant rien trouvé de satisfaisant, j'ai décidé de faire mon propre comparatif.<br /><br />Vous trouverez donc ci-dessous <span style="font-weight: bold;">Flash, Ajax, Apollo, WPF, Silverlight et Java</span> comparés au regard des critères qui permettent - pour moi - d'apprécier une technologie RIA : <span style="font-weight: bold;">dessin vectoriel, animations, multimedia, mode offline, 3D, accès système, besoin d'installation, cross-platform</span>.<br /><br /><table style="width: 456px; height: 260px;" border="1" cellspacing="0" cols="9" frame="box" rules="groups"><tbody><tr><td bg="" style="color: rgb(255, 255, 255);" align="center" height="37" width="80"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);"><br /></span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center" width="78"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Des. Vect.</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center" width="80"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Animation</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center" width="69"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">3D</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center" width="81"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Multimedia</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center" width="83"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Accès syst.</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center" width="56"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Offline</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center" width="85"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Installation</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center" width="132"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Multi plateforme</span></b></span></td> </tr> </tbody> <tbody> <tr> <td bg="" style="color: rgb(255, 255, 255);" align="center" height="37"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Flash</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Difficile</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Non</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Difficile</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Plug-in</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui (dont mobile)</span></td> </tr> </tbody> <tbody> <tr> <td bg="" style="color: rgb(255, 255, 255);" align="center" height="37"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Ajax</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Limité</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Limitée</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Non</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Non</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Non</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Difficile</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Non</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> </tr> </tbody> <tbody> <tr> <td bg="" style="color: rgb(255, 255, 255);" align="center" height="37"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Apollo</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Difficile</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> </tr> </tbody> <tbody> <tr> <td bg="" style="color: rgb(255, 255, 255);" align="center" height="37"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Silverlight</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Non</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Non</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Non</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Plug-in</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Windows / MacOSX</span></td> </tr> </tbody> <tbody> <tr> <td bg="" style="color: rgb(255, 255, 255);" align="center" height="37"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">WPF</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Non</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Vista / XP SP2 </span></td> </tr> </tbody> <tbody> <tr> <td bg="" style="color: rgb(255, 255, 255);" align="center" height="37"><span style="font-size:78%;"><b><span style="color: rgb(0, 0, 0);">Java</span></b></span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Perfectible</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui</span></td> <td bg="" style="color: rgb(255, 255, 255);" align="center"><span style="color: rgb(0, 0, 0);font-size:78%;" >Oui (dont mobile)</span></td></tr></tbody></table><br /><br />Conclusion ? Java semble être la killer app des RIA ! Le gros problème de ce comparatif, c'est qu'il occulte quelques points importants : performances (et là, Java en prend un coup), et productivité du développement en particulier.<br /><br />Ma préférence personnelle continue à aller vers Ajax dans la mesure où il peut avantageusement tirer partie de toutes les autres technologies selon les besoins. La productivité du développement reste évidemment son gros problème, mais on y progresse indéniablement.<br /><br />Et vous, votre opinion ?JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com5tag:blogger.com,1999:blog-19519352.post-16727126340381067532007-05-11T09:11:00.000+02:002007-05-11T09:24:20.479+02:00HTML 5 sur les rails !Grande nouvelle : le W3C a accepté d'utiliser le travail du WHATWG comme base de spécification pour <a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML5</a> !<br /><br />On peut donc affirmer que les grandes avancées proposées jusque là dans les working draft (la balise canvas, les datagrids, la cohérence HTML/DOM/javascript...) ont désormais de grandes chances d'être officiellement recommandées par l'organisme de <a href="http://fr.wikipedia.org/wiki/Tim_Berners-Lee">Tim Berners-Lee</a>.<br /><br />Je vous invite à relire <a href="http://web2rules.blogspot.com/2007/04/5-bonnes-raisons-de-regarder-html-5-de.html">mon article sur HTML5</a> pour comprendre à quel point cela est une bonne nouvelle...JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com0tag:blogger.com,1999:blog-19519352.post-47210612594170827162007-05-07T12:11:00.000+02:002007-05-07T13:42:23.291+02:00Tamarin : le futur de Javascript par Adobe et MozillaA une époque où le web est la technologie dominante et Javascript son nouveau ressort, on comprend aisément que ce qui peut révolutionner Javascript peut changer beaucoup de choses par ailleurs.<br /><br />Javascript, je l'ai déjà dit à de nombreuses reprises est bourré de défauts, et parmi ceux-ci, ses performances calamiteuses n'est pas le moindre. Or, à l'heure où tout est bon pour faire du javascript, cela peut s'avérer très pénible. Pénible au point que notre web 2.0 se surprend à reprendre des couleurs 1.0, lorsque toutes ces jolies fonctions ajax qui facilitent la vie de l'utilisateur se mettent à patiner à un point invraisemblable. Pire : certaines applications (<a href="http://web2rules.blogspot.com/2007/03/la-3d-le-web-et-javascript.html">comme la 3D</a>) resteront hors de portée de JS tant que ces limitations ne seront pas levées.<br /><br />Une fois encore, le problème de vient pas vraiment de javascript en tant que langage mais plutôt des moteurs d'exécutions embarqués dans les différents navigateurs... et c'est précisément là que <a href="http://www.mozilla.org/projects/tamarin/">Tamarin</a> intervient.<br /><br />Tamarin est le nom de code donné par Adobe à son projet de moteur ecmascript (javascript si vous préférez, la nuance est subtile) destiné à le booster significativement en le compilant Just In Time en code machine (façon Java ou .Net) : une excellente idée... Et Adobe ne s'est pas arrêté en si bon chemin, puisqu'en <a href="http://www.mozilla.com/en-US/press/mozilla-2006-11-07.html">novembre dernier</a>, le code du projet a été ouvert et que le leadership du projet confié à la fondation Mozilla.<br /><br />Résultat ? Les applications web de demain pourront être autrement plus exigeantes que les bricolages d'aujourd'hui ! Pour être plus précis, sachez que FlashPlayer 9 utilise déjà Tamarin et Firefox devrait l'intégrer en 2008 (à l'occasion du passage vers Javascript 2). C'est aussi pour cela qu'à contre-courant de l'actualité, je choisis de parler aujourd'hui de ce projet : parce qu'il crédibilise encore un peu plus Ajax et Flash <a href="http://web2rules.blogspot.com/2007/03/lheure-du-choix-dune-techno-ria-est.html">face aux alternatives RIA montantes</a>.JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com3tag:blogger.com,1999:blog-19519352.post-88868113877861857042007-04-24T09:54:00.000+02:002007-04-24T14:53:46.758+02:00Dojo Offline Toolkit : la beta est sortieAnnoncé dès janvier, Dojo Offline Toolkit fait partie de ces projets qui m'ont immédiatement passionné : visionnaire et pragmatique, DOT répond à un vrai problème (le web offline) avec d'excellentes solutions. J'avais d'ailleurs expliqué le fonctionnement de DOT dans un <a href="http://web2rules.blogspot.com/2007/01/dojo-offline-toolkit-comment-va-marcher.html">précédent billet</a>.<br /><br />L'infatigable Brad Neuberg a sorti une première version bêta hier. Je la qualifierais personnellement de version alpha tant il reste de problèmes à résoudre :<br />- seules les plate-formes MacOS X et Windows (hors Vista) sont supportées à ce jour<br />- de nombreux bugs restent à corriger<br />- la couche de persitance en javascript doit devenir plus indépendante de Dojo<br /><br />Malgré tout cela, il faut saluer la performance et ne pas hésiter à commencer les tests (et remonter les bugs) sur cette techno sous license BSD et franchement très prometteuse.<br /><br />Quelques ressources pour aller plus loin :<br /><a href="http://dojotoolkit.org/offline">La FAQ</a><br /><a href="http://codinginparadise.org/editor">Une démo (Moxie, un éditeur de texte... attention bugs !)</a><br /><a href="http://download.dojotoolkit.org/experimental/offline/dot_sdk_0.4.2_2.zip">Le SDK pour les développeurs</a><a href="http://video.yahoo.com/video/play?vid=427145"><br />Une video expliquant l'intérêt du web offline version DOT</a>JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com2tag:blogger.com,1999:blog-19519352.post-81746675435401126192007-04-19T08:35:00.000+02:002007-04-20T13:25:18.614+02:00Google "PowerPoint" : le retour de Java sur le web ?Le web est un truc si riche qu'il retrouve régulièrement de vieilles techniques comme solution à de nouveaux usages :<br />- c'est ainsi qu'on a redécouvert, il y a 3 ans, Javascript pour enrichir les interfaces<br />- que Flash redevient une solution acceptable pour de nombreux problèmes<br />- et que Java pourrait repointer le bout de son nez à la faveur de Google<br /><br />Je m'explique. Google nous a récemment expliqué que son powerpoint maison (prévu pour l'été) utiliserait une technologie venue d'une boîte rachetée récemment (<a href="http://www.tonicsystems.com/">Tonic Systems</a>). Le site de la boîte en question a disparu mais le <a href="http://66.102.9.104/search?q=cache:c24zKuE2ktsJ:www.tonicsystems.com/products/builder/+Tonic+Systems&hl=fr&amp;amp;ct=clnk&cd=2&gl=fr&client=firefox-a">cache Google</a> (!) nous apprend que ces gens proposaient une API Java pour faire du powerpoint.<br /><br />Et alors, me direz-vous ? Et alors, vous dirais-je, il se pourrait fort qu'utiliser Java (côté client) soit une excellente solution pour :<br />- d'une part, faire du <a href="http://web2rules.blogspot.com/2006/11/soyez-cool-soyez-offline.html">offline/online</a><br />- d'autre part, faciliter un certain nombre de fonctions très pénibles pour l'utilisateur web telle que la copie d'images.<br /><br />Si tout ce que je dis se vérifiait, ça pourrait marquer le retour de Java très intéressant à l'époque des <a href="http://web2rules.blogspot.com/2006/12/apollo-xul-wpf-qui-sera-la-prochaine.html">RIA</a>... Et puis jouer les madames Irma ne m'a trop mal réussi jusque là, alors je tente ma chance !JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com3tag:blogger.com,1999:blog-19519352.post-29033192586081078682007-04-14T16:59:00.000+02:002007-04-16T19:13:59.567+02:005 bonnes raisons de regarder HTML 5 de plus prèsIl paraît que les internautes-lecteurs sont friands de listes en tout genre. Racoleur à mes heures, je me plie aujourd'hui à cet exercice sans rien oublier de mon sacerdoce : livrer aux surfeurs échoués ici une véritable valeur ajoutée informative.<br /><br />Avant de lister, quelques mots de présentation : <a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML5</a>, aussi appelé "web applications 1.0" est une proposition avancée par le WHATWG (think tank du web très écouté, à l'origine par exemple du système de cookies persistants de Firefox 2.0) pour succéder à HTML4/XHTML1. HTML5 est donc à distinguer de <a href="http://www.w3.org/TR/xhtml2/">XHTML2</a>, qui couvre les travaux actuels du W3C sur le sujet.<br /><br />HTML5, donc, est un vrai truc emballant, et ce pour au moins 5 raisons :<br /><br /><span style="font-weight: bold;">- HTML5 est pragmatique </span><br />le WHATWG ne préconise pas la révolution, mais une évolution qui saura garder une compatibilité avec les pratiques courantes des développeurs web actuels. Ca embête souvent les puristes mais ça permet d'avancer.<br /><br /><span style="font-weight: bold;">- HTML5 est ambitieux</span><br />On peut être pragmatique mais ambitieux avec des balises comme canvas pour réaliser des graphiques en javascript ou encore l'élément datagrid qui permettrait de résoudre un problème constant des développeurs Ajax.<br /><br /><span style="font-weight: bold;">- HTML5 est ouvert aux contributions</span><br />Les travaux du WhatWG sont ouverts à toutes les contributions (dont la vôtre ?)... contrairement à ceux du W3C.<br /><br /><span style="font-weight: bold;">- HTML5 est pensé pour le web de demain</span><br />HTML5 tente de répondre à un grand nombre d'utilisations modernes du HTML : le contenu multimédia, les applications web, ou les échanges entre internautes. HTML5 assume en ce sens définitivement la rupture avec le langage de structuration de données qu'était HTML à l'origine. XHTML2 fait plutôt le chemin inverse en cherchant à nettoyer HTML de ses incohérences avec ses principes initiaux.<br /><br /><span style="font-weight: bold;">- HTML5 est très suivi de ceux qui font le web</span><br />Mozilla, Opera, Apple ont récemment et très <a href="http://ajaxian.com/archives/proposal-for-the-w3c-to-adopt-html-5">officiellement demandé au W3C </a>d'utiliser le travail du WhatWG comme d'une base de réflexion pour le nouvel HTML... tout en implémentant en parallèle certaines propositions (telles que canvas) sans attendre une quelconque approbation de ce dernier !JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com2tag:blogger.com,1999:blog-19519352.post-86704884334587644172007-04-05T14:44:00.000+02:002007-04-05T17:16:15.129+02:00Ext, OpenAjax : la planète Ajax s'organiseUn des doux rêves que caresse plus ou moins consciemment l'intégralité des développeurs Ajax est de disposer de librairies javascript organisées, modulables et répondant à des normes limitant au maximum les problèmes de compatibilité. Bien loin de penser qu'un tel Graal puisse être atteint à court terme, c'est avec un plaisir non dissimulé que je vous fait part du lancement de la bêta de Ext.<br /><br /><a href="http://extjs.com/">Ext</a> est une librairie qui, à son origine, étendait le noyau de <a href="http://developer.yahoo.com/yui/">Yahoo UI</a> pour mettre à disposition un certain nombre de widgets bien pratiques (calendriers, onglets, sliders...). Bien architecturée, la librairie a pu être rapidement adaptée pour se passer du noyau YahooUI, pour le remplacer par l'excellent <a href="http://jquery.com/">JQuery</a> ou encore le célèbre couple <a href="http://www.prototypejs.org/">Protoype</a> + scriptaculous.<br /><br />Ext possède à ce jour une vingtaine de widgets d'une grande qualité, mais aussi et surtout une <a href="http://extjs.com/deploy/ext/docs/index.html">excellente documentation</a> tirant pleinement partie de ext. Au delà de la performance, c'est l'effort de généricité/modularité des auteurs de cette librairie qui me rend optimiste pour l'avenir.<br /><br />Cette démarche me semble s'inscrire dans un mouvement plus général de rationalisation du petit monde Ajax. Autre fait révélateur de ce mouvement, l'<a href="http://www.openajax.org/">OpenAjax Alliance</a> est en train de sortir de l'impasse dans laquelle je pensais qu'elle se trouvait :<br />- Google et Microsoft l'ont récemment rejointe<br />- l'<a href="http://www.openajax.org/OpenAjax%20Hub.html">OpenAjax Hub</a>, un ensemble de spécifications à respecter pour les librairies Ajax produites<br />par les membres de l'Alliance, est sur le point de sortir en version 1.0<br /><br />Il est assez heureux de voir ajax arriver à maturité à l'heure où <a href="http://web2rules.blogspot.com/2006/12/apollo-xul-wpf-qui-sera-la-prochaine.html">les alternatives RIA se multiplien</a>t et où les éditeurs se donnent un mal fou à faire venir les développeurs ajax vers leur technologie.JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com0tag:blogger.com,1999:blog-19519352.post-8537350382093596682007-03-23T14:03:00.000+01:002007-03-26T13:32:19.024+02:00L'heure du choix d'une techno RIA est-elle arrivée ?Les choses bougent sérieusement côté des techno RIA en ce moment :<br /><br />- <a href="http://www.adobe.com/go/apollo/">Apollo</a>, le framework, vient de sortir en version alpha<br />- <a href="http://www.microsoft.com/products/expression/en/expression-blend/try.mspx">Microsoft Expression Blend</a>, l'outil de design pour WPF est disponible en évaluation<br />- le petit monde RubyOnRails propose <a href="http://joyeur.com/2007/03/22/joyent-slingshot">SlingShot</a>, une alternative alléchante à Apollo<br />- <a href="http://www.openlaszlo.org/download#stable4">OpenLaszlo 4.0</a> est sorti et permet désomais de générer des interfaces<br /> Ajax tout comme des interfaces interprétées par un lecteur Flash.<br /><br />A vos marques, prêts, testez !JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com0tag:blogger.com,1999:blog-19519352.post-70424713008409899502007-03-16T17:42:00.000+01:002007-03-16T18:20:41.250+01:00La 3D, le web et javascriptLa 3D sur le web est un vieux rêve qui semble être repoussé chaque jour :<br />- VRML n'a jamais vraiment pris<br />- X3D son successeur désigné, ne semble pas vraiment prendre la suite<br />- aucune solution de remplacement n'a réellement émergé<br /><br />Une fois encore, des hackers javascript se sont retroussé les manches pour parvenir à une solution à l'aide de le nouvelle balise HTML "<a href="http://developer.mozilla.org/en/docs/Canvas_tutorial">canvas</a>" (malheureusement inconnue de nos amis de chez Microsoft)... et à ma grande surprise, ça marche ! Du moins, de temps en temps.<br /><br />Quelques exemples, parce que ça vaut quand même le coup d'oeil :<br />- <a href="http://labs.flog.co.nz/raytracer/">une démo d'un moteur de rendu (qui fait ce qu'il peut)</a><br />-<a href="http://ajax3d.sourceforge.net/"> un jeu en 3D (injouable)</a><br />- <a href="http://tapper-ware.net/canvas3d/">une démo de voiture avançant une route improbable </a><br /><br />Bon, en attendant que tout ça progresse, Flash et WPF semblent pour le moment les alternatives les plus raisonnables... à moins que vous n'ayez une meilleure idée ?JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com6tag:blogger.com,1999:blog-19519352.post-29029452433532876992007-03-09T11:05:00.000+01:002007-04-16T17:28:25.606+02:00AJAX, JSON et BISON au secours de la bande passanteDans la formidable époque que nous sommes en train de vivre, le web subit une révolution discrète et pourtant cruciale au royaume de "l'expérience utilisateur" : les applications du web ont en effet maintenant plus que jamais les moyens de réduire considérablement la bande passante utilisée.<br /><br />Or sous des dehors techniques, cet aspect du web 2.0 est tout sauf un problème de geek :<br />- pour l'utilisateur, moins de données à faire transiter signifie une meilleure réactivité de l'application à ses différentes actions.<br />- pour le financier, moins de bande passante entraîne une baisse qui peut être significative des coûts de structure... en particulier dans le cas d'une montée en charge rapide de l'application.<br /><br />Comment concrètement s'opère cette baisse de consommation ?<br />- Dans le passé, ce fut AJAX qui permit d'économiser des rechargements de page complets à chaque fois que des appels serveur sont nécessaires.<br />- Aujourd'hui, c'est <a href="http://fr.wikipedia.org/wiki/JSON">JSON</a> (si il est bien utilisé) qui diminue de manière considérable la taille des réponses renvoyées par les serveurs suite à une requête AJAX.<br />- Demain, ce sera peut-être quelque chose comme <a href="http://ajaxian.com/archives/bison-binary-json">BISON</a> (qui n'est qu'une expérimentation) d'une part et le <a href="http://web2rules.blogspot.com/2006/11/soyez-cool-soyez-offline.html#comments">stockage client massif</a> d'autre part qui permettront d'optimiser encore un peu plus le flux d'information transitant entre le serveur et le client.JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com2tag:blogger.com,1999:blog-19519352.post-73722521381360320362007-02-26T13:35:00.000+01:002007-03-02T18:54:55.312+01:00Google Apps For Your Domain V2 : une killer app pour les PMEOn le dit depuis longtemps et ça devient chaque jour qui passe une réalité plus tangible : Google va bientôt devenir un acteur important de l'application d'entreprise. La <a href="http://www.google.com/a/help/intl/fr/admins/premier.html">nouvelle mouture de GAFYD</a> a en effet de nombreux arguments pour convaincre un bon paquet de PME (parole d'utilisateur d'entreprise !) :<br />- un webmail loin devant les solutions concurrentes<br />- un système d'édition et de partage de documents terriblement efficace<br />- un agenda en ligne au top<br />- une gestion des comptes simple et conviviale<br />- des possibilités de support et de développements spécifiques enfin dignes d'une société comme Google<br /><br />Si les équipes commerciales de Google for enterprise sont un peu etoffées en France, ça pourrait changer pas mal de choses dans nos petites entreprises. Surtout que la suite va probablement arriver dans l'année... c'est à dire :<br />- une solution de<span style="font-weight: bold;"> PowerPoint-like</span><br />- un <span style="font-weight: bold;">mode Offline</span> pour les différentes applications<br />- la poursuite du développement des <span style="font-weight: bold;">interfaces Smartphone</span><br />- l'intégration à la <span style="font-weight: bold;">Google Appliance</span><br /><br />Bon courage aux concurrents !JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com0tag:blogger.com,1999:blog-19519352.post-11068078867517330792007-02-21T19:32:00.000+01:002007-02-23T14:18:53.958+01:00OpenID s'impose comme référence de l'identité numériqueLa gestion de notre identité à travers les différents services de l'internet est un des problèmes non résolus qu'avait évoqués oncle Tim O'Reilly dans "<a href="http://web2rules.blogspot.com/2006/01/what-is-web-20-par-tim-oreilly-version.html">what is web 2.0</a>". Petit rappel du problème en question par exemple tout bête...<br /><br />JB Boisseau est terriblement jaloux du talent et du succès de <a href="http://www.fredcavazza.net">Fred Cavazza</a> et décide de se venger de ce sale coup du destin en usurpant l'identité de ce dernier.<br />Comment ? Rien de plus simple : il lui suffit d'aller sur le blog de Loic Lemeur et d'y décharger un flot d'insultes... en signant "Fred Cavazza". N'ayant pas de moyen d'identifier clairement la personne en question, le machiavélique JB Boisseau réussira à déboussoler les internautes 2.0 de passage aisément et ce, potentiellement sur une grande quantité de services.<br /><br />D'un autre côté, le bon Fred aimerait bien pouvoir bénéficier d'un "single sign-on" sur la toile lui permettant d'accéder à tous ses services avec une seule authentification... chose qu'il lui ferait gagner un temps précieux.<br /><br />Bien des services ont tenté de s'imposer en tant que standard dans le domaine (où, par définition, il ne peut rester qu'un acteur) et il semble qu'un vainqueur soit en train d'émerger. Le vainqueur en question, serait donc <a href="http://openid.net/">OpenId</a>. Les raisons en sont les suivantes :<br />- AOL a annoncé à la suite de Microsoft être prêt à utiliser OpenId pour l'authentification à ses services.<br />- Plusieurs sites web de référence (Digg, Technocrati, MovableType...) ont adopté le système<br />- Les fournisseurs d'OpenId sont à la fois nombreux et influents : Verisign, JanRain, Sxip, MyOpenID.com..<br /><br />Bref, si <a href="http://www.egomedium.net/fr/2007/02/22/aol-compatible-openid-et-apres-critique-dopenid/">certaines questions se posent encore</a> sur la capacité technique d'OpenId de jouer pleinement son rôle, ce dernier est à ce jour bien mieux que placé que les autres pour remporter la bataille.JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com0tag:blogger.com,1999:blog-19519352.post-56790941056738211002007-02-10T18:37:00.000+01:002007-02-16T17:54:08.942+01:00Scenario d'un krach 2.0Le krach 2.0 aura lieu, soyez-en assurés : les cycles économiques et financiers sont ainsi faits que toute croissance rapide s'accompagne d'une correction. Seules incertitudes : le moment et l'ampleur de la crise. Mouillons-nous un peu...<br /><br />Je crois (c'est plus qu'une croyance en fait) que ce krach 2.0 sera assez, voire très, différent du premier. L'effondrement de la "nouvelle économie" fut en effet assez lent : pas de véritable journée noire mais plutôt un processus régulier de baisse marquée des valeurs technologiques étalé de la fin 2000 à la mi-2003. Les investisseurs avaient toujours de l'argent à mettre sur la table, même s'ils en avaient moins : ils se mirent donc à éviter les valeurs technologiques qui s'avéraient moins rentables qu'envisagé. Les conséquences furent donc un ralentissement généralisé de l'économie mais une situation de crise véritablement centrée sur le secteur IT.<br /><br />A l'opposé, la prochaine crise pourrait être beaucoup plus violente et ne pas toucher simplement la branche des nouvelles technologies. Pourquoi ? Parce que certains fondamentaux de l'économie américaine font peur : ainsi, les marges de manoeuvre qui existaient en 2000 pour absorber le choc se probablement considérablement amoindries.<br /><br />Ces fondamentaux, les voici :<br />- les déficits jumaux (budget de l'état, balance commerciale) n'ont cessé de se creuser depuis 2000 pour atteindre aujourd'hui des proportions assez inquiétantes aux yeux de beaucoup.<br />- du fait de ces déficits, le dollar a logiquement repris sa baisse, mais pourrait connaître des tensions bien plus graves si les banques asiatiques cessaient de soutenir le trésor américain comme elles le font depuis de nombreuses années pour favoriser leurs exportations.<br />- <a href="http://www.leblogfinance.com/2006/02/quelques_jours_.html">l'éclatement de la bulle immobilière américaine est réel</a>, et aura très bientôt des répercutions sur le reste l'économie. En effet, les foyers américains s'endettant considérablement en hypothèquant leur domicile, une chute importante de l'immobilier aurait des conséquences très directes sur leur capacité à emprunter.<br /><br />Le premier domino à tomber est donc bien celui de l'immobilier américain et selon la violence de sa chute (qui n'est pas terminée) , il entrainera (ou non) les suivants :<br />=> recul de la consommation => panique puis crise financière => crise économique généralisée (où le secteur IT trinque comme tout le monde) => exportation de la crise au niveau mondial<br /><br />Voilà un scénario qui, si il se déroule, devrait s'ammorcer dans les 18 prochains mois (le temps de pousser le deuxième domino)... mais dont la probabilité et surtout l'ampleur sont incertaines tant nous sommes peu de chose face à la nature profondément chaotique (au sens mathématique du terme) de l'économie.JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com3tag:blogger.com,1999:blog-19519352.post-35410884028395451292007-02-07T14:02:00.000+01:002007-02-08T08:58:22.377+01:00Les vrais héros du web 2.0Chaque jour, dans l'ombre des hommes d'affaires et des blogueurs à succès, des bidouilleurs géniaux ont les intuitions et la volonté qui construisent le web (2.0) d'aujourd'hui et de demain.<br /><br />Etant donné qu'ils ne connaîtront probablement jamais la renommée qu'il méritent, je me permets aujourd'hui de leur rendre un petit hommage via une sélection 100% subjective des meilleurs d'entre eux.<br /><br /><a href="http://www.loudthinking.com">David H. Hanson, définitivement sur les rails</a><br />Cet homme est plus qu'un techie habile : sa vision du développement web est à ce point efficace qu'il a révolutionné le métier pratiquement à lui tout seul. Son oeuvre, <a href="http://www.rubyonrails.com">RubyOnRails</a>, est en effet en rupture avec beaucoup d'habitudes : un langage méconnu, un pattern (activeRecord) trop souvent jugé laxiste, une structure (MVC) qui rimait jusque là plus avec rigueur qu'efficacité... et maintenant, beaucoup essaie de le copier !<br /><br /><a href="http://alex.dojotoolkit.org/">Alex Russel, le maître du dojo</a><br />Alex Russel est le responsable du projet <a href="http://www.dojotoolkit.org/">dojo</a>, cette librairie javascript innovante qui non seulement comprend un nombre impressionnant de fonctionnalités mais qui en plus possède une architecture très bien pensée.<br />Alex Russel est également un de ceux qui se penchent le plus sur le développement COMET, une techno qui a certes de l'avenir mais qui est encore plus cauchemardesque qu'AJAX à mettre en place.<br /><br /><a href="http://www.codinginparadise.org">Brad Neuberg, hors ligne mais dans le coup</a><br />J'en ai déjà beaucoup parlé, mais le travail de Brad sur le mode offline et son coup de force pour exploiter les cookies Flash en Javascript sont vraiment impressionnants.<br /><br /><a href="http://sam.conio.net/">Sam Stephenson, prototypeur en chef</a><br />Sam Stephenson n'est ni plus ni moins que le créateur de <a href="http://prototype.conio.net/">prototype</a>, la librairie javascript de référence pour le développement Ajax. Il fait aussi partie de l'équipe travaillant sur le noyau de RubyOnRails.<br /><br /><a href="http://mir.aculo.us/">Thomas Fuchs : scriptaculeux !</a><br />Thomas Fuchs a eu la bonne idée de s'appuyer sur prototype pour bâtir <a href="http://script.aculo.us">scriptaculous</a>, sa très pratique librairie d'effets Javascript... qu'il soit lui aussi impliqué dans le développement de RubyOnRails ne doit donc probablement rien au hasard. A noter également, ses bonnes pratiques de développement Javascript qui mériteraient d'être plus connues.<br /><br /><a href="http://www.joehewitt.com/">Joe Hewitt, notre sauveur au quotidien</a><br />Joe Hewitt a eu l'excellente idée d'élaborer le plus fidèle ami du développeur javascript à travers<a href="http://www.getfirebug.com/"> Firebug</a> : loué soit-il !<br /><br />A noter que 2 de ces hackers 2.0 (David et Sam) font partie de la fameuse équipe de <a href="http://www.37signals.com">37signals</a> (BaseCamp, Getting Real) et que 2 autres (Alex et Brad) travaillent pour <a href="http://www.sitepen.com">Sitepen</a>... 2 petites sociétés feraient-elles avancer notre vieux web plus vite que certains mastodontes ?JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com4tag:blogger.com,1999:blog-19519352.post-51834353289128259832007-01-31T09:06:00.000+01:002007-02-01T14:34:33.118+01:00Firebug : quand l'exceptionnel se fait indispensable<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMXNoLXMDXnvGOpAmb0XrwfOX69BeY5gWhSMmi320dBJmrols718ofCvCzbhqA6NxQECRfRo6U_MZDmdhCTCGGBit1Fso6MuEWvbaGP83N893w9UdHtuffTKrmYr2Sp2ERm-Ys/s1600-h/images.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMXNoLXMDXnvGOpAmb0XrwfOX69BeY5gWhSMmi320dBJmrols718ofCvCzbhqA6NxQECRfRo6U_MZDmdhCTCGGBit1Fso6MuEWvbaGP83N893w9UdHtuffTKrmYr2Sp2ERm-Ys/s320/images.jpg" alt="" id="BLOGGER_PHOTO_ID_5026557805079600066" border="0" /></a><a href="http://getfirebug.com/">Firebug 1.0</a> est sorti en début d'année, et si vous développez un peu, je vous encourage vivement à le mettre à jour / réessayer / découvrir si ce n'est pas encore fait. Le meilleur ami du développeur Ajax fait maintenant tout ce qu'il faut pour vous aider au quotidien :<br />- <span style="font-weight: bold;">inspecter</span> et analyser le code <span style="font-weight: bold;">HTML</span> élément par élément<br />- <span style="font-weight: bold;">visualiser</span> <span style="font-weight: bold;">les styles</span> de vos pages aisément<br />- voir toutes les <span style="font-weight: bold;">requêtes HTTP</span> dans le détail<br />- <span style="font-weight: bold;">débuguer Javascript</span> mieux que jamais<br />- examiner les <span style="font-weight: bold;">objets DOM</span> simplement<br /><br />Et beaucoup de petites choses pratiques (messages console, débugage sous IE !) que je vous laisse découvrir en font maintenant un outil à la fois fiable et incontournable... qui nous rend impatients d'en découvrir la prochaine version !JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com5tag:blogger.com,1999:blog-19519352.post-68402535369435983202007-01-19T08:12:00.000+01:002007-01-19T08:13:56.913+01:00Dojo Offline Toolkit : comment ça (va) marche(r) ?<a href="http://www.sitepen.com/blog/2007/01/02/the-dojo-offline-toolkit/">Dojo Offline Toolkit</a> a pour but d'être, comme son nom l'indique, une boîte à outils rendant aisé le développement de fonctionnalités offline pour les applications web d'hier et de demain. Pour cela, plusieurs choses sont nécessaires :<br />- une librairie qui permet le stockage d'information en mode offline : ça existe déjà, ça s'appelle <span style="font-weight: bold;">dojo.storage</span>.<br />- un <span style="font-weight: bold;">proxy web léger</span> sur le poste client permettant de gérer le mode offline de façon transparente pour l'utilisateur (je vais y revenir).<br />- une <span style="font-weight: bold;">API</span> permettant aux développeurs d'utiliser facilement les fonctionnalités du toolkit<br /><br />Bon, plaçons-nous maintenant sur la machine cliente qui va utiliser une application fonctionnant avec le Toolkit :<br />- elle va regarder si vous disposez du proxy web de dojo offline<br />- si vous ne l'avez pas, elle vous propose de l'installer (installation simple : système NSIS pour Windows, XPI pour Linux) immédiatement<br />- que vous ayez le proxy ou non, vous utilisez ensuite l'application online<br />- une fois hors ligne et si vous disposez du proxy, celui-ci consulte le fichier ProxyAutoConfiguration (PAC) de votre navigateur et vous dirige vers votre version locale de façon transparente de l'application<br />- vous utilisez l'application hors ligne qui est alors entièrement basée sur Javascript et qui vous permet de stocker des informations dans votre navigateur grâce à dojo.storage<br />- dès que vous repassez en ligne, le proxy vous reconnecte au serveur distant et la synchronisation offline /online peut avoir lieu<br /><br />Tout le travail qui est en cours consiste donc à créer le proxy (à partir de <span style="font-weight: bold;">polipo</span>, un projet opensource existant) et construire l'API... résultat des courses dans 3 mois !JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com2tag:blogger.com,1999:blog-19519352.post-88376247903500453992007-01-16T12:49:00.000+01:002007-01-17T08:57:26.413+01:00Valeur ajoutée du blogueur : pertinence, rareté, reformulation et droit de citationJ'aime lire les blogs. L'expression "<a href="http://web2rules.blogspot.com/2005/12/tirer-parti-de-lintelligence.html">sagesse des foules</a>" a pour moi vraiment un sens quand je constate, chaque jour, la richesse d'information qui est désormais disponible sur la toile. Malheureusement, comme toute production, les blogs ont un déchet important... et celui que vous lisez à l'instant même ne doit probablement pas échapper à la règle !<br /><br />Ainsi, l'agacement qui me gagne à la lecture de certains posts inutiles autant que l'envie de toujours apporter quelque chose à mes lecteurs m'amène régulièrement à me poser la question : qu'est-ce qui fait la valeur ajoutée d'un article ? Autrement dit au delà du sempiternel "comment mener le lecteur à mon article ?" (le référencement), j'aimerais plutôt demander "<span style="font-weight: bold;">en quoi mon article peut être utile au lecteur ?</span>".<br /><br />Parce que je dois dire que j'en assez de voir des "articles" qui ne sont que des catalogues sans logique (genre "87 applications web 2.0"), des listes de liens sans explications ("bonjour, voici 3 liens intéressants !"), voire des articles à 80% pompés d'autres sources. Oui, je sais que c'est bien pratique de prendre des paragraphes entiers chez ses "copains" blogueurs : ça fait du contenu facile pour les robots, ça augmente la fréquence des posts... mais ça n'est ni malin, ni moral, ni vraiment utile à la communauté.<br /><br />Qu'on ne se méprenne pas : citer les autres en les backlinkant est une excellente habitude de la blogosphère (ça permet de connaître de nouvelles sources pour les lecteurs, c'est une manière de récompenser l'auteur par de nouveaux visiteurs et ça améliore la pertinence des moteurs de recherche), les quasi-plagier en est une autre.<br /><br />La moindre des choses à faire pour évoquer le contenu réalisé par autrui est de respecter quelques règles de bon sens et de respect :<br /><span style="font-weight: bold;">- le contenu en quelques phrases tu présenteras, en perspective tu le mettras</span><br /><span style="font-weight: bold;">- pas plus de 10% d'un article tu ne citeras</span><br /><span style="font-weight: bold;">- toujours tes sources tu backlinkeras</span><br /><br />Ca peut paraître évident, mais j'ai vu récemment fleurir ça et là des blogs qui se contentent des catalogues de liens et de pompages divers (et je ne parle pas des "blogs-satellites" purement utilisés pour le référencement) : valeur ajoutée = 0, pollution de la blogosphère = maximale. Voilà c'est dit, et miracle, mes aigreurs d'estomac ont disparu.<br /><br />J'en viens donc à la valeur ajoutée du blogueur. La plupart des posts blogués en ce bas monde est basé sur une actualité, une analyse ou une découverte faite par autrui. Tout l'art du blogueur est donc d'ajouter une valeur supplémentaire au contenu auquel il se réfère et il a pour cela plusieurs méthodes :<br />- <span style="font-weight: bold;">traduire</span> le contenu dans une autre langue<br />- <span style="font-weight: bold;">critiquer</span> le contenu<br />- établir des <span style="font-weight: bold;">corrélations</span> avec d'autres contenus en les mettant en perspective<br />- <span style="font-weight: bold;">reformuler</span> le contenu pour le rendre intelligible à d'autres lecteurs<br />- <span style="font-weight: bold;">analyser</span> le contenu pour en faire ressortir des aspects particuliers ou peu évidents<br />- <span style="font-weight: bold;">résumer</span> le contenu (sans le trahir... exercice délicat !)<br /><span style="font-style: italic;">- ... (liste à compléter avec votre aide)</span><br /><br />Je suis de ceux qui pensent que <span style="font-weight: bold;">le blog n'est pas qu'un espace de liberté pour le blogueur</span>, et que celui-ci doit avoir conscience d'un certain nombre de devoirs implicites en tant que membre de fait de la blogosphère. Or la qualité de cette dernière dépend de chacun de nous.JB Boisseauhttp://www.blogger.com/profile/16147103675425653833noreply@blogger.com5