jeudi, août 31

Une documentation efficace pour prototype.js

J'ai déjà dit tout le bien que je pensais de la fameuse librairie prototype dans un projet web 2.0. Pour exploiter au mieux cette librairie, je ne saurais trop que vous conseiller la lecture de la documentation non-officielle de prototype 1.4.0 ici (en anglais) et en français (pour la version 1.3.1).

Encore une fois, passer 2 heures à lire cette documentation est un investissement très rentable si vous utilisez cette librairie ou envisagez de le faire.

jeudi, août 24

Pourquoi vous ne trouverez pas de définition du web 2.0

Bien des gens de passage ici (et ailleurs) sont à la recherche d'une définition du web 2.0... de préférence précise. Alors, soyons clairs : cette définition n'existe pas.

Le web 2.0 n'a pas de contour nets : il s'agit d'une étiquette collée à une époque marquée par un certain renouveau sur le web. De même que vous ne trouverez pas de définition précise du nouveau roman, de la nouvelle vague ou des années folles, vous pourrez au mieux sentir les concepts dominants de l'ère et de la culture web 2.0.

Le web 2.0 s'apprécie donc dans le temps : c'est pourquoi Tim O'Reilly commence "What is web 2.0" par ce qui a changé sur le web ces dernières années. C'est aussi pourquoi il faut les 16 pages de son article pour commencer à comprendre tout ce que cela recouvre : économiquement, culturellement, techniquement mais aussi et surtout dans les usages.

La seule définition que l'histoire devrait retenir serait ainsi :
"Web 2.0, période marquant le retour de l'innovation et d'une forte croissance dans les technologies liées au web, après la crise connue par le secteur de 2001 à 2004."

mercredi, août 23

Petit test de AllPeers

AllPeers est un plug-in pour Firefox vous permettant de faire des échanges de fichier de clients à clients. C'est outil actuellement en bêta fermé que j'ai pu tester grâce à une invitation via Techcrunch.

Premiers constats...
- l'outil est pratique : intégré au navigateur, ergonomie bien pensée (barres de navigation, menus contextuels, possibilité de partager des fichier par glisser-déposer depuis le desktop)

- il répond à un vrai besoin : partager des fichiers volumineux entre amis (c'est le protocole de Bittorrent qui est utilisé, c'est donc vraiment similaire au P2P classique pour les habitués), et à l'heure de la bulle 2.0, c'est une grande qualité.

Quelques réserves cependant...
- le principe du logiciel, c'est le partage entre amis : vous êtes donc limités à votre petite bande de potes qui utilisent Firefox avec ce plug-in et qui se trouvent sur le réseau... ce qui ne fait pas grand-monde ! J'ai envoyé des invitations à quelques amis, un seul l'a installé et désinstallé quelques jours plus tard. Pour être vraiment intéressant, il faudra donc que le logiciel atteigne un seuil critique en terme d'adoption.
Il est vraiment dommage de ne pas avoir laissé la possibilité de chercher/partager des fichiers avec des gens ne faisant pas partie de votre réseau personnel : cela aurait considérablement augmenté les possibilités d'utilisation.

- techniquement, les développeurs d'AllPeers ont certainement dû faire face à pas mal de difficultés et ils ont parfois été obligés de recourir à des solutions "bricolées". Par exemple, pour ne pas interrompre les téléchargements en cours, lorsque vous fermez Firefox, AllPeers maintient le processus en fonctionnement, ce que j'ai trouvé personnellement gênant.

- l'ensemble ne s'est pas révélé stable sur ma machine (j'ai donc du le désinstaller)... attention toutefois, c'est encore une bêta fermée et j'ai une utilisation de Firefox assez particulière du fait de mes activités de développement.

Finalement...
- AllPeers est incontestablement une bonne idée mais, idéalement, il faudrait qu'il soit intégré directement à Firefox (plutôt qu'en extension) : cela permettrait certainement de bâtir un ensemble plus stable et accroîtrait considérablement le nombre de clients disponibles (difficile mais la fondation Mozilla est ouverte aux partenariats). Dans le même ordre d'idée, prévoir des plug-ins pour d'autres navigateurs permettrait de communiquer avec plus que les seuls 15% d'utilisateurs Firefox.

- Autre point (déjà évoqué) : permettre des échanges "publics" pour partager des fichiers avec des personnes inconnues façon P2P classique est un manque incontestable.

- Vous pourrez essayer AllPeers à sa sortie publique : si vous avez une petite communauté d'utilisateurs potentiels et que vous ne rencontrez pas les problèmes de stablilité que j'ai connus, vous y trouverez un intérêt certain.

vendredi, août 18

Du côté de chez Sun...

Jonathan Schwarz est non seulement le président de Sun mais aussi un des businessmen dont le blog est le plus lu outre-Atlantique. Alors quand M. Schwarz annonce "we're the dot in the web 2.0" (nous sommes le point du "web deux point zéro"), faut-il le croire ?

Regardons un peu la stratégie de Sun :
- côté matériel : une stratégie serveur web très intéressante avec les machines exploitant l'ingénieux processeur Niagara => moins de puissance, (beaucoup) plus de threads.

- côté OS : Solaris X semble connaître un certain succès aux dires de Schwarz... que vaut-il face à un linux ou un BSD (Windows Server étant un monde un peu à part pour le web) ? J'avoue ne pas le savoir, mon expérience en la matière s'étant limitée à une installation à l'arrache qui n'a pas tenu une semaine. Mais Sun peut compter sur quelques partenariats, le succès de ses Ultra-Sparc et sa license open-source pour lui assurer un destin honorable.

- côté Java : certes, JSP se fait grignoter par .NET dans le domaine des applications web, mais Java n'a toujours pas d'équivalent dans le domaines des devices portables. Java est désormais intégré dans de nombreux appareils (téléphones, accessoires automobiles, assistants personnels...) ce qui est un avantage décisif à l'heure où le logiciel se libère du PC.

- côté logiciels clients : pas grand chose. Open/StarOffice ne bouge pas beaucoup, les outils de développement (où Eclipse semble s'être imposé) basculent les uns après les autres vers l'open-source et rien de bien excitant n'est arrivé depuis longtemps sur ce plan (à moins que le bureau 3D "Looking Glass" ne soit un jour au point ?).

Ce petit tour d'horizon semble donc montrer que Sun est très fortement tourné vers le web 2.0 : des produits formatés pour permettre la poursuite de la montée en puissance des datacenters, un Java qui anticipe la fin de l'ère du PC, une culture résolument rajeunie et open-source, quelques petites innovations comme JMaki (intégration de widgets ajax par des tags dans les pages jsp)... et last but not least des liens très particuliers avec Google.

Difficile de dire ce qui unit précisément les 2 sociétés à l'heure actuelle, mais :
- Andy Bechtolsheim, un des fondateurs de Sun, est l'homme providentiel qui fit un chèque de 100000 $ à Page et Brin alors que Google n'avait même pas de compte en banque !
- Google est un membre actif du Java Community Process
- Google et Sun ont dit mener un "big deal" ensemble fin 2005 sans préciser de quoi il s'agissait vraiment.
- Sun joue la carte des serveurs économes en ressources électriques, à l'heure où Google cherche à diminuer des coûts en énergies.
- Google joue la carte Java+Ajax avec le Google Web Toolkit à l'heure où Sun annonce que le temps du PC est terminé.

Sun a donc les cartes en main pour devenir le "dot in web 2.0" mais à ce jour, rien n'est encore fait.

mercredi, août 9

La chute de la maison Microsoft (featuring web 2.0)

Pour commencer, soyons clairs, je n'ai rien en paticulier contre Microsoft. Je crois même qu'on doit beaucoup à cette société : l'informatique a prospéré comme jamais sous sa domination et je ne suis pas sûr du tout que c'eût été la même chose dans une configuration différente... je conçois qu'on puisse avoir une opinion différente mais ce n'est pas là le débat que je veux faire (re)naître ici.

Je suis loin d'être le premier à annoncer les difficultés en cours et à venir pour Microsoft. Tim O'Reilly l'annonce dans what is web 2.0 et Jean-Louis Gassée (ancien de chez Apple et à l'origine de l'aventure BeOS) avance une théorie : Microsoft mat en trois coups.

Regardons-y d'un peu plus près : toute la force de Microsoft se trouve dans sa maîtrise absolue du desktop. Il a toujours écrasé ses concurrents successifs sur le marché (IBM, Apple, Sun, Linux...) et aujourd'hui encore personne ne semble vraiment en mesure de rivaliser. Or, dans les années 80-90 (les années PC), tout se jouait sur le desktop. Qui contrôle le desktop, contrôle les API pour les applications qui s'y implantent. Qui contrôle le desktop est indispensable et peut imposer aux fabriquants de PC d'être le système préinstallé avec lequel il faut être, quoi qu'il arrive, compatible.

La théorie d'O'Reilly et de Gassée (et certainement de bien d'autres) est qu'avec un champ de bataille déplacé sur le web, c'est à dire hors du desktop, Microsoft sera du coup privé de toutes ses armes habituelles : intégration à l'OS de ses propres outils, accords avec les fabriquants, seule plate-forme compatible avec des outils critiques pour l'entreprise ou le particulier.

Le desktop se déplace-t-il donc à ce point vers le web ?
Quelques réserves sont encore là :
- malgré Ajax, Flash et Java, une application web donnée a, la plupart du temps, encore un peu de retard sur son équivalent client en terme d'ergonomie : c'est souvent plus lent et tous les contrôles intuitifs (double-click, menu contextuel, glissé-déplacé) de l'application classique (même si tous sont théoriquement possibles) ne sont généralement pas présents.
- la 3D est encore très anecodotique sur le web, et exclut de fait beaucoup d'applications de cet univers (en particulier, les jeux).
- nombre de développeurs et de décideurs n'ont pas la culture web et pensent encore trop systématiquement application cliente face à un problème donné.
- nous sommes loin d'être connectés en permanence dans de bonnes conditions au web et beaucoup sont encore tout simplement encore exclus du réseau des réseaux.

Si le déplacement vers le web a donc bien lieu, rien ne dit qu'il sera total ou même suffisant pour retirer au desktop son caractère hautement stratégique. Mais quoi qu'il arrive, nous vivons et allons encore vivre une période dans laquelle l'intégration desktop-webtop sera décisive : le webtop arrive mais le desktop n'est pas mort... ils doivent donc se parler avec des outils tels que Google desktop !

Il est donc vrai que Microsoft n'est pas dans la meilleure dynamique aujourd'hui mais le desktop étant encore là pour quelques années, le géant de Redmond et ses milliards de dollars de trésorerie ont encore largement le temps de revenir dans la course : soit en adoptant une culture web plus tournée vers le web, ou beaucoup plus probablement en donnant de nouvelles armes au desktop (avec par exemple Windows Presentation Foundation).

vendredi, août 4

Reflexions sur l'actualité en ligne (2)

Je poursuis les quelques idées que j'ai lancées dans mon précédent post. Pour bien comprendre celui-ci, je crois qu'il me faut d'abord préciser les objectifs que je fixerais, en tant que lecteur, au site d'actualités du futur.

Il me semble tout d'abord que le journalisme moderne doive éviter quelques écueils dans lesquels il tombe assez souvent.

- l'ethnocentrisme exacerbé : les informations sont triées et traitées sous le seul le prisme des références culturelles de son public. Si la culture du public est bien sûr un facteur à prendre en compte pour capter son adhésion, l'information dans sa diversité et les analyses dans leur pertinence sont affaiblies lorsque sont oubliés les points de vue culturellement extrêmement divers de notre village mondial.

- le suivisme : phénomène particulièrement bien décrit par Daniel Schneiderman dans "le cauchemar médiatique". Il est une famille de journalistes qui semblent sans cesse se marquer à la culotte : "je dois parler de ce sujet parce que ça intéresse les gens. Pourquoi ça les intéresse ? Parce que mon confrère en a parlé !". De ce fait, on assiste au double phénomène "emballement/omerta" médiatique : certains sujets sont injustement surreprésentés tandis que d'autres sont purement et simplement passés sous silence (jusqu'à ce qu'ils ressortent de façon soudaine).

- le clientèlisme : qui consiste à suivre le public plutôt qu'à le guider dans l'univers de l'information. C'est une dérive commerciale aussi dangereuse que naturelle et il faut une identité très forte pour s'en détacher.

- le monocordisme : un phénomène bien connu des JT où toutes les informations se mettent à avoir la même saveur, celle de la dépêche prémachée. Pas de reformulation, pas de prise de recul, pas de mise en perspective... et le lecteur en vient à ne plus s'intéresser qu'aux pages sport, seules à tenter d'avoir un ton différent.

- la prime à la dernière dépêche : la fraîcheur de l'information prend un poids disproportioné dans l'importance du traitement de celle-ci... mais le public n'a ni de rappel des épisodes précédents ni l'ébauche d'une analyse qui lui permettrait de comprendre l'information présentée. On aboutit à des contenus incompréhensibles : personne de mon entourage proche n'est capable de me dire ce qui se passe vraiment au Darfour... mais tous savent qu'on en parle de temps en temps !

- le trop-plein : comme on traite tout très vite, on peut traiter beaucoup, au risque de devenir indigeste. Le raisonnement menant à ce défaut étant "En évitant d'être trop sélectif, on multiplie les chances d'avoir un sujet qui capte l'attention".

Conclusion...
le vrai bon site d'actu (si le web, fut-il 2.0, voulait donner l'exemple) serait donc d'après moi :

- sélectif : il ferait de vrais choix éditoriaux pour ses lecteurs (qui pourraient malgré tout peser dans les choix en question afin de modérer le pouvoir de l'équipe éditoriale)... les robots et le moteur de recherche permettant quant à eux de répondre aux lecteurs en attente d'une information précise.

- pédagogique : il ordonnancerait et relierait les informations utiles à la compréhension d'un sujet donné (ça semble être la moindre des choses dans un système hypertexte !). On peut aussi imaginer un espace permettant de poser des questions aux journalistes afin d'établir des sortes de FAQ sur les différents points de l'actualité.

- attrayant dans sa forme : le paysage est tellement uniforme qu'un peu d'imagination dans la présentation et quelques efforts dans le style (c'est à dire mieux que la paraphrase d'agence de presse) suffiraient à sortir les lecteurs de leur torpeur.

- long-termiste : il renoncerait aux petits profits du scoop pour prendre le temps de devenir un prescripteur d'information de confiance.

- large d'esprit : afin de confronter les analyses, les opinions politiques, les approches culturelles sans a priori.


Alors, facile ?

mercredi, août 2

Google News, Wikio, Digg-like, Yahoo news : réflexions sur l'actualité en ligne

Je suis personnellement friand d'actualité et perpétuellement insatisfait de l'offre qui m'en est faite. Pourtant, le sujet est actuellement en pleine mutation : certains modèles apparaissent tandis que d'autres semblent promis à l'extinction.
C'est évidemment en ligne que les possibilités sont les plus grandes et la déferlante web 2.0 a encore un peu accéléré les choses de ce côté.

Ces modèles, quels sont-ils ?
- le modèle "Yahoo News" : les informations sont classées par Yahoo! qui opère donc un véritable travail éditorial sur le travail des agences de presse. C'est le site de news le plus populaire aux Etats-Unis. Pas d'intéraction avec les lecteurs ni de flux RSS.

- le modèle "lemonde.fr" : ici, on est dans le domaine du journalisme classique avec un travail éditorial à la fois de classement mais aussi d'analyse sur les sujets traités. Les approfondissements sont d'ailleurs en général payants. Les lecteurs peuvent réagir et débattre sur les articles.

- le modèle "Google News" : les actualités sont automatiquement agrégés à partir de 500 sources de référence. Aucun travail éditorial, juste des robots. Pas d'intéraction avec les utilisateurs non plus. La recherche s'avère très efficace.

- le modèle "Digg" : les actualités sont soumises et votées par des utilisateurs du service. Ce qui fait la pertinence d'une information, c'est sa popularité. Le débat sur le sujet soumis est présent et encouragé.

- le modèle "Wikio" : à la manière de Google News, Wikio agrège automatiquement 10000 sources, donc là non plus, pas de travail éditorial. A la manière des Digg-like, il prend en compte les votes des utilisateurs (mais pas seulement) pour décider de la pertinence d'un article. Là aussi, la recherche d'actualités sur un thème précis s'avère assez efficace.

D'après moi, aucun modèle ne se dégage pour le moment en terme de qualité. Un bon site d'actualité devrait selon moi combiner :
- une vraie ligne éditoriale, pour mettre l'information en perspective, trouver des angles, des analyses pertinentes sur l'actualité... sinon celle-ci n'est qu'un chaos de news toutes plus ou moins issues de l'AFP, AP et Reuters.
Cela passe donc par des choix dans la disposition spatiale et temporelle de l'information, la mise en valeur d'analyses équilibrées finement choisies et un classement humain de l'information.
- une certaine intéraction avec les utilisateurs : l'intelligence collective doit permettre de faire émerger des articles, des analyses hors des poids lourds habituels de l'information. Faire émerger le débat est aussi un bon point.
- un bon système de recherche ainsi qu'une syndication de contenu, éventuellement par thème, sont de bons atouts mais ne sont pas à ce jour essentiels.

Pour moi tout l'enjeu du site d'actualité moderne est de faire la synthèse entre l'approche "top-down" des sites façon Yahoo! ou lemonde.fr, l'approche "bottom-up" des Digg-like et l'approche robotisée de Google et Wikio. Cela pourrait se passer de la manière suivante :
- les robots ramènent les news et les classent de manière sémantique
- les utilisateurs taguent, annotent, votent, commentent... ajoutent de la richesse (et sont éventuellement rétribués pour ça) aux news et aux analyses qui y sont liées.
- une équipe éditoriale organise sa "une" et les analyses liées aux principaux articles en fonction de tout cela.

Bon, je suis en train de me rendre compte que tout cela coûterait assez cher ce qui serait sûrement difficile à rentabiliser sur un nouveau projet. Mais pour un acteur du marché déjà présent, ça semble jouable... non ?

vendredi, juillet 28

Professionnel indépendant : grand questionnaire de l'été !

Je réponds à ce questionnaire qui m'a été transmis par l'infatigable Jean-Marie (Adscriptor), pour qui je suis prêt à faire la première entorse à la ligne éditoriale de ce blog. Pour me donner bonne conscience, je vais quand même essayer de glisser quelques allusions (subtiles ?) au web 2.0 :

#1 - Quand et quelle est votre prochaine prestation facturée ?

Aujourd'hui, pour un ERP web riche en cours de développement.

#2 - Pour quelle raison reprendriez-vous une activité salariée classique ? Qu'est-ce qui vous manquerait le plus ?

- Si l'activité en question me permettait de me sentir plus utile.
- Les playlists de mon bureau.

#3 - Que fait un professionnel autonome l'été alors que ses clients sont à la plage ?

Il bosse sans craindre de voir le téléphone sonner.

#4 - Décrivez votre principal outil de travail sans citer son nom.

Il est l'alpha et l'oméga de nos tentatives de socialisation webisante. Ses 0 et ses 1 s'enchaînent en mélopées harmonieuses et recrée sans relâche les reflets de nos mondes intérieurs... Loué soit-il ! Embrassons-nous !

#5 - Finalement, tout serait parfait si...

... la perfection était de ce monde, forcément.

mardi, juillet 18

Retour d'expérience sur quelques librairies Ajax

Ce que j'entends dans cet article par librairies Ajax sont les nombreux ensembles de classes Javascript destinées à faciliter le développement d'applications web riches.

Elles comprennent souvent :
- un gestionnaire d'événements
- un système de fenêtres web 2.0 (c'est à dire faites à partir de div)
- des petits effets graphiques sympas
- un gestionnaire de requêtes Ajax
- des widgets évolués prêts à l'emploi (calendrier, treeviews, sliders...)

Il serait présomptueux de faire de faire une analyse détaillée dans ce billet à partir de ma simple expérience, néanmoins mon ressenti peut être utile à certains d'entre vous ... notamment à l'heure du choix d'une librairie Ajax !

Je déconseillerai d'abord YahooUI : pas complet, mais doté d'un noyau de fonctions indispensables assez lourd, il ne possède rien qui puisse justifier son choix.

DojoToolKit semble intéressante, je n'ai pas poussé très loin mes expérience sur cette librairie, mais elle a priori tout ce qu'il faut pour faire une base de travail très correcte : une petite communauté, des widgets sympas... bon, je ne peux cependant pas la conseiller parce qu'entre une utilisation de test et une application qui doit tourner en production, il y a un monde (donc si qq veut commenter sur le sujet, qu'il n'hésite pas).

DHTML Goodies est une petite suite de contrôles avec de temps en temps des scripts PHP pour faire des fonctions AJAX complètes. Pratique à l'occasion, mais à ne pas utiliser sur des points critiques : ce sont là des scripts intéressants, indépendants les uns des autres (pas de noyau à charger), mais pas faits pour une application professionnelle (on rencontre souvent de petits problèmes à la longue).

Prototype est pour moi la Rolls des librairies Ajax. Ecrite à la base pour RubyOnRails, soutenue par une grosse communauté d'utilisateurs, très bien structurée, permettant d'utiliser de nombreuses librairies pouvant se greffer sur elle (OpenRico, Scriptaculous pour les plus célèbres), elle offre toutes les garanties pour un développement Ajax d'envergure.

A vous maintenant d'enrichir ce point de vue personnel de vos propres expériences...

jeudi, juillet 13

L'usine logicielle web 2.0

Le web 2.0 a apporté son lot d'opportunités et d'innovations dans la productivité des développements web et il est probablement temps de capitaliser sur ces nouveautés pour les industrialiser au sein d'une usine logicielle (software factory).

L'usine logicielle est sensée couvrir toutes les étapes du développement d'un logiciel de l'analyse du besoin à la mise en production. Toutes ces étapes doivent bien entendu être accomplies de manière cyclique : l'ensemble des développements est découpé en plusieurs "cycles", chacun de ceux-ci accomplissant le parcours "analyse / conception / développement / test / intégration" en deux semaines (c'est la norme).

Du côté des outils, il nous faut en général (dans le désordre, je l'écris comme ça me vient) :
- un système de supervision du projet et de son avancement (ex : Cruisecontrol)
- une plate-forme de communication avec le client (même si le client fait partie de la même entreprise que l'équipe de développement) (ex : Basecamp)
- un système de bug-reporting (ex : Bugzilla)
- un système de versionning (ex : SourceSafe, Subversion, CVS)
- un framework de tests (ex : JUnit, SimpleTest, Selenium)
- un système de contrôle qualité du code (ex : FxCop)
- un outil de modélisation (qui, si possible, génère des classes à partir d'un diagramme) (ex : Visio, Poseidon, Rational Rose)
- un outil/framework facilitant le mapping objet-relationnel (c'est à dire faire le lien entre la base de données et les objets métier) (ex : Hibernate, RubyOnRails)
- des outils pour automatiser différents processus (copie de fichier, build, exécutions de tests...) (ex : Ant, Phing)
- un environnement de développement (ex : Eclipse, Visual Studio)

Les apports de l'ère web 2.0 dans ces domaines sont donc d'après moi :
1- les méthodes de RubyOnRails : c'est à dire patterns Active Record + MVC + pleins de petits trucs qui font le mapping objet relationnel n'est plus un problème (et l'architecture d'une application non plus).
2- la simplicité des tests Selenium qui permet de tester correctement une application web 2.0 pleine de javascript et d'AJAX
3- les bonnes idées de BaseCamp (à noter, son équivalent libre : ActiveCollab) : se focaliser sur la communication car c'est l'essentiel dans un projet.
4- la terrible efficacité du dernier Visual Studio.

Pour ce qui est du reste, pas vraiment de boulversement d'après moi :
- les outils calibrés pour l'industrie viennent du monde Java
- les outils permettant la plus grande productivité viennent de Microsoft
- les idées nouvelles viennent d'ailleurs (et souvent du libre)
- la vraie bonne usine logicielle se fait encore à partir de services/logiciels très divers et ne s'achète pas en pack "tout en un" (façon Visual Studio Team System).

Et pour vous, la killer app de l'usine logicielle web 2.0, c'est quoi ?

vendredi, juin 30

Wikio s'améliore

Même si pour le moment, je n'ai pas été tendre avec Wikio, je continue à suivre attentivement ses progrès. Pour rappel, Wikio est moteur de syndication et de recherche d'actualités monté par Pierre Chappaz, web1-hero de l'aventure Kelkoo et désormais fortement impliqué dans le projet, ô combien prometteur, Netvibes.

Jusqu'à une date récente, la syndication de Wikio était mal présentée : infos sur le même sujet, pertinence aléatoire, navigation compliquée... mais d'une part, je m'y habitue et d'autre part wikio s'améliore.

La pertinence des informations est désormais nettement meilleure, le phénomène de redondance des infos disparaît, de plus en plus de gens votent, les infos à la une sont assez diverses et intéressantes, bref, ça marche ! Les infos par thèmes sont par contre assez décevantes pour le moment : je suppose qu'une taille critique est nécessaire pour parvenir à une pertinence acceptable. Enfin, sur la partie moteur de recherche d'actualités francophones, Wikio surpasse de mon point de vue déjà Google, ce qui est déjà très bien.

Je révise donc mes critiques assez dures envers Wikio que j'ai toujours suivi malgré mes mauvaises appréciations. Et si j'ai suivi ce projet, c'est parce qu'il regroupe un nombre impressionnant de caractéristiques web 2.0, et ce de manière particulièrement intelligente :
- utilisation massive de flux rss pour récupérer l'information
- traitement sémantique pour le classement de l'information
- présence des blogs au côté des sites d'information classique afin de gagner en pertinence et en diversité des points de vue
- système de votes pour donner du poids aux utilisateurs dans le traitement qualitatif de l'information
- une intégration Netvibes très réussie (après quelques paramètrages)

L'interface est un peu trop sobre à mon goût et ne fait pas ressortir les informations comme peut le faire habilement la une d'un quotidien par exemple, mais ce point s'améliorera peut-être par la suite... Wikio m'a en effet prouvé qu'il avait encore une marge de progression dont il saura tirer parti !

samedi, juin 24

Microsoft : moins de Bilou, plus de web 2.0 ?

Quelle sera l'impact du départ de Bill Gates sur la stratégie de Microsoft ? Certains annoncent l'accélération de la conversion de Microsoft vers les services en ligne, la fameuse stratégie "Live" lancée il y a quelques mois pour contrer Google : Ray Ozzie, le successeur au poste de "Chief Architect" du fondateur de la firme de Redmond, étant sensé mieux incarner cette évolution.


Premier constat : Microsoft n'y arrive pas


Là où l'on perçoit toute la dimension culturelle du web 2.0, c'est que malgré tous ses efforts, Microsoft ne parvient pas à s'y imposer. Et pourtant, Microsoft a des idées, des gens compétents et une réelle volonté de s'y convertir : ASP.NET 2.0 et ATLAS sont excellents, quelques services de la gamme Live semblent prometteurs, la conférence web 2.0 de Microsoft du printemps dernier était très intéressante... mais concrètement, rien.
Microsoft continue de perdre des parts de marché au profit de Google en termes d'audience, le buzz semble complètement lui échapper, et ses nouveaux services n'ont quasiment emballé personne.


Second constat : l'échec prophétisé

Dans son texte fondateur du web 2.0, O'Reilly expliquait que Microsoft n'était pas nativement une société web 2.0 et que la conversion lui serait difficile. Microsoft a battu Netscape sur son terrain parce que c'était encore du logiciel classique, mais Microsoft, en 10 ans, n'a jamais rien prouvé on-line si ce n'est peut-être la réussite de MSN Messenger (surtout en France d'ailleurs) qui tient là encore plus de l'application que du service en ligne. Rien en 10 ans, c'est tout sauf du hasard ; pire, ce n'est pas de la prophétie, c'est un fait.


Troisième constat : les déclarations révélatrices

"Qu'est ce qu'a fait Google à part un bon moteur de recherche ?" dit Bill Gates agacé en réponse à une question sur les petits gars de Moutain View... tentative de persuasion manquée ou vraie connerie en live ? Oublier les adwords, ajax, gmail, Google Desktop, ça fait quand même beaucoup, non ?

"Google veut offrir l'information, nous voulons offrir les outils pour maîtriser l'information"... nouvelle erreur : dans l'univers du web, la puissance est dans les données plus dans les API !

"Google se contente d'offrir des services gratuits, nous voulons aller plus loin en redistribuant une partie de l'argent généré par la publicité aux utilisateurs" (Ballmer) : c'est un non-sens économique. Payer les gens pour regarder de la pub n'a jamais marché sur le web malgré de nombreuses tentatives : les gens utilisent le web pour avoir des services sympas, pas pour gagner 2$ par mois en cliquant sur des liens sponsorisés.

Autant de déclarations qui prouvent que Ballmer et Gates ne pensent pas web 2.0 et que dans ces conditions, il est difficile de bâtir une stratégie efficace.


Quatrième constat : le choix de Ray Ozzie est étrange

Ray Ozzie a la cinquantaine, est l'inventeur de Lotus Notes et a monté un soft racheté il y a 1 an par Microsoft : Groove, une application desktop qui entre en concurrence directe avec le web 2.0.
A moins d'une révélation soudaine, le profil d'Ozzie ne présage pas une véritable pensée web 2.0... et on se demande comment Microsoft va opérer sa mutation dans ces conditions.

vendredi, juin 16

Tutoriel : votre premier hack COMET en PHP

Comme promis, mais avec un peu (beaucoup ?) de retard, voici un petit tutoriel pour COMET en PHP pour nos amis développeurs.
L'exemple est simplissime, il s'agit de faire tourner un compteur à partir d'instructions serveur... pas vraiment utile me direz-vous, mais bien pratique pour comprendre les bases de la chose.

Les bases sont ici :
1- lancer un script PHP dans une frame cachée (retour des vieilles combines...)
2- génération d'un bout de javascript
3 - exécution du javascript dans la frame visible


1- mon script PHP caché


<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">
</HEAD>
<BODY BGCOLOR="blue">
<?php
//on génère ici un javascript
/** début du javascript appelant une fonction de la frame visible */
$jsFunPre = "<script language=JavaScript >parent.push('";

/** fin du JavaScript */
$jsFunPost = "')</script>";
{
$i = 0;
while (true)
{
$i++;
// envoi d'une ligne de JavaScript au client
print($jsFunPre."Page ".$i.$jsFunPost);
flush();
sleep(1);
}
}

?>

</BODY>
</HTML>

2- ma frame principale

<HTML>
<BODY BGCOLOR=black TEXT=white>
<H1>Attendez...</H1>

<div id="initLinkDiv">

<label>Texte poussé par le serveur :</label>
<textarea id="leftTextZone" name="leftTextZone" readonly>
</textarea>

<br>

</div>

</BODY>
</HTML>


3- la page contenant les 2 frames

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">

<script LANGUAGE="JavaScript">
var pageStart="<HTML><HEAD></HEAD><BODY BGCOLOR=blue TEXT=white><H2>Server pushes: <P>";
var pageEnd="</H2></BODY></HTML>";

// la fonction javascript appelée par la frame cachée
function push(content)
{
window.frames['displayFrame'].document.getElementById("leftTextZone").value = content;
}

</script>
</HEAD>

<FRAMESET BORDER=0 COLS="*,*,0">
<!-- frame visible -->
<FRAME SRC="frameToDisplay.html" NAME="displayFrame" SCROLLING=yes>

</frame>

<!-- frame cachée-->
<FRAME SRC="hiddenFrame.php" NAME="pushletFrame" BORDER=0 SCROLLING=no>
</frame>
</FRAMESET>

</HTML>


Normalement, si vous avez bien nommé vos fichiers ça devrait marcher... jusqu'au timeout de votre serveur (30 secondes par défaut) !
Je reste, bien entendu, à disposition pour répondre à vos questions...

mercredi, juin 14

Tout l'art de dire du mal de Google

Toute société qui attire trop l'attention finit par subir des critiques plus ou moins jusitifiées de la part de chroniqueurs en mal de sensations. C'est évidemment le cas de Google.
Les reproches en question varient plus ou moins en fonction des époques et des supposées compétences de leurs auteurs et ne sont pas du tout à mettre dans les mêmes tiroirs.

- ceux concernant le respect de la vie privée : Google stocke beaucoup de vos informations et ça pose des problèmes. Ex, ils pourraient les utiliser contre vous ou à des fins commerciales qui s'avéreraient nuisibles pour vous, les transmettre aux services secrets américains, etc... L'attitude de Google a été, jusque là, exemplaire sur ce point, refusant à plusieurs reprises de transmettre des informations à l'administration américaine par exemple. Ce type d'interrogation est certes légitime, mais rien ne vient l'étayer et n'est absolument pas spécifique à Google : toute société hébergeant des informations pose ce problèmes (Yahoo, Microsoft, vos banques...)

- ceux concernant la déontologie avec le tournant "Gu Ge". Google a accepté de censurer ses résultats pour pouvoir implanter des serveurs sur le sol chinois. Je m'étonne qu'on critique beaucoup Google alors que la société a été la dernière à plier (après Ms et Yahoo!) faute de solution de rechange : si Google refuse, ses concurrents qui ont accepté le deal prennent les parts de marché, et du coup Google n'a plus de moyen de faire entendre sa voix. Les vrais responsables sont dans cette affaire le gouvernement chinois et son chantage d'une part, l'OMC incapable de faire respecter le droit du commerce international d'autre part.

- ceux concernant les produits de Google. Google a en effet de nombreux produits dont certains sont des échecs ou des demies-réussites. Il est dans la politique de la société que de laisser vivre de nombreuses initiatives à la manière d'une couveuse de start-ups. Il est donc normal de critiquer les produits de Google qui méritent de l'être : Gmaildrive (une bonne idée) qui fait planter les machines, Google Desktop pénible à paramétrer, l'effet d'annonce Google Pack...

- ceux concernant la stratégie de Google : Google fait trop de choses, Google n'innove plus. Outre le caractère un peu contradictoire de ces deux critiques, il faut souligner leur caractère fortement subjectif. J'ai longuement débattu de la capacité d'innovation de Google sur ce blog et sur Techcrunch (qui est très fort au petit jeu du dénigrement de Google) et ne reviendrai pas encore dessus (sauf commentaires de votre part). Quant à l'aspect "Google fait trop de choses", cela me paraît logique dans le cadre de la politique d'entreprises largement assumée par ses fondateurs : l'avenir dira si c'est une bonne politique.

- ceux concernant les adwords et là... je suis entièrement d'accord surtout quand JM Leray nous l'explique si bien.

jeudi, juin 8

Google Spreadsheets : Ajax plus fort que Flash

Oui, je sais encore une news sur Google... mais là encore, c'est du lourd. J'ai eu la chance de recevoir une invitation à GoogleSpreadSheets, le nouvel Excel en ligne de Google, et je pense avoir reçu quelques instants plus tard ma plus grosse claque depuis mes premiers clics sur Google Suggest (qui m'avait fait découvrir Ajax).

Les développeurs de ce truc ont fait un boulot tout simplement extraordinaire et on sent à quel point Google maîtrise désormais Ajax : tout répond au doigt et à l'oeil, la console javascript ne m'annonce aucun bug (contre quelques milliers à l'ouverture de Gmail), d'un point de vue ergonomique et fonctionnel c'est très bien pensé... et ça dépasse pour moi toutes les tentatives de tableurs en ligne de très, très loin (iRows et Numsum n'étaient pourtant pas si mal, mais moi, à leur place, je me suiciderais immédiatement... ou j'irais postuler pour un emploi chez Google).

Je laisse à d'autres blogueurs le soin de vous détailler les fonctionnalités de la chose, ce qui m'intéresse ici, c'est la performance technique. Avec ce produit, on arrive à une ère que je ne soupçonnais pas d'arriver avant encore un an ou 2 : un produit Ajax ergonomiquement supérieur à ce qu'offrirait Flash.

En effet, jusqu'ici c'était pour des raisons de standardisation, d'ouverture, de référencement et de portabilité potentielle que l'on utilisait Ajax plutôt que Flash sur des interfaces riches... mais il restait plus simple et souvent plus joli au final d'utiliser Flash (Gliffy pour réaliser des diagrammes en est un excellent exemple). Mais cette application marque un tournant : une application Ajax peut être belle, ultra-réactive et fonctionnelle... et probablement pas si longue à développer avec des outils tels que le Google Web Toolkit.

Ce produit qui, c'est certain, va connaître un grand retentissement, est tout le symbole de la nouvelle génération de logiciels qui va écraser la précédente : web, riche et collaboratif... web 2.0 en somme !

vendredi, juin 2

La stratégie Webtop / Desktop / Mobtop de Google se précise

Quelques nouvelles ont montré cette semaine que la stratégie de Google consistant à donner tous les moyens aux utilisateurs de placer leurs outils de bureautique en ligne était plus qu'un fantasme d'analyste en mal de sensations.

La première est de d'ordre économique : Google file 1 petit milliard de dollars à Dell pour que celui-ci installe son Google Desktop sur 100 millions de machines dans les 3 ans à venir.
Le Google desktop va donc devenir un outil répandu sur un maximum de machines et va peu à peu apprendre aux utilisateurs à tirer partie du meilleur du webtop et du desktop. La majorité des utilisateurs parviendra-t-elle à suivre ? Je n'ai pas encore d'avis sur la question mais Google en semble convaincu...

La seconde est d'ordre technique avec l'intégration de Google Calendar dans Google Desktop. Désormais, Google desktop vous offre aussi bien en ligne qu'hors ligne de la recherche bien sûr, mais aussi vos mails et votre agenda. Outlook et ses semblables sont donc bien complètement obsolètes à compter de ce jour.
En suivant cette logique, on pourrait voir débarquer un jour un client de synchronisation Writely (racheté il y a quelques mois) pour OpenOffice (à propos duquel Google a mené des négociations avec Sun)... mais ce n'est là qu'une supposition et je n'ai rien de concret sur le sujet (Google pourrait d'ailleurs mettre au point un tel agent pour Word sans demander l'avis Microsoft) !

Troisième point : les nouvelles fonctionnalités sortant régulièrement pour téléphones mobiles, pour Gmail et Gcalendar par exemple, montrent que Google veut saisir une opportunité : personne ne maîtrise pour le moment le trio web-desk-mobile, pas même Microsoft.
Offrir aux utilisateurs une bureautique s'adaptant à leurs possibilités (leur bureau, un PC distant, un téléphone) peut, et c'est pour moi cette fois évident, donner un avantage décisif à celui ou ceux qui y parviendront... d'où l'apparition de la notion de "Mobtop" (le desktop pour téléphone mobile), un nouveau champ de bataille de l'ère web 2.0.

vendredi, mai 26

Selenium : du vrai test-driven development pour le web 2.0

Le test-driven development (pratique très liée à l'eXtrem Programming) passe peu à peu dans les moeurs des développeurs web et c'est tant mieux. Mais à l'heure du web 2.0, les principaux frameworks avaient une grosse lacune : la quasi-absence de tests sur les fonctions Javascript.

Quand on sait l'importance qu'a repris javascript depuis l'avènement d'AJAX, c'était même plus qu'un manque, et cela obligeait à limiter les tests unitaires aux seules classes métier d'un projet... ce qui devenait ridicule étant donnée la part prépondérante de l'interface homme-machine dans les temps de développement !

Selenium apporte depuis quelques temps déjà (il vient de sortir dans sa version 0.7) une réponse très satisfaisante à ce problème via 2 produits open-source :

- Selenium IDE est un plug-in pour firefox qui vous permet d'enregistrer des scénarios tests de manière simplissime et de les réexcuter à l'envie.

- Selenium Core est système vous permettant de programmer directement vos tests en tappant vos instructions dans des tables HTML. Ces tests peuvent être ensuite automatisés et intégrés à votre petite "software factory".



Le tout fonctionne à base de Javascript et simule vraiment les actions d'un utilisateur dans un navigateur web. Bref, si vous voulez vous mettre au test-driven development et au web 2.0, Selenium me semble à ce jour incontournable.

lundi, mai 22

Du bon usage du tagging

Suite à un petit débat sur TechCrunch, je me permets de vous livrer quelques réflexions sur un phénomène très web 2.0 : le tagging.

Le tag est aujourd'hui perçu comme une solution de classement et de partage des informations ultime, en particulier avec les succès de Flickr et de delicious. Toute application web 2.0 devrait donc, à en croire certains, comporter un système de tags pour être réellement efficace. Ce type de raisonnement tient d'après moi plus du prêt-à-penser que de l'analyse... je vous propose donc une petite analyse d'un cas d'actualité : Google Notes.

Google Notes est système de prise de notes sur des pages web favorites (via un plug-in sur votre navigateur), notes que vous pouvez éventuellement rendre publiques façon delicious. Or il est reproché à Google Notes l'absence du tagging. Je ne comprends pas ce reproche et voici pourquoi :

Le tagging est élément très important du web 2.0. Mais pourquoi ?

Parce qu’il permet de passer d’un système de “taxonomy” (classement arborescent unique) à un système de “folksonomy” (classement pas les utilisateurs et non-arborescent) de manière très simple…

Or Google a déjà un système de “folksonomy” avec son système de prise de notes en langage naturel et son moteur de recherche… le tag devient alors tout simplement désuet (d’ailleurs vous pouvez prendre des notes similaires à des tags, si cela vous chante). Rappelez-vous d’une des devises de Google : “ne classez plus, cherchez”. Et c’est à mon avis là, l’erreur des analyses que je dénonce ici : elles voient ce choix comme un manque alors que c’est au contraire un point fort vis-à-vis de la concurrence.

Et vous, qu'en pensez-vous ?

mercredi, mai 17

Google Web Toolkit : enfin une bonne raison de se (re)mettre à Java

Le monde du web 2.0 était jusque là dominé techniquement par :
- PHP (avec de l'Ajax fait main)
- .Net (avec ATLAS)
- RubyOnRails (les créateurs ayant réalisé la désormais célèbre librairie "prototype.js")
- Flash (même si cette techno reste proscrite chez de nombreux concepteurs web)

Java était plutôt resté en marge de ce mouvement... mais voilà que Google - les quasi-inventeurs d'AJAX- redonne de sérieux arguments à cette techno avec Google Web Toolkit : un pack de développement pour applications web modernes vraiment novateur.
C'est à dire :
- compilation de code Java vers JavaScript (!)
- possibilité de débuguer
- compatibilité "cross-browser" avancée
- nombreux widgets à disposition

C'est vrai Google nous sort régulièrement des gadgets ces derniers temps... mais là, c'est un truc sérieux et terriblement bien vu techniquement : Google ne se positionne pas ainsi par rapport à un très décevant Yahoo!UI mais plutôt face à l'ATLAS de Microsoft.NET !
Pour le développeur, je pense qu'ATLAS reste plus productif (essentiellement du fait de Visual Studio) mais développer en Java est plus simplement gratuit et offre probablement plus de souplesse...
bref, enfin une bonne raison de regarder à nouveau du côté de Java !


NB : j'ai bien noté votre intérêt pour un tuto sur COMET, je vous en promets la première partie pour la semaine prochaine...

lundi, mai 15

CakePHP : le RubyOnRails de PHP

CakePHP, c'est du gâteau : c'est ainsi que présentent les concepteurs de ce framework leur merveilleux bébé. Ca faisait longtemps qu'on attendait que les principes de RubyOnRails (que j'inclus personnellement dans la vague web 2.0) soit repris dans les 3 grands piliers du web : Java, .NET et PHP, et on peut désormais dire que c'est fait pour PHP tant cette implémentation est réussie.

On a donc un framework essentiellement basé sur les patterns MVC (Model-View-Controller) et ActiveRecord permettant des développements ultra-rapides : scaffolding (génération automatique d'interfaces pour les phases de développement), multitude de fonctions prêtes à l'emploi, présences de "helpers" facilitant la vie du développeur sur tout un tas de trucs pénibles (AJAX, HTML, etc...).

C'est souple, efficace, supporté par une vraie communauté active et sous license MIT : que du bonheur !