HTeuMeuLeu

All the Slender Ladies

Dans la dernière vidéo de Feminist Frequency, Anita Sarkeesian aborde la représentation du corps des femmes dans les jeux vidéo :

Quand la majorité des femmes qui peuplent les mondes de ces jeux sont conçues à partir du même moule étroit, le problème n’est pas juste ce qu’on voit dans ces jeux. C’est ce qu’on ne voit pas. Le fait que des femmes rondes, ou des femmes avec des corps de différentes formes, ne soient jamais présentes dans ces mondes renforce l’idée fausse que ces femmes ont moins de valeur, sont moins dignes de reconnaissance, que les femmes dont les corps s’approchent le plus des standards culturels de beauté.

Les exemples utilisés dans la vidéo sont tous édifiants. Mais je crois que celui qui m’a le plus marqué est celui de Street Fighter, probablement parce que je m’étais habitué à voir ça sans me poser de question depuis que je suis tout petit.

street-fighter-femfreq

Weird Browsers

Vu sur Twitter (via Marie) : Niels Leenheer, le créateur de HTML5test.com, donne une conférence sur les navigateurs présents sur des appareils exotiques (télévisions, liseuses, consoles de jeux, appareils photo numériques, micro-ondes, …). J’adore ce sujet (que j’ai pour coutume d’appeler « intégration de l’extrême »). Sa fausse démo de contrôle d’un navigateur à base de gestes (à 17:35) est particulièrement marquante. Sa comparaison des largeurs de viewports sur TV et consoles est aussi très intéressante. Et j’ai aussi appris que, tout comme sur l’Apple TV, il n’y a pas de navigateur par défaut sur Android TV.

HTML, CSS et JavaScript

Je conserve ici ce slide de Heydon Pickering sur HTML, CSS et JavaScript parce qu’il est presque parfait.

CSS - JS - HTML

J’aurais juste laissé CSS au dessus de HTML, et ça aurait été l’illustration parfaite pour répondre à tous ceux qui cherchent à construire des « applications robustes » toutes en JavaScript. À mettre en contraste avec cet autre slide posté en janvier dernier.

La pyramide alimentaire du Web

La différence entre un développeur junior et un développeur senior

Vu sur Twitter, ce tweet de Vicky Harp :

Un utilisateur réclame une fonctionnalité déjà existante dans le produit.
— Le développeur junior : « lol, idiot d’utilisateur »
— Le développeur avancé : « Fermé – Résolu »
— Le développeur senior : Ouvre un bug d’utilisabilité.

C’est tellement bien résumé.

Réinventer la roue

Je suis tombé récemment sur cet article initialement intitulé « Quand ne devrait-on pas utiliser WordPress ? ». J’ai d’abord cru à un article satirique, puis j’ai vite réalisé que l’auteur était sérieux. Parmi les arguments avancés pour justifier une utilisation systématique de WordPress, j’ai sursauté sur le suivant.

  • Il ne sert à rien de réinventer la roue.

Non merci ! Trop occupés

C’est un argument que je n’aime pas trop, mais que j’ai déjà entendu de la part de clients. Pour commencer, je n’aime pas la comparaison avec la roue. Je ne suis pas un travailleur à la chaîne qui assemble des pneus. Je suis intégrateur. Je me vois plus comme un artisan que comme un ouvrier sur une chaîne de montage.

Alors prenons une autre métaphore. Par exemple, la cuisine. Si vous allez dans un supermarché, vous trouverez certainement de quoi vous nourrir jusqu’à la fin de vos jours sans avoir jamais à cuisiner. Plats préparés, surgelés, conserves. Rien de telle qu’une bonne ratatouille surgelée, non ? Non ? Non ?

Mais alors, à quoi bon réinventer la ratatouille ?

Le premier argument qui me vient à l’esprit, c’est bien entendu la qualité. En cuisinant moi même une ratatouille, je connais la qualité de mes ingrédients.

Le second argument, c’est la facilité de personnalisation. Vous n’aimez pas les poivrons ? Aucun problème, je vous fait une ratatouille sans poivron.

Le dernier argument, c’est le plaisir. Découper soi même amoureusement ses aubergines, courgettes et tomates, et les faire revenir langoureusement à la poêle, c’est quand même autre chose que jeter un sachet plastique surgelé dans le micro-onde.

La ratatouille du film ratatouille, cuisinée par… Rémy

Le parallèle avec l’intégration, ou même le développement au sens large, n’est pas bien difficile à faire. Je suis un codeur dans l’âme. J’aime savoir comment fonctionne quelque chose avant de l’utiliser. J’ai besoin de m’assurer de la qualité de ce que j’utilise. J’aime aussi concevoir des pages et interfaces sur mesure, correspondant à un besoin précis. Et j’éprouve beaucoup de plaisir à faire tout ça, même si ça nécessite que j’y passe beaucoup de temps ou que j’y laisse quelques cheveux.

De la même manière que je pourrais me contenter de manger du surgelé tous les soirs, je pourrais me contenter de claquer du WordPress sur tous mes projets. Mais j’y perdrais surement vite goût.

Toute la subtilité de mon métier réside alors mon propre jugement de ma capacité à réinventer la ratatouille. Si on est vendredi à dix-sept heures et qu’il faut impérativement que je livre une page avec un carousel en 3D pour dans trente minutes, il y a des chances pour que je me jette sur la première bibliothèque faisant ça proprement que je trouverais.

Et ça ne signifie pas non plus que je vais systématiquement réessayer de réinventer la roue. J’aurais peu d’intérêts à créer mon propre pré-processeur CSS, mon propre langage de programmation, mon propre système d’exploitation, etc.

Pour citer Carl Sagan (dans un moment de télévision tel qu’on ne ferait plus de nos jours) :

Carl Sagan: If you wish to make an apple pie from scratch, you must first invent the universe.

Si vous souhaitez faire une tarte aux pommes à partir de zéro, vous devez d’abord inventer l’univers.

La semaine dernière, je suis tombé sur cet autre article intitulé « Je sais comment programmer, mais je ne sais pas quoi programmer ». Ce passage m’a apporté un autre argument pour réinventer la roue :

Dans la communauté du logiciel, l’attitude générale est de ne pas réinventer la roue. C’est presque mal perçu si vous réécrivez une bibliothèque quand une option mature et stable existe. Si c’est une bonne règle en général, les débutants ne devraient pas avoir peur de réinventer la roue. Quand c’est fait pour apprendre et pour s’entraîner, c’est très bien de faire une roue. C’est une partie importante de l’apprentissage. Par exemple, écrivez votre propre version de ls, mv, wget ou cowsay. Si vous souhaitez partir sur un jeu, alors faites un clone de Pong, Tetris ou Space Invaders. Vous n’avez pas besoin de reprendre toutes leurs fonctionnalités ou d’en faire une réplique exacte, mais vous démarrez avec votre objectif et une feuille blanche, et vous faites en sorte d’y arriver.

Il s’avère que Jeff Atwood avait écrit sur ce thème en 2009 :

« Ne réinventez pas la roue » devrait être utilisée comme un appel aux armes pour s’enrichir de toutes les solutions existantes, et pas comme une matraque pour affaiblir ceux qui voudraient légitimement construire quelque chose de mieux ou améliorer ce qui existe déjà. De ma propre expérience, malheureusement, c’est plus souvent ce dernier cas que le premier.

Donc, non, vous ne devriez pas réinventer la roue. À moins que vous ne prévoyiez d’en savoir plus sur les roues.

Les métiers du Web nécessitent un constant réapprentissage (« Les bonnes pratiques d’aujourd’hui seront les mauvaises pratiques de demain », disais-je il y a quatre ans). Réinventer la roue, c’est aussi une façon de s’assurer de rester dans la course plutôt que de regarder la roue tourner.