Google Chrome – Béta ?

7 09 2008

Ou la chronique d’un lancement réussi, et ce n’est pas évident pour tout le monde (pas évident tout court, il faut reconnaître).

Google vient donc de sortir son propre navigateur web, dont le développement a commencé il y a 2 ans. Ses principales caractéristiques sont :

  • Moteur de rendu WebKit (le même que celui de Safari)
  • Une gestion des fenêtres par processus avec la promesse qu’en cas de plantage, le  navigateur reste opérationnel pour les autres fenêtres.
  • Un moteur Javascript qui compile le code et annonce une performance exceptionnelle.

L’objet de cet article n’est pas un énième comparatif avec Firefox ou IE mais plutôt de commenter la réussite de Google sur son lancement Produit et sur la qualité de celui-ci.

En effet, en installant un produit béta, je m’attends à subir de nombreux plantages et déconvenues mais en passant une journée complète dessus : recherches google, gmail, deezer, hotmail, installation  d’un dotnetnuke sur mon local  IIS7, je n’ai eu aucune erreur…

C’est si rare que l’on ne peut être qu’ébahi devant une telle performance !

 

ggchrome

Hotmail Fail :Ouverture d’hotmail sous chrome

 

Sur la BD chrome, (et oui, ils ont fait une bande dessinée pour la sortie de Chrome), Google met en avant son processus qualité et ses tests unitaires automatisés et manuels.

image

C’est un argumentaire de poids et un exemple qui démontre qu’avec un environnement de tests performant, il est possible d’ouvrir au public avec une version stabilisée.

On parle souvent du principe « release early, release often » qui signifie qu’il est important d’avoir un feedback des utilisateurs régulier et le plus souvent possible.  Malheureusement pour beaucoup d’équipes cela signifie un rush sur les sorties avec une qualité discutable…

J’ajouterais donc aujourd’hui un troisième principe : « release early, release often, but release it works » !



Compte rendu Techdays 2008 – Partie 3

23 02 2008

Pour terminer de manière exhaustive ce compte rendu, voici la description de la deuxième journée.

 

Présentation générale SQL Server 2008

Session intéressante car nous avons eu droit à un point de vue 360° sur les nouveautés.

Je retiens particulièrement le travail apporté sur la partie Reporting. En effet, le moteur était déjà très intéressant dans la version 2005 mais quelque peu limité dans son utilisation par des novices. Avec l’arrivée de nouveaux outils orientés « Business », cela sera un argument de plus pour ce produit.

 

Software+Services : Introduction

Session décevante où la première partie a consisté en la lecture des slides.

J’aurais aimé une présentation plus argumentée avec une comparaison des différents moyens pouvant être mis en oeuvre pour mettre en place du Software + Services.

 

Commerce Server 2007

Ayant déjà une expérience sur les problématiques e-commerce et ayant manipulé un peu Commerce Server, j’étais intéressé par le sujet. En effet, je souhaitais voir comment l’outil était manipulé par des experts du domaine. Et bien, je continue à avoir un à avis favorable sur le sujet et je pense que CS2007 est un des solutions les plus pertinentes actuelles en e-commerce prêt à l’emploi. L’aspect « Out-of-the-box » est un vrai argument avec un starter-site collant au maximum à un besoin standard.

 

Team System Rosario CTP

Session agréablement présentée par deux personnes de chez Winwise. Malheureusement le contenu était relativement pauvre en nouveautés. Rien de transcendant n’a été présenté mais juste des améliorations du produit. La conclusion étant de toute façon : « rien ne sert d’attendre rosario, passez déjà à Team System 2008« …

 

Conclusion

L’impression d’événement de l’année pour les développeurs a été amplement confirmée par le nombre de visiteurs (16 000) et la qualité des 300 sessions présentées.  Vivement les 2009 ;-)



Compte rendu Techdays 2008 – Partie 2

21 02 2008

Suite de la première journée :

Nouveautés de C#3

Session en « speed » pour nous faire un maximum de démonstration sur les nouveautés du langage. Session la plus technique de mon parcours. Car oui je considère que si je viens aux Techndays, c’est pour m’ouvrir à des horizons et des perspectives différentes et pas pour me former en 2 jours… Néanmoins cette session fût très intéressante et a largement piqué ma curiosité sur les lambda expressions.

En dehors de ces fameux lambda, on remarquera surtout la stabilité du langage pour sa troisième version. Preuve en est la qualification de « Sucre syntaxique«  sur quasiment toutes les nouveautés du langage.

 

ROA – Symposium DNG

Je mets la note de meilleure session des Techdays à Aurelien Pelletier pour sa présentation sur ROA (Ressource Oriented Architecture).  J’ai apprécié d’une part le speaker qui a su nous entretenir sur le sujet pendant une heure sans temps mort et d’autre part le sujet qui préfigure d’une évolution passionnante du web. J’engage ceux qui ne connaissent pas encore le sujet à creuser tant cette façon de procéder est en adéquation avec l’utilisation du web tel que nous le faisons aujourd’hui.

Pour les slides, c’est par ici.

.NET et l’Open Source – Symposium DNG

La grosse déception de la journée mais je vais tenter d’être factuel. J’avais une attente assez forte sur cette présentation car étant un « double compétence » Java/.NET, l’intérêt d’utiliser des outils et des frameworks Open Source est une évidence pour moi. J’attendais donc de cette session des retours sur leur utilisation et quels étaient leurs conseils en la matière.

Malheureusement, Didier Girard et son acolyte se sont contenté d’expliquer les principes de l’open source avec des généralités limite (Mettre Visual Studio Express sur une liste de produits open-source par exemple), de « torcher » en 3 slides une explication du fonctionnement de Spring et de Hibernate et de conclure que leur projet a été réussi grâce à ces technos.

Je pense que le public présent n’a pas pu apprécier cette session à sa juste valeur. En effet, beaucoup de personnes présentes dans la salle connaissaient déjà des frameworks Open Source et donc , ne pas avoir d’éléments factuels, ni de comparaison technique ou grilles de décision fait que la conclusion de la session n’a apporté aucune pierre au débat.

Pour les personnes novices sur le sujet, la session a permis de dissiper un peu de F.U.D sur la peur d’utiliser de l’open source en environnement Microsoft mais dans ce cas, il fallait mieux mettre en avant et expliquer les outils Spring et Hibernate au lieu de se contenter d’afficher le code des tutoriaux. On attendait une explication plus générale et donnant l’eau à la bouche et l’envie d’installer chez soi.

Dans tous les cas, je salue le travail réalisé pour cette session qui va dans le bon sens et j’attends avec impatience les prochaines sessions sur le sujet…



Ruby on Rails 2.0

11 12 2007

Un an et demi s’est écoulé depuis la 1.1. Le changelog est à la mesure du changement de numéro de version.

Toutes ces nouveautés paraissent bien utiles, malheureusement je n’ai plus le temps de suivre de près l’évolution de ce langage.

En effet, ces derniers temps font que je penche désormais beaucoup du coté .NET, mais je reste attaché profondément aux valeurs portées par ce framework. (Un jour peut-être que j’y reviendrais…)

C’est pour cela aussi que je vois venir avec grand intérêt le framework ASP.NET MVC dont les personnes à l’origine sont également fans de Rails.

Petite liste des fonctionnalités « inspirées » :

  • Séparation des rôles : Possibilité de tester la couche Controlleur sans conteneur web
  • Hautement extensif et pluggable : Comme tout est à base d’interfaces, il est facile d’intégrer un moteur d’injection de dépendance
  • URL Mapping Natif : Idem des routes de Rails
  • Moteur de template pour la couche présentation
  • etc.

Tant mieux si Ruby on Rails peut apporter sa philosophie dans d’autres environnements, tout le monde y sera gagnant.



Bonnes pratiques sous Subversion

19 09 2007

Un gestionnaire de source est toujours la 1ère étape dans une démarche d’industrialisation.

Si vous n’avez pas vos sources dans un référentiel au moment où vous lisez ces lignes, arrêtez-vous de suite et prenez le temps de le faire (Subversion).

La gestion de ce référentiel implique une certaine rigueur et une liste « officielle » de bonnes pratiques vient d’être publié sur le site de Subversion. J’ai repris les idées les plus intéressantes :

  • Utiliser une arborescence propre

Quand on initialise le référentiel, il est facile de créer une arborescence inefficiente qu’il faudra supporter jusqu’au bout du projet. La recommandation officielle est de créer les trois dossiers : /trunk, /branches et /tags.

  • Archiver des modifications fonctionnelles

Lorsque vous archivez vos modifications sur le source, celles-ci doivent être cohérentes et former un tout. Cela permettra un meilleur suivi des changements. De plus, ce changement pourra plus facilement être lié à un bug ou autre…

  • Relier le gestionnaire des bugs

Il est fondamental de pouvoir être capable de relier un changement du source avec une « unité de travail ». Cette unité pouvant être un bug, une demande de changement, une évolution, etc. De ce fait, il faut associer à chaque archivage l’ID de l’item traité.

  • Patient avec les gros fichiers

Subversion sait gérer le versionning des fichiers binaires mais de manière générale, manipuler ces fichiers engendrent des problèmes de latence qui peuvent devenir important. En effet, les fichiers sont copiés plusieurs fois en plusieurs endroits (dans le temp, dans le working local, …) et sur de gros transferts, le développeur devra être patient.

  • Savoir quand créer une branche

Point critique, car la création d’une nouvelle branche n’est l’affaire que d’un compromis. Compromis entre l’avantage de pouvoir écrire du code non dépendant de la branche principale avec l’inconvénient de devoir un jour fusionner la branche avec le code principal.

A cette problématique, la réponse est question de contexte. Néanmoins trois stratégies se distinguent :

  1. Aucune branche : Demande une forte discipline de la part des développeurs qui devront minimiser les risques de « break » du build.
  2. Branche pour toute évolution : Chaque évolution est micro-managée et validée avant intégration dans la branche principale. Adapté aux gros projets possédant une équipe dédiée aux builds.
  3. Branche pour les dev > 10j. Il s’agit de définir une limite où les développements qui nécessitent plus de temps se feront dans une branche à part. Pour information, c’est la technique employée dans l’équipe de développement du serveur Subversion.

 

Comme toujours, beaucoup de ces pratiques sont l’œuvre du bon sens. Si vous possédez également des techniques intéressantes, n’hésitez pas à partager ;-)



La barrière de l’identification

26 06 2007

Dans le monde web, un principe de base d’avoir le moins de friction possible. Le cas d’école est un processus de vente sur un site de e-commerce où l’on voit s’afficher en haut de la page « Etape 1/12« . Le taux de transformation (achat validé) se résume à ceux qui auront le courage d’aller au bout des douze étapes supposés. Autant dire beaucoup d’abandons !

Une autre friction importante est celle de la création d’un compte. C’est pourtant l’étape cruciale qui nous fait passer de simple anonyme à client. C’est un lien que le client crée de lui même en acceptant de s’incrire sur le site parce qu’il est convaincu du bien fondé de son choix. C’est un acte fort et engageant.

Et pourtant, les exemples ne manquent pas de voir s’afficher un formulaire de 3 pages avec une quinzaine de zones à remplir jusqu’à l’âge de mon chat…  C’est un peu comme si on entrait dans un magasin pour acheter des chaussettes et qu’un vendeur nous saute dessus pour prendre des mesures des pieds à la tête…

image

Certaines sites font des efforts, voir ici Twitter qui demande le minimum vital pour s’incrire :

image

C’est aujourd’hui la tendance la plus commune et la plus pertinante dans cette logique d’abaissement de la barrière d’entrée.

Mais on peut mieux faire.

Lorsqu’un visiteur vient pour la première fois sur un site, on l’authentifie grâce à un cookie session. Ce cookie permet de reconnaitre le visiteur pendant la durée de sa navigation sur le site. Mieux, le cookie peut être rendu persistant et dans ce cas, il reste dans le cache du navigateur autant que le site le souhaite.

L’idée est donc d’utiliser ce lien (le cookie) qui unit visiteur et site pour faire du visiteur un privilégié. 

Un exemple qui implémente parfaitement ce concept est Netvibes.

image

En effet, la première fois que l’on se connecte sur ce site, on se retrouve devant une page portail pleine. On peut alors s’amuser avec le site et déplacer, bouger et remplacer les blocs…

Si je ferme mon navigateur et que je reviens 1 mois plus tard sur netvibes (je confirme le mois, je viens de tester), grâce au cookie persistant, Netvibes a retrouvé mon identité et m’affiche le portail tel que je l’avais laissé la dernière fois ! 

Ce sentiment de « privilégié » incite fortement l’utilisateur à s’incrire car il a déjà investi du temps à « jouer » avec le site, donc pour ne pas tout perdre, le mieux est de s’incrire…



Blog Driven Development

25 06 2007

Je ne resiste pas à l’envie de vous citer cet extrait.

Blog Driven Developpement (BDD) :

Consacré aux développeurs qui pensent constamment au sujet de leur prochain post. Presque chaque ligne de code intéressante qu’ils produisent finit en post sur leur blog.

J’ai des noms… :-D

Via VDU.



Vendre l’accessibilité

11 06 2007

Comme on dit, « L’accessiblité est l’affaire de tous ».

Pourtant, c’est une pratique que l’on retrouve rarement mise en place dans les projets web. Le site Pompage.net propose une explication :
10 raisons expliquant pourquoi les clients n’ont que faire de l’accessibilité que je trouve très pertinente…

Le tableau dressé n’est pas encourageant mais ils proposent quelques voies de sortie intéressantes. Pour ma part, je retiendrais surtout le fait de vendre l’accessibilité comme une exigence fonctionnelle et non plus comme un problème technique.



Silverlight, le retour de l’applet

5 06 2007

 Ce post traine depuis trop longtemps dans mes brouillons, alors je publie avant qu’il ne soit complètement périmé…

Silverlight a été récemment annoncé par Microsoft au MIX07.

C’est une annonce intéressante car le produit est annoncé comme un Flash-Killer. Il faut oser aller sur ce marché où l’on considère aujourd’hui que le lecteur Flash d’Adobe est installé sur 95% des postes, ce qui représente une part de marché assez conséquente.

Silverlight est donc le nom officiel d’un produit en gestation depuis quelques temps. Son nom de code était « WPF-E ». Il empruntait son nom à la technologie WPF qui permet de réaliser des interfaces graphiques vectorielles puissantes en .NET 3.0. Un truc sympa et classique en WPF est qu’une vidéo est considérée comme une texture. On peut donc associer notre vidéo à un bouton ou la coller sur un cube en 3D assez simplement. Le WPF utilise également une sémantique de balises pour décrire l’interface. Il s’agit simplement d’un fichier XML et le langage du XAML.

Microsoft a donc repris les bonnes idées de son WPF (le XAML, la simplicité d’utilisation,…) et en a réalisé une version « Everywhere ». La version WPF faisant partie du framework .NET 3.0, elle est limitée à l’environnement Window…

Silverlight est donc une runtime qui s’installe sur le poste client qui est aujourd’hui disponible pour Windows et pour Mac (une version Linux sera proposé, implémentée en Mono).

Ce qui est amusant avec cette annonce est de voir à quelle point le mouvement est cyclique dans les inventions informatiques. En effet, depuis un bon moment maintenant on voulait alléger le client au maximum et utiliser le navigateur comme interface universelle. Les applets Java sont déclarés mortes et le succès des technologies AJAX ne sont pas là pour démentir.

Aujourd’hui, il parait aberrant de proposer à un client une solution où il faudrait installer une runtime sur le poste de l’utilisateur et pourtant c’est exactement ce que Microsoft nous propose.

Alors quelle est la pérennité d’une telle offre ?

A l’heure actuellle, Silverlight n’est pas prêt de remplacer toute le savoir que l’on commence à maîtriser sur les technos AJAX. Là où Silverlight peut séduire c’est par sa simplicité : pour une partie d’un projet ASP.NET où le besoin ergonomique est fort, on implémente une partie sous la forme d’un projet .NET Silverlight. Résultat, on ne change pas de technologie et on se retrouve avec une interface jolie. Si beaucoup de projets ouvrent cette voie, le cercle vertueux de l’adoption pourra démarrer. Car avec 10 ans de différences, j’espère que Microsoft aura prévu de contrer les arguments qui ont fait l’ »échec » des applets Java.



Vista et Office 2007, bilan des 5 mois

30 04 2007

Et oui, cela fait 5 mois que j’ai installé Windows Vista Edition Professionnelle et Office 2007.

Je me sers quotidiennement de ces outils. Les commentaires suivants sont donc l’expression de mon ressenti journalier…

Avant-propos : Tester les nouveaux produits fait partie intégrante de mon métier et de ma veille technologique, j’ai donc parfaitement conscience d’essuyer les plâtres quelquefois… Cette note a été écrite à destination des personnes qui ne veulent justement pas prendre de risques.

Windows Vista

J’avais décidé de migrer mon poste sous Vista car je voyais à l’époque trop de personnes s’extasier des nouveautés. J’avais moi aussi envie de participer à cette aventure ! J’avais évidemment pris mes précautions en réalisant un backup complet de la machine au cas où (Heureusement ce backup n’est jamais ressorti de son tiroir).

La première approche n’a pas été évidente avec une installation par mise à jour de l’OS qui a pris plus de 3H !

D’ailleurs, je pense avec le recul que 3/4 de mes problèmes de plantage sous Vista sont dûs au choix d’une mise à jour et non d’une installation « from scratch« .

Au jour le jour, l’interface de Vista est très agréable et on s’habitue vite aux petites améliorations ergonomiques et outils ajoutés sur l’interface.

Par exemple quand je me retrouve sous XP, je cherche instinctivement la fonction de tri rapide en haut à droite de l’explorateur. Cela montre que toutes ces améliorations qui peuvent passer pour frivoles sont un plus pour l’utilisation.

Le passage à une nouvelle version d’un système d’exploitation a également des implications sur les logiciels installés : un outil qui fonctionnait sous XP se doit (à un patch près) de fonctionner sous Vista. Sur ce sujet là, vous connaissez mon ressenti et il est loin d’être idyllique.

En effet, même si depuis la publication de mon billet, tous les patchs « finaux » pour Visual Studio sont sortis, certains développeurs se plaignent encore d’incompatibilité.

Pour moi, le dernier exemple en date est l’impossibilité d’installer correctement Sql Server 2005 Reporting Services sur mon poste. Après avoir cherché pendant plus de 3 heures, j’ai préféré abandonner et revenir sur un poste XP pour faire fonctionner le service (impresionnant non !)

Parlons maintenant d’Office 2007

Sur ce produit, je n’aurais qu’un commentaire : « excellent« . Quand on passe la journée sur un document Word / Excel ou Powerpoint, on découvre toutes les petites améliorations apportés sur l’interface qui en font un produit plus facile à utiliser et plus rapide en terme de productivité.

On sent qu’un gros effort ergonomique a été effectué sur le produit et c’est une satisfaction quotidienne à l’utilisation.

Je vous ai réalisé une petite vidéo flash pour vous montrer un « gadget » que j’aime bien : La réalisation interactive de diagrammes (graphique SmartArt dans le texte).

Conclusion : Pour une utilisation dans l’entreprise, mon conseil est de rester sous XP SP2 en attendant que les tous les drivers intéressants soient adaptés, que les logiciels soient mises à jour et que le matériel ne fonctionnant plus disparaisse…

Preuve en est, Dell qui propose à nouveau d’installer XP sur ses machines.

Pour Office 2007, foncez quand vous pouvez ! :-)
(A ce propos, je serais friand d’une comparaison OpenOffice / Office 2007 pour voir ce qu’il en est.)