Archive for April, 2008

Ubuntu 8.04 « Hardy Heron » est disponible

Il m’aura fallu cette news du Site du Zér0 [fr] pour m’en rappeler : la version finale d’Ubuntu 8.04 est sortie aujourd’hui. Vu que je tourne dessus depuis deux semaines, j’ai fini par ne plus attendre cette date… Bien que je pense faire une réinstallation complète d’ici quelques temps, probablement avant de démarrer mon stage (nouveau pays, nouvel ordi :) ). La nouvelle du Site du Zér0 est très détaillée - un peu verbeuse à mon goût, vu qu’ils ont pour principe de tout reprendre depuis le début, même dans leurs nouvelles - mais elle a le mérite de la clarté.

Si vous souhaitez vous mettre à jour, je ne saurais que trop vous conseiller d’attendre un peu, de ne pas tenter trop vite la mise à jour par Internet… La distribution étant de plus en plus utilisée, les serveurs sont plus ou moins surchargés les quelques heures, voire jours, suivant une sortie.

D’autant que cette distribution est une LTS, pour Long Term Support, soit Prise en charge à long terme en français : elle sera maintenue pendant plus longtemps que les autres versions, soit trois ans (bureau) et cinq ans (serveurs) au lieu de deux fois moins. Ceci est critique pour les mises à jour de sécurité et essentiellement pour les entreprises… Faire une mise à jour de son serveur trop fréquemment n’est pas recherché par les administrateurs réseau.

N’hésitez pas à télécharger un live cd [en], qui vous permettra de tester la distribution depuis le CD, sans rien installer sur votre ordinateur. Vous serez peut-être vite conquis… La difficulté de Linux n’est plus tant technique qu’une question de changement d’habitude.

Thursday, April 24th, 2008

CyberCity 2034

CyberCity 2034 [fr] est un jeu de rôle en ligne dans un univers post-apocalyptique. Le joueur évolue dans une ville-dôme où les quelques survivants de l’espèce humaine tentent de vivre. L’univers est pas mal du tout, et surtout le jeu est très bien fait au niveau du système. Pas de forums, mais simplement un Historique d’Evènements (HE). On peut parler avec uniquement les personnes présentes dans la même pièce que nous. On se déplace dans la ville (organisée en secteurs), on gère son équipement, on combat… Très intuitif, et les actions sont potentiellement illimitées, vu qu’un système de Propositions d’Actions permet de soumettre des situations peu classiques aux Maîtres du Jeu.

Je joue depuis 2 mois à ce jeu et ai proposé mon aide en développement de la version 4 voici quelques jours. Ma première tâche : rendre le site valide. Pas une mince affaire car il y a beaucoup de code ! Heureusement le site intègre un système de templates… Je n’ai donc pas à naviguer parmi le PHP. Ma prochaine tâche sera soit de rendre le design CSS plus propre et moins lourd, soit d’aider à rendre CyberCity compatible avec PostGreSQL. En effet, le site tourne actuellement sous MySQL, mais atteint les limites de ce SGBDR fait pour les petites bases.

Un projet motivant, pour l’instant pas exigeant vu qu’il ne s’agit que de XHTML. A terme, ca deviendra probablement plus technique. Ca fait un bout de temps que j’ai envie de travailler sous PostgreSQL… Donc ça promet d’être intéressant. Pas simple par contre !

Thursday, April 24th, 2008

Subversion, un système de gestion de versions

Je suis amené à utiliser Subversion depuis quelques temps, d’abord avec le projet KDE [fr], puis parce que je commence à contribuer à CyberCity 2034 [fr]. Subversion est un système de gestion des versions de fichiers, construit sur le principe client/serveur. Le principe est le suivant : les fichiers sont hébergés sur un dépôt (repository) du serveur. Chaque utilisateur récupère une copie de travail (working copy), qu’il est amené à modifier en local, sur son poste. Lorque son travail a avancé, il le soumet au dépôt, on dit qu’il le commite. Cela crée alors la version suivante (on parle de révision) du projet.

Le système a plusieurs intérêts : lorsque plusieurs développeurs travaillent en parallèle, ils sont avertis si les fichiers ont été modifiés lorsqu’ils tentent de commiter. Ils peuvent alors afficher les différences, voire fusionner les documents. D’autre part, toute révision des fichiers est gardée en mémoire. Si un commit génère une erreur, on peut revenir à la révision précédente… Très pratique sur des gros projets.

Subversion gère la pose de tags : lorsque le travail est arrivé à maturité, on peut décider de poser un tag sur la révision courante, afin d’enregistrer l’état du projet dans un dossier virtuel différent. Cela permet d’avoir constamment accès à une version précise, même si depuis, les fichiers du dépôt ont évolué. Les branches, c’est-à-dire l’évolution dans deux directions différentes d’un même projet, sont également prises en charge.

Subversion est un outil très puissant. De très nombreux projets de développement l’utilisent. Les utilisateurs peuvent souvent récupérer la dernière version d’un logiciel en se connectant anonyment au SVN du projet (ils sont en lecture seule).

En tant que développeur Web essentiellement, j’ai vu de nombreux avantages à utiliser Subversion :

  • quand je travaillais en local, je devais mettre à jour via FTP à chaque avancement, ce qui prenait du temps et me faisait risquer d’écraser des fichiers évolués ;
  • quand je travaillais à même le serveur, il m’est arrivé de perdre, sur une coupure de connexion, une partie d’un fichier, et donc de devoir fouiller dans les sauvegardes pour retrouver une vieille version du fichier ;
  • Subversion intègre un système dérivé des triggers, les « hooks », qui déclenchent automatiquement des scripts à certains moments-clé (avant ou après commit par exemple). On peut ainsi les utiliser pour mettre à jour la version en ligne du site à des moments clé…

J’ai mis au point, à force de tester en local, une procédure pour installer un dépôt Subversion sur un serveur et mettre en place les accès à distance. Le tout se fait en une demi-heure, vous en saurez plus incessamment sous peu : en effet, la documentation abonde, mais je n’ai rien trouvé de synthétique correspondant parfaitement à ma situation. Je pense donc qu’il sera utile de faire un petit topo.

Thursday, April 24th, 2008

Utilité des standards : le contre-exemple de M6replay

M6 a lancé depuis un mois M6Replay [fr], un service permettant de visionner en ligne les émissions et séries passées sur la chaîne plusieurs jours avant. Je ne peux pas vous parler des fonctionnalités du service (Arte a quelque de similaire, +7 [fr]), vu que l’accès au site a tout d’un parcours du combattant.

Pas Windows ? Revenez quand vous l’aurez !

Le service se fonde en effet sur la technologie DRM de Microsoft, et n’est donc (pour le moment, nous jure-t-on) qu’accessible à partir de Windows. Pour le moment, car le service est prévu pour être adapté à Mac. Notons qu’aucune date n’est avancée et que les utilisateurs de Linux peuvent clairement faire une croix sur le service. On ne peut pas utiliser du libre et avoir accès au propriétaire, voyons…

Pas la bonne config ? Revenez quand vous l’aurez !

Une fois qu’on est sous Windows, il faut encore utiliser Internet Explorer, avoir les DRM à jour (je ne sais pas ce que ça veut dire exactement, vous vous en doutez), JavaScript activé (ça, à la limite…)… Et puis si ça ne marche pas, eh bien on ne sait pas exactement pourquoi. Parfois sous Firefox il suffit d’ignorer l’avertissement d’incompatibilité pour que tout fonctionne. Parfois, ça rame (les serveurs ne tiennent pas forcément le coup, il faut dire que l’offre en ligne est ambitieuse : les programmes disponibles 1 h après leur diffusion et durant 7 à 15 jours). Parfois, on ne peut pas mettre pause, naviguer dans le fichier, parfois tout freeze…

Et les standards ?

En fait, il semblerait qu’ils n’aient jamais fait partie du cahier des charges. J’ai essayé de valider la seule page d’accessible, à savoir la page de test de compatibilité m’informant que je ne pouvais pas mettre les pieds sur le site… Le résultat est carrément catastrophique. Le test de validité ne peut même pas démarrer car le document n’est pas encodé correctement !

A tous les sceptiques de l’utilité des standards… Si M6 avait intégré la conformité aux normes dans son cahier des charges, l’interface [fr] ne serait certainement pas aussi belle, le tout ne ferait peut-être pas complètement « Web 2.0 » (comprenez dans ce contexte clinquant et dynamique, avec des vidéos qui bougent de partout), mais le service serait probablement accessible à plus de 50% des internautes, ce qui ne semble pas être le cas actuellement.

Tuesday, April 22nd, 2008

Firefox 3 - encore de quoi s’extasier

Tristan Nitot, accomplissant à merveille sa démarche de promotion de Firefox 3, a rédigé les 10 raisons d’utiliser ce logiciel, en anglais et en français. Ca vient de chez Mozilla, c’est encore plus convaincant que ce que je pourrais vous dire !

De mon côté, une nouvelle découverte que j’ai faite : on peut ajouter des moteurs de recherche à la barre de recherche en haut à droite. Dès qu’on est sur un site contenant un moteur de recherche (j’ai essayé avec php.net, Wikipédia, OpenSubtitles.org…), la barre devient bleue, et il suffit de deux clics pour ajouter les moteurs de recherche. Il me semble que c’était absent de Firefox 2, mais je peux me tromper ! En tout cas c’est très pratique.

Bref, à l’usage je ne me lasse pas de Firefox 3. Il simplifie grandement la navigation, et c’est quand même son boulot ! L’awesome bar porte bien son nom, notamment (« barre géniale »). Faites-vous une faveur, testez-le ! En plus la beta 5 est réellement stable.

Sunday, April 20th, 2008

Firefox 3 - quelques petites choses qui changent la vie

Je continue ma découverte de Firefox 3.

Quelque chose de très sympa au niveau sécurité : les mots de passe enregistrés par le navigateur peuvent maintenant faire l’objet d’une protection par mot de passe global. Bref, c’est un portefeuille sécurisé qu’intègre Firefox 3. L’option n’est pas activée par défaut mais est disponible dans l’onglet Sécurité des Préférences. C’est très rassurant, je me suis empressé de définir un mot de passe très robuste. A chaque ouverture, dès que Firefox tombe sur une page dont il a stocké des informations à ma demande, s’affiche la demande du mot de passe. Le portefeuille reste ouvert jusqu’à la fermeture du navigateur.

Quand Firefox ferme, il peut maintenant restaurer les onglets comme ils étaient à la fermeture du navigateur. Il le propose à la fermeture. Pour ma part j’ai activé l’option à tous les coups, ca évite une pop-up et c’est bien pratique. Cette fonctionnalité s’ajoute à la fonctionnalité de récupération de session en cas de plantage.

Rien de révolutionnaire, mais la somme des fonctionnalités améliore nettement le confort d’utilisation.

Friday, April 18th, 2008

Stratégie Internet de TF1

LeMonde.fr [fr] rapporte que TF1 réclame 100 millions d’€ à Youtube et 35 millions d’€ à Dailymotion pour contrefaçon : les deux sites de partage de vidéo hébergent des séquences propriétaires de TF1, violant ainsi le Code de la Propriété Intellectuelle.

Si la requête de TF1 semble justifiée, vu qu’en effet Youtube et Dailymotion permettent la diffusion d’extraits d’émissions de TF1 sans son autorisation expresse, on peut s’interroger sur l’opportunité de ces deux actions en justice.

En effet, elles sont initiées alors que la chaîne cherche à accroître sa présence sur l’Internet et les supports émergents. Sa participation dans OverBlog est passée de 20% à 35%, elle a investi dans le portail de localisation Nomao et continue le développement de WAT, sa propre plateforme de partage de vidéos. Mettre sous pression les deux hébergeurs de vidéos les plus populaires contribuera probablement à l’accroissement des visites de WAT, hébergeant légalement les extraits d’émissions de TF1. La chaîne envisage également de faire de WAT un moyen de visionner les programmes passés les jours précédents.

Si WAT semble être un moyen cohérent d’accroître sa présence sur le Web, on peut se poser la question de la pertinence des autres investissements de TF1. Ils sont économiquement justifiés, car rentables (OverBlog et Nomao accueillent à eux deux plusieurs millions de visiteurs par mois), mais ne font pas sens à première vue. Quel intérêt pour une chaîne de télévision d’agir dans le domaine du blog ou de la localisation ?

Il serait à mon avis dommageable pour l’image de la société qu’elle investisse dans une pure logique de prise de position avantageuse sur le Web, sans avoir de logique de contenu et de comportement cohérente avec son activité traditionnelle.

Thursday, April 17th, 2008

Données « dans les nuages » : prudence

Avec la banalisation de l’Internet et des formes d’accès aux ressources en ligne (ordinateurs, PDAs, smartphones…), de nombreux acteurs ou observateurs du Web prédisent l’avènement proche du « tout en ligne ». Sans aller jusqu’à annoncer cette situation extrême, force est de constater qu’aujourd’hui, les services en ligne prennent une importance croissante. Pour le particulier, l’offre est très diverse et sa qualité augmente constamment. Google Docs [en] ou Microsoft Office Live [en], entre autres, fournissent chacun une suite bureautique en ligne, avec un espace de stockage. Flickr [fr] ou WebPicasa [fr] (de Google) permettent de partager des photos sur une galerie personnelle en ligne. La tendance est à l’interopérabilité : des services innovants cherchent non pas à proposer leurs propres applications en ligne, mais à permettre d’agir avec un maximum d’applications déjà existantes. OpenBox [en], une solution développée par Box.net, permet ainsi avec le même compte et la même interface de modifier ses photos via Picnik, d’accéder à une suite bureautique, Zoho, d’authentifier ses documents grâce à EchoSign…

Ce genre de services ne manque pas d’avantages. A mon avis, le plus important est sans doute le fait de pouvoir gérer ses données de n’importe quel terminal, et plus seulement de son poste personnel. Plus besoin de s’assurer que les logiciels adéquats sont bien installés sur l’ordinateur, plus de problèmes de compatibilité, d’oubli de clé USB, de conflits de versions… Cela relativise aussi le risque de panne d’ordinateur : la probabilité de perte de données tend vers zéro. Bref, tout cela permet de rendre la gestion des données plus proche des comportements dits « Web 2.0 ».

Il faut cependant faire preuve d’une grande prudence. L’Internet, comme beaucoup de secteurs de l’économie, est structuré par un petit nombre de grandes compagnies. Google, Yahoo! ou Microsoft maîtrisent (directement ou pas, et avec plus ou moins de réussite) une grande partie des applications, des flux, des comportements. La palme revient évidemment à Google : aucun internaute ne peut à mon avis assurer ne jamais avoir eu de contact avec un produit Google. Moteur de recherche, suite bureautique, galerie de photos, publicité en ligne, espace de stockage, boîte de courrier électronique, gestion de livres en ligne, blog, cartes, actualités, agenda, groupe, vidéo en ligne… Une telle liste permet de prendre conscience d’un risque majeur : la perte de contrôle des données. Un fichier sur disque dur est maîtrisé par son utilisateur (sauf en cas de virus, mais c’est un autre problème). Qu’en est-il d’un fichier hébergé sur un serveur ? Comment s’assurer que le fichier est et restera présent à son emplacement ? Scénario catastrophe : les serveurs de Google, pour une raison quelconque, ne sont plus accessibles pendant une journée…

Sans prôner la paranoïa, une habitude de prudence est de mise. Faire confiance est une chose, être inconscient une autre. Les aficionados du tout en ligne semblent parfois l’oublier : la vie privée est une notion très relative sur Internet. Dans la pratique, il vaut mieux préférer la location d’un serveur dédié à l’utilisation de services en ligne. Le coût n’est pas le même, mais la confidentialité et la sécurité non plus. Pour des budgets plus modestes, on n’oubliera pas la sacro-sainte double sauvegarde sur disque dur, terriblement old-fashioned mais diablement efficace. Le chiffrement des données stockées en ligne est une option à envisager quand on manipule des fichiers un tant soit peu confidentiels.

L’enthousiasme du « Web 2.0 » (expression que je n’aime guère, j’y reviendrai peut-être) ne doit pas occulter les enjeux de protection de la vie privée et de sécurité des données. A force de travailler dans les nuages, on risque très vite d’y voir flou.

Thursday, April 17th, 2008

Ubuntu 8.04 - premières impressions - gestion des périphériques

Mon utilisation quotidienne de mon ordinateur me fait petit à petit découvrir de nouvelles facettes d’Ubuntu 8.04.

A noter aujourd’hui, un très gros progrès dans la gestion des périphériques en ce qui concerne Ubuntu 8.04, et notamment la reconnaissance de ces périphériques. Alors que mon imprimante Canon Pixma MP180, une multifonction premier prix, nécessitait d’utiliser les pilotes génériques payants fournis par Turboprint [en] sur Ubuntu 7.10, vu que Canon n’éditait pas de pilote pour Linux, il m’a simplement fallu la brancher pour qu’elle soit automatiquement détectée et installée, un message m’informant au bout de quelques secondes que « l’imprimante MP180 avait été détectée et ajoutée, grâce au pilote PIXMA MP180 ».

Un bon point pour Canon, qui a probablement ou développé la version Linux de son pilote, ou donné accès aux développeurs du noyau Linux à ses sources pour qu’ils développent eux-mêmes cette version (ce qu’ils avaient proposé voilà quelques mois). Un bon point à l’équipe de développement d’Ubuntu pour l’intégration de cette nouveauté très appréciable.

Reste à savoir si cela concerne de nombreux périphériques, ou si j’ai eu de la chance avec mon imprimante et fait partie des happy few.

Tuesday, April 15th, 2008

Javascript - bons et mauvais usages du développement Web

Actuellement en plein développement dans le cadre d’un projet universitaire, j’ai pour la première fois intégré le JS dans mon approche initiale. Jusqu’à présent, le JS était un outil que j’aimais très peu utiliser et que j’avais beaucoup de mal à maîtriser - le premier point ne facilitant pas le second -, donc que je m’efforçais d’éviter au maximum.

Il faut dire que les arguments contre l’utilisation du JS étaient légion. A l’époque où je me formais au développement web, beaucoup de sites utilisaient très mal le JS : recours aux pop-ups, scripts lourds fatiguant les petites configurations auxqueslles j’ai toujours été habitué, utilisation du JS pour mal faire ce qui pouvait être fait en PHP… Sans compter le fait que le JS pouvait masquer ou créer de gros problèmes d’accessibilité ou de normalisation : étant donné que c’est un langage côté client (c’est-à-dire que, contrairement au PHP, il ne nécessite pas un serveur pour être interprété), les modifications qu’il fait à la page (ajout de texte, changement d’apparence, etc.) ne sont pas répercutées dans le code source (code interprété transmis par le serveur au client). Lorsqu’on cherche à valider la page, ce qui apparaît valide ne l’est pas forcément.

Du coup, si j’ai jeté un oeil au JS, c’était à l’origine plus pour apporter de l’eau à mon moulin de critiques. Et honnêtement, le modèle objet de JS, c’est-à-dire la façon dont sont structurés tous les éléments d’une page, n’est pas ce qu’il y a de plus simple. Il est même plutôt compliqué, au point que les scripts JS manipulent rarement les objets en faisant référence à leur chemin complet, mais plutôt à leur nom (attribut name) ou à leur identifiant (attribut id).

Plus je développais, plus je prenais en compte des besoins que j’avais négligé dans mes premières réalisations, essentiellement concernant l’ergonomie de l’interface utilisateur d’un site web. La progression de l’interactivité entraîne en effet la multiplication des formulaires, outil très pratique pour transmettre de l’information du client vers le serveur. Or les formulaires, codés en (X)HTML, ont très peu de fonctionnalités et d’options par défaut. En fait, à part quelques options comme la taille, le style ou le nombre maximal d’informations acceptées, on ne peut rien paramétrer : pas de vérification des données, pas d’assistance dynamique à la saisie, sans nécessaire envoi au serveur et recours à un script PHP (généralement peu sympathique à développer).

Dans ce genre de situations, assez nombreuses, une utilisation mesurée du JS prend tout son sens et permet d’accroître le confort d’utilisation. On peut ainsi, assez facilement, vérifier avant l’envoi du formulaire que tous les champs exigés sont remplis, s’assurer lors de la frappe que les informations saisies sont valides (pour une adresse e-mail, par exemple, ou un numéro de téléphone), rendre le formulaire dynamique en affichant/masquant des champs en fonction des réponses fournies… Ceci ne dispense évidemment pas de fournir une alternative au JS (via la balise noscript), ni de développer un script de traitement en PHP (ne serait-ce que pour des raisons de sécurité).

Comme toujours, le tout est de savoir utiliser le JS à bon escient. Trop souvent, on voit des sites où le recours au JS n’est là que par souci du webmaster d’utiliser toutes ses compétences ou de valoriser ses derniers apprentissages. Ce n’est clairement pas un comportement correct pour un développeur, qui doit à mon avis avoir deux préoccupations primordiales :

  • l’optimisation de l’interface d’utilisation, c’est-à-dire la simplification constante de la prise en main de sa réalisation par l’utilisateur ;
  • le respect des standards gouvernant les technologies utilisées.

Pour le JS comme pour toute autre technologie, un bon développeur saura faire les choix qui respecteront strictement ces deux contraintes. Il ne subordonnera pas le résultat aux moyens utilisés, mais saura choisir les technologies en fonction d’un cahier des charges précis.

Tuesday, April 15th, 2008