Christophe Jacquet — Carnet — Mot-clé : Web

Mort des URL locales (file://)

Selon le navigateur, le test d'applications web en local (donc avec des URL en file://) ne fonctionne pas complètement. Quelques exemples que j'ai rencontrés récemment : les requêtes AJAX échouent, impossible d'inclure un fichier SVG depuis un autre, impossible d'inclure des sous-titres WebVTT... Le pire, c'est que ça fluctue énormément entre navigateurs, et entre versions d'un même navigateur. De plus, je n'arrive pas à trouver de bonne doc sur le sujet.

Il semble néanmoins qu'il existe une position assez tranchée des éditeurs de navigateurs. Selon Adam Barth, un développeur de Chrome, « The file scheme's security model is totally broken. [...] We tell [web developers] not to run their sites locally. It doesn't work well. » Ouch, ça a le mérite d'être clair.

Alors que faire ? Une solution grâce à Python

Il faut donc absolument avoir un serveur web (HTTP) en local pour servir ses fichiers en cours de développement, même pour un contenu purement statique. En général, qui dit serveur web dit configuration un peu complexe, ce qui n'est pas vraiment adapté au développement d'une petite appli, ou à la réalisation de quelques tests.

Heureusement, une solution simple est livrée avec Python. Pour faire servir le contenu d'un répertoire, il suffit de lancer dans ce répertoire :

Avec Python 2 :

python -m SimpleHTTPServer 8000

Ou bien avec Python 3 :

python3 -m http.server 8000

8000 est à remplacer par le port de son choix.

Mise à jour : une autre solution avec Node.js

Si vous avez installé Node.js et npm, il existe une autre solution simple : le package http-server.

Il suffit d'installer globalement http-server globalement :

npm install http-server -g

Puis pour faire servir un répertoire (par défaut sur le port 8080, modifiable avec l'argument -p) :

http-server

Pour plus de sécurité, on peut restreindre l'écoute à localhost :

http-server -a localhost

Afficher les cartes IGN dans Google Maps API

L'IGN fournit deux choses :

  1. une version en ligne de ses cartes, excellentes cartes dont la réputation n'est plus à faire,
  2. un service en ligne, le Géoportail, et une API associée.

Malheureusement, je trouve l'outil Géoportail et ses API extrêmement lourdingues, ce qui dessert le contenu, les cartes. De plus, l'intégration avec d'autres services peut être délicate.

Cet article explique comment afficher les jolies cartes IGN à l'aide d'une API simple et activement maintenue, l'API Google Maps Javascript.

Lire la suite...

The open web on the mobile platform

A must-read by Daniel Glazman: call for action: the open web needs you *now*.

What is it about? The open web is being threatened on the mobile platform, because there's an overly dominant rendering engine, Webkit. Webkit implements some features crucial to the mobile platform with its CSS vendor prefix, -webkit-. Therefore, to overcome interoperability issues, the other browser vendors are about to support -webkit- prefixes... That's a major failure for the mobile web, and the beginnings of a big mess.

Maybe it's not too late to prevent this blunder, maybe it's still possible to have web sites adopt standards and browser vendors standardize essential features through the CSS WG as soon as possible. That's why Daniel is calling you for action! Spread the word!

Display GPX tracks using Google Maps API

Surprinsingly, the Google Maps Javascript API does not provide a built-in way to create an overlay from a GPX track, contrary to OpenLayers for instance.

Forum messages asking a way to add GPX overlays to Google Maps are numerous, and various solutions are proposed. Here I propose my own method, adapted to the Google Maps Javascript API v3. It relies on jQuery, so it is very simple.

Lire la suite...

ServerSpy update for Firefox 4

Server Spy is a little Firefox addon that displays the name of the server software serving the current page. The current version of Server Spy works with Firefox 3.6; it uses the status bar to display the server name.

Server Spy had to be adapted to Firefox 4 because the status bar is going away with the new release of Firefox. An “Add-on bar” is being introduced for extensions that desperately need a bar at the bottom of the window, but I don't want to force my users to display it. Therefore the new version of Server Spy will feature a new UI, not using the “Add-on bar”.

Lire la suite...

Bonne doc Javascript

Lorsqu'on cherche de la doc sur Javascript, on tombe souvent sur de la doc de m****, un galimatias de hacks tous plus non standard les uns que les autres. L'initiative Promote JS se propose d'améliorer le classement dans les moteurs de recherche d'une bonne doc[1], celle de Mozilla. Pour cela, il faut en parler, et c'est chose faite en ce qui me concerne ! Ensemble, améliorons le web !

JS Documentation

Notes

[1] Une bonne raison à cela : Brendan Eich, le créateur de Javascript en 1995, est CTO chez Mozilla...

Éclat de rire sur Wikipédia

Éclat de rire sur le portail de l'Aquitaine de Wikipédia : la boîte « armée et religions », c'est un peu le mariage de la carpe et du lapin, non ? Bon, ce n'est pas pour me moquer, mais ça fait juste bizarre...

20100327_wikipedia.png

Migration vers Dotclear 2

Ce blog fonctionne maintenant sous Dotclear 2. À noter :

  • les catégories ont disparu ; elles sont maintenant remplacées par des tags appelés mots-clés ;
  • la charte graphique est inchangée ;
  • les URL des posts existants sont préservées.

La suite de ce billet détaille quelques points techniques qui peuvent être utiles à d'autres.

Lire la suite...

XSLT : arrachage de cheveux

Attention, xsl:param doit forcément être le premier fils de xsl:template... Par exemple :

<xsl:template name="fact">
	<xsl:param name="xxx" select="-1" />
	...

Cela ne fonctionnera pas s'il existe un nœud quelconque entre les deux, par exemple :

<xsl:template name="fact">
	hello
	<xsl:param name="xxx" select="-1" />
	...

Il faut le savoir ; c'est une erreur qui peut être insidieuse, entre Xalan qui ne signale aucune erreur (mais ne donne pas le résultat attendu) et Firefox qui se contente d'un laconique « Échec de l'analyse d'une feuille de style XSLT »...

User-Agent

Lorsqu'un navigateur demande une page à un serveur web, il lui transmet son identité, sous forme d'un en-tête HTTP du doux nom d'User-Agent. Dans la seconde moitié des années 1990, la surenchère de nouvelles fonctionnalités entre les deux leaders du marché, Netscape Navigator et Internet Explorer, a conduit à de nombreuses incompatibilités. Certains auteurs de sites web ont alors adapté leurs contenus à tel ou tel navigateur, conduisant à un morcellement du web, que l'on a qualifié de balkanisation. L'adaptation de contenus était basée sur la détection du User-Agent. D'où des ruses successives des fabricants de navigateurs pour se faire passer pour leurs concurrents, et ainsi afficher les contenus qui ne leur avaient pas été spécifiquement adaptés.

Aujourd'hui, les jours les plus sombres de la balkanisation du web sont heureusement derrière nous. Cependant, les vieux réflexes existent toujours. Regardons par exemple le User-Agent du tout nouveau Google Chrome :

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
   AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

Que nous apprend cet identifiant sur l'histoire du web ?

  • Mozilla : en 1995, le leader incontesté des navigateurs était Netscape Navigator, nom de code Mozilla. Lorsqu'Internet Explorer est sorti, il a donc tout naturellement choisi de se faire passer pour son concurrent. Le numéro de version a évolué en parallèle jusqu'à Netscape 4, puis IE en est resté à 4. Mozilla 1.0 (issu du projet nouveau Netscape lancé en 1998), puis Firefox ainsi d'ailleurs que tous les navigateurs modernes, s'identifient comme Mozilla/5.0. Aujourd'hui, sauf exception, tous les User-Agent de navigateurs (hors robots) commencent par Mozilla.
  • Dans la parenthèse, les mentions Windows et en-US sont transparentes. Par contre, d'où vient ce U ? Il date d'une époque où les sociétés américaines devaient exporter des versions bridées des algorithmes de chiffrement. On avait donc des versions U pour USA, et I pour International. Ces restrictions ayant depuis été levées, il ne reste que des versions U.
  • AppleWebKit : c'est une chaîne d'identification envoyée par tous les navigateurs qui se basent sur le moteur WebKit d'Apple (développé au départ pour Safari). Chrome utilise WebKit.
  • KHTML : WebKit lui-même est basé sur le moteur KHTML de KDE. Comme KHTML s'identifiait en tant que tel, WebKit en a conservé la mention.
  • ... Mais le moteur de Mozilla, Gecko étant beaucoup plus répandu que KHTML, les concepteurs de Safari/WebKit ont fait figurer le terme Gecko... De quoi tromper les serveurs qui recherchent la chaîne Gecko dans le User-Agent... Notez tout de même la légère précaution : « like Gecko ».
  • On trouve ensuite la version de Chrome lui-même, ce qui est naturel.
  • ... Mais la chaîne se termine sur un numéro de version de Safari, le navigateur d'Apple ! Encore une fois, il s'agit de tromper les serveurs qui adapteraient leur contenu pour Safari, en se basant sur la détection du mot Safari dans le User-Agent.

Étonnant comme un simple identifiant peut être riche de références !

Mise à jour, 10 septembre 2008 : voir aussi le billet, écrit le même jour, History of the browser user-agent string. Hilarant...

Sites web médiocres : impact sur les entreprises ?

Sur le site AVODroits-NTIC (« avocats des NTIC ») se trouve un joli lexique des NTIC. Le problème est qu'il est truffé d'erreurs et d'informations périmées. On y apprend entre autres que WAIS est un « système très puisant permettant de rechercher très rapidement des quantités importantes d'informations sur Internet » (ah bon il y a encore des serveurs WAIS en fonctionnement ?), qu'Ethernet « atteint 10 Mbit/s », ou que Linux a été « inventé par Linus TOWARDS »... Pas très sérieux pour des gens qui se disent spécialistes en NTIC.

Plus généralement, je pense que la réalisation d'un site web est une catastrophe pour un bon nombre d'entreprises, car cela révèle au grand jour certaines de leurs faiblesses : incompétence, incapacité à choisir un prestataire externe de qualité, incapacité à évaluer le travail d'un prestataire, etc. Si cela peut passer lorsque les problèmes du site web n'ont rien à voir avec le domaine d'activité de l'entreprise (ex : pages web invalides chez un producteur de saucisses), cela fait plus mauvais genre lorsque les domaines sont proches (ex : méconnaissance du domaine des NTIC chez un cabinet d'avocats spécialisés en NTIC). Je me demande si l'impact de ces sites bâclés a été évalué, et si certains réalisent qu'il vaut peut-être mieux s'abstenir que risquer de donner de soi une image médiocre...

Changement d'adresse

Il y a quelques mois ce site a changé d'hébergement, et donc d'adresse car l'ancienne était en free.fr. Jusqu'ici tout se faisait de façon transparente grâce à une redirection 301 mise en place sur mon espace web chez Free. En cas de changement d'adresse, la redirection 301 est l'unique bonne façon de procéder.

Malheureusement, les admins de Free ont semble-t-il décidé de jouer les BOFH, donc cette redirection 301 risque de se muer sous peu en une erreur 403...

Notez donc bien que l'unique adresse de ce site est désormais www.jacquet80.eu. Si vous aviez fait un lien vers moi sur le web, ce serait sympa de le mettre à jour (seul le domaine a changé, l'organisation interne du site est restée identique). Si vous êtes abonné au flux RSS, il faut peut-être également changer le domaine.

Pour en savoir plus sur les procédures en cours chez Free : 1, 2, 3, 4.

De même, notez les nouvelles adresses de mon site ferroviaire et de Sav'Hourra, celui de Séverine.

Actus

Mon T-shirt Mozilla Addons Development Team Mozilla Firefox 3 est sorti cette semaine, et mon extension Server Spy, récemment validée dans sa version 0.1.6, est compatible avec lui. La fondation Mozilla étant maintenant riche, elle peut se permettre d'offrir des goodies pour motiver les contributeurs aux extensions ; j'ai donc reçu un superbe T-shirt Mozilla Addons Development Team (voir ci-contre).

Séverine et son site Sav'Hourra sont à l'honneur cette semaine : un article sur Cocooking leur est consacré.

Mozilla news

Server Spy 0.1.5 is available for download at addons.mozilla.org. It is compatible with the brand-new Firefox 3.0b5, and fixes a bug which caused incompatibilities with other extensions.

Firefox 3.0b5 brings good news : the bug with XHTML files that I reported in beta4 has hopefully been fixed, so LiveRC works again.

Annoying bug in Firefox 3 beta 4

Firefox 3 beta 4 is just out, but unfortunately its DOM parser seems to be affected by a strange bug. Among other things, this prevents the LiveRC tool on the French Wikipedia from functioning.

I filed the bug yesterday, but there has been no activity on it yet. If you are using Firefox 3 beta 4, can you please try my testcases and confirm (or report as WFM) bug #422735? It may help attract Mozillans' attention on what I deem a serious defect.

- page 1 de 2

Valid HTML5? © . ✍ Contact
Propulsé par DotClear.