20.06.2009 WebDev's Digest - Juin 2009

Vieux. Ce billet a plus d'un an. S'il contient des informations techniques elles sont peut être obsolètes.

Abordons, si vous le voulez bien, les choses qui ont retenues mon attention ces derniers jours. Tant qu'on y est, poursuivons sur un ton insolent et irrévérencieux comme dans ze bouffi show, sacré laurent, quel culot, ça c'est de la télé.

Internet Explorer, my love :

  • Une petite image choupi pour commencer, c'est celle qu'affiche le site momentile.com pour bloquer complètement son accès aux utilisateurs d'IE6. Oui, c'est violent comme approche, mais IE6 est le plus gros problème du dev web, celui qui teste vos nerfs et coûte cher en debug, donc en temps, donc en argent.
  • Toujours à propos d'IE State of the Browsers — IE edition est un post intéressant mais pas très optimiste au sujet des parts de marché des différentes versions d'IE. On note qu'IE8 gagne des parts mais au détriment d'IE7 et malheureusement pas d'IE6. La raison principale : les intranets. L'auteur table sur une part de marché aux alentours de 20% pour IE6 jusqu'à fin 2010. Conséqeunce immédiate : les développeurs web commencent à facturer davantage pour une compatibilité IE6 ce qui est somme toute logique vu la quantité de travail laborieux supplémentaire requise. La seule chose que je n'ai pas trouvé dans cet article est la source des statistiques.
  • Microsoft IE8 Contest insults other browsers. Maman, il m'a insulté. Arrêtez de chialer les mecs, c'est pas grave ça. Combien de monde crache sur IE tous les jours ? Non ce qui est grave c'est que le marketing Microsoft Australie oblige les gens à utiliser IE8 pour participer à leur concours. Interopérabilité FAIL. Bullshit.

Les performances, c'est important :

  • Optimiser les images est une vraie science. C'est une composante des performances côté front que tout bon dev web se doit de maîtriser. Une très bonne astuce est disponible pour la compression par zones des JPEG sous Photoshop. Effectivement très utile pour optimiser les larges backgrounds qui sont trendy en ce moment côté webdesign.
  • Les performances ça se joue aussi et beaucoup côté back. Vous avez beau vous toucher la nouille en gagnant 2k sur un png, si votre requête s'exécute en 10 secondes ça servira pas à grand chose. Indexing the Web—It’s Not Just Google’s Business est une bonne intro à l'optmisation de votre base avec un accent sur les index, des jointures correctes et des select pas trop gourmands (certains ORM ne se comportent pas de façon optimale sur ce point). Et non, mettre du memcached systématique au dessus du bousin quand c'est trop lent n'est pas la première solution à envisager.
  • DNS Prefetch. Alors là je suis assez mitigé. Le seul préchargement qui me semble pertinent est celui de type déclaratif, celui que vous, l'auteur de la page web, déclarez de façon explicite. Le reste est à mon sens un réel gâchis d'énergie, de bande passante, de ressource machine et pose un problème en termes de sécurité vie privée. Le tout pour pre-fetcher des ressources dont on est même pas certain qu'elles seront consultées et donc gagner quelques ms sur des probabilités. Bullshit.

Où l'on reparle de video :

  • Le buzz sur Theora vous laisse pantois ? Vous avez trouvé le style de mon billet précédent détestable ? Quand on vous dit que la qualité obtenue via Theora est très loin de celle obtenue via H.264 on ne vous ment pas : Chrome and Theora/H.264. A votre avis pourquoi Chrome va intégrer un décodeur H.264 ? Réponse : parce que Theora c'est trop cheum, comme ta mère. Le seul avantage de Theora est son côté complètement open-source.
  • En conséquence, tempérez les comparatifs élogieux en fonction de leurs provenances et de leurs auteurs (via Open Codecs, Open Video).

(X)HTML & JavaScript tips

  • Sample XHTML 1.0 document, ou le modèle de base parfait pour créer vos CSS, toutes les balises sont utilisées.
  • Tabindex, focus et accessibilité, un article utile et bien écrit qui m'a aidé lors d'une session mixant javascript et tabindex. On y apprend qu'une valeur à 0 pour l'attribut tabindex n'est pas illégale. N'oubliez pas de set les attributs tabindex sur les liens dans vos modules qui apparaissent et disparaissent pour garder une couche d'accessibilité.
  • jQuery Tools, c'est joli, c'est sympa, c'est léger. Il y a des modules pour toutes les fonctionnalités bling-bling du web 2.0 qui plaisent à vos clients. Le code à l'air léger et facilement lisible aka bien codé. Toujours utile pour s'en inspirer dans votre propre code.
  • SWFUpload jQuery Plugin est un plugin jQuery qui permet de gérer les uploads multiples via Flash. Le prix à payer : passer par du swf et des centaines de lignes de js.
  • jQuery Highlight Plugin, je l'ai sélectionné car le code à l'air cool, faut que je teste.

Et parce que c'est toujours utile, un petit mémo pour activer la navigation au clavier dans vos navigateurs sous Mac : Enabling keyboard navigation in Mac OS X Web browsers. C'est toujours utile et ça fait apprendre des choses de tester la navigation de vos sites au clavier.

Voilà, c'est tout. Cassez vous maintenant. Ah oui et la dernière fois j'ai linké méchamment Framablog mais j'aime bien ce qu'ils font en fait. Peut-être que je devrais aller voir un psy comme dans les Sopranos ? Nannnnnnnnnn Bullshit.

Je reste aussi assez mitigé sur l'importance du gain du prefetch DNS, mais de là à parler d'un réel gachi de bande passante ou de ressources...
Le surcout des requêtes DNS sera quasiment toujours plus faible en bande passante que ce qu'on perd quand on ne se "touche pas la nouille" sur les PNG (5ko c'est ce qu'on gagne par exemple sur cette page, pourtant pas graphique du tout, en général c'est bien plus, et pour que les requêtes DNS inutiles cumulées arrivent à 5ko, il va en falloir beaucoup quand même).

Par contre il faudra réellement expliquer sur l'allusion à la sécurité.

21.06.09 11:54

@Eric, je parle de gâchis en imaginant le DNS prefetch à grande échelle. Le mot est peut-être un peu fort mais je n'ai jamais vraiment souffert à cause du lag d'une résolution DNS. Peut-être que l'intérêt réel de ce type de prefetch est réellement valable pour l'internet mobile et des appareils moins puissants. Maintenant le faire par défaut et systématiquement en prefetchant des résolutions inutiles, je ne suis pas certain de l'intérêt.

Pour la sécurité, j'ai corrigé dans le texte, amalgame entre sécu et vie privée.

Sinon "se toucher la nouille" c'est de la provoc gratuite, mais ça marche ;)

21.06.09 12:59

La provoc fonctionne toujours avec moi ;)

Plus sérieusement les requêtes DNS vont s'arrêter chez le FAI le plus souvent, l'impact du serveur DNS distant sera réduit. L'impact de ton côté sera quasi nul, ces requêtes sont petites et en UDP.

Donc on charge le FAI, je ne suis pas certain que ce soit énorme comme conséquence, même si c'est difficile de juger là tout de suite. Google ayant tendance à tout prouver par des tests avant d'intégrer, j'ai tendance à considérer qu'ils ont des stats suffisamment fiables pour s'assurer que ce sera globalement positif. (mais je suis convaincu qu'il est plus important de bosser les png ;)

21.06.09 18:42

Vous êtes sur le blog personnel de Marc Hertzog. Les opinions exprimées sont uniquement celles de son auteur.