Tuesday 29 December 2020

Affordance trompeuse : REST API, RESTful

Les noms REST API et RESTful invitent au voyage dans le monde des architectures post-Web. Roy Fielding, le seul créateur de REST le dit d'ailleurs explicitement : REST est un style d'architecture qui n'a de sens que dans un système hypermédia distribué. Sans ressources capables de référencer d'autres ressource (hypermédia), sans système qui implique d'avoir de multiples unités de calculs distinctes (distribué), l'architecture retenue pour construire une application ne peut pas suivre un style qui correspond à REST. Et dans ces deux aspects, hypermédia et distribué, étant donné que l'aspect distribué a été traité ad nauseam pendant un demi-siècle, le facteur discriminant est en conséquence l'hypermédia.

L'approche RESTful se concentre sur la mise en place des REST API, et considère que la prise en compte de l'hypermédia est quelque chose d'optionnel, car difficile à mettre en œuvre pour le besoin réel. Comme REST impose l'hypermédia en tant que sujet primaire de réflexion, justement parce que c'est le sujet difficile qui permet de répondre à des besoins auxquels les autres styles d'architecture ne répondent pas, alors on peut en déduire que les termes REST API et RESTful sont représentatifs d'une mouvance NoREST. On trouve un marqueur fort chez les partisans du NoREST : la mise en avant d'un seul format d'échange de données, format qui n'est pas hypermédia, le JSON.


Vous pouvez trouver le reste de la série sous l'article d'introduction.

Monday 28 December 2020

Affordance trompeuse : codeur

Le monde de l'informatique s'est créé quand la machine électronique est devenue programmable, quand on pouvait changer son fonctionnement sans passer par une nouvelle étape de fabrication matérielle. Très logiquement, les personnes maîtrisant la création de ces programmes (activité qui nécessite de passer par des étapes d'architecture logicielle, d'analyse, de conception et d'écriture de code) ont été appelées programmers. A contrario, des termes péjoratifs sont apparus pour désigner ceux qui ne méritaient pas cette appellation, comme code grinder (moulin à code), ou code monkey (pisseur de code). La différence entre les deux est que le terme programmer garde dans tous ses usages la notion de travail intellectuel, alors que quand il s'agit de réduire la chose à un simple travail mécanique, ce sont code et coder qui sont utilisés.

Quand, afin de transmettre ses principes, l'informatique pioche son vocabulaire dans les arts mécaniques devenus traditionnels , c'est une bonne idée. Quand les programmeurs réduisent leur travail au codage, ça n'en est plus une.


Vous pouvez trouver le reste de la série sous l'article d'introduction.

Saturday 26 December 2020

Affordance trompeuse : les frameworks Web MVC

À la fin des années 70, Trygve Reenskaug fait face au problème de la gestion d'un nombre important de données dans une application, et cherche un modèle de programmation qui rende l'application maintenable. On parlera de la maintenabilité dans un autre article, c'est une autre affordance trompeuse. Il arrive après plusieurs itérations et en collaboration au Model View Controller. Rétrospectivement il regrette ce nom de Controller qui n'est pas assez expressif pour le rôle joué.

Le MVC est organisé en une hiérarchie de couples Vue (ce que voit l'utilisateur) - Contrôleur (ce qui reçoit les entrées de l'utilisateur), avec des Modèles sous-jacent (le monde manipulé), la communication entre les Modèles et les Vues se fait dans une approche Observateur / Observé. Si vous enlevez un de ces éléments, vous n'avez plus de MVC. Et pourtant, un article paru sur InfoWorld en 1999 a réussi à populariser le fait que le Model 2 de Sun Microsystems pour Java EE (à l'époque J2EE) était une approche MVC pour le Web : pas de couples Vue - Contrôleur, pas d'organisation hiérarchique ni des Vues ni des Contrôleurs, pas communication Observateur / Observé, pas de support de l'hypermédia, le Model 2 n'était en fait ni MVC ni vraiment Web.

Le MVC se retrouvait réduit à l'état d'une triade vidée de sa substance, un vague Separation of Concerns sans objectif ni raison d'être, et c'est cette vision qui a perduré et a été reprise par la suite dans les frameworks dits Web (Struts, Spring MVC, Django, Symfony, etc…). Cette affordance trompeuse nous suit depuis bien longtemps, voir cet article de 2006 sur la partie dite Web, ou cet article de 2004 où comment cette fausse interprétation du MVC vient polluer la compréhension des vrais frameworks MVC.


Vous pouvez trouver le reste de la série sous l'article d'introduction.

Thursday 24 December 2020

Affordance trompeuse : LA DATA

En 1874 Émile Baudot crée un code sur 5 bits pour la télétransmission afin d'être plus efficace que le code Morse. Ce codage permet de représenter les lettres majuscules, les chiffres, la ponctuation… c'est le début du monde de LA DATA. Un point fascinant du monde de LA DATA est ce besoin de REVENIR A DES MAJUSCULES SANS ACCENTS POUR S'EXPRIMER. Le monde de LA DATA EST UN MONDE BRUYANT.

La mode autour de ce vocabulaire est très intéressante, car elle montre deux points de vue différents entre la francophonie et les outres (outre-Manche, outre-Atlantique). L'idée principale convoyée par les dénominations anglaises est toujours celle du calcul : dans computing science, le premier mot a la même racine latine que le mot français computer, c'est-à-dire computare, calculer. Dans software engineering, le premier mot a été créé en opposition au hardware, au matériel : on continue de parler de l'outil, toujours pas des données.

En vocabulaire anglais, il est donc nécessaire de remettre en avant la donnée, ou comme on dit en Français de la Tech, de remettre en avant LA DATA. En vocabulaire français par contre, on va parler d'informatique, et ce depuis le début de la diffusion des ordinateurs dans les années 60 (qui ne sont que des calculateurs pour le coup), c'est-à-dire de la science du traitement rationnel, notamment par machines automatiques, de l'information considérée comme le support des connaissances humaines et des communications dans les domaines technique, économique et social.

Cela fait donc plus d'un demi-siècle qu'en vocabulaire français on a considéré que LA DATA était la partie fondamentale de notre activité, et qu'en deuxième position arrivait la problématique du calcul automatisé. L'utilisation sans réserve de LA DATA dans nos contrées est donc un indicateur fort de l'inculture informatique de nos entreprises, en particulier dans la French Tech.


Vous pouvez trouver le reste de la série sous l'article d'introduction.

Affordance trompeuse : JSON

JSON est un format de texte bien connu, et format privilégié des amateurs de l'approche NoREST. Ce format, très simple, est défini dans la RFC 8259 de l'IETF ou encore ECMA-404 de l'ECMA, qui spécifie que l'acronyme signifie "JavaScript Object Notation". On pourrait donc s'attendre à ce qu'on puisse décrire en JSON un objet au sens JavaScript, à savoir quelque chose avec un état et un comportement, des propriétés et des méthodes. Juste après, la spécification précise que JSON est un format d'échange de données, on comprend donc que la partie "comportement" ne fera pas partie de JSON. On pourrait du coup s'attendre à ce que les types de données scalaires JavaScript standards soient supportés dans JSON. Ce n'est pourtant pas le cas, seuls les nombres et les chaînes de caractères sont décrits et, par le tour de passe-passe d'utilisation de mots-clefs, on ajoute les booléens. Au final, le JavaScript dans JSON est l'équivalent de Git dans GitOps : un tube néon qui va mettre en valeur le nom.


Vous pouvez trouver le reste de la série sous l'article d'introduction.

Affordance et programmeurs, une histoire de noms

Affordance est un néologisme créé par le psychologue James J. Gibson dans les années 60 pour désigner ce que l'environnement a à nous offrir. A la fin des années 80, ce terme prend un sens complémentaire, avec la notion de perception de cette offre. Par exemple avec l'iPhone, Apple a introduit la possibilité de zoomer avec un mouvement de pincement effectué digitalement (c'est-à-dire avec les doigts) sur l'écran : dans la désignation des années 60, cette possibilité est une affordance, dans celle des années 80, c'est une affordance cachée. On parlait aussi de fausses affordances, comme par exemple quand un bouton est présent mais rien n'est câblé derrière. Dans les années 2010, une nouvelle utilisation du terme est apparue, au singulier cette fois, où l'affordance de quelque chose est sa qualité à proposer des affordances visibles.

Cette notion est clef dans les interactions homme-machine, spécialement pendant la phase de découverte de l'interface, de la surface qui sépare l'humain de l'informatique. Une fois l'interface connue, assimilée, la personne travaille par raccourcis, par accélérateurs et ce besoin d'affordances visibles diminue. On pourrait donc penser que ce concept d'affordance va être clef pour les informaticiens, qui vont avoir à cœur de le mettre en pratique dans l'organisation de leur travail. C'est un peu le cas, mais avec une subtilité : les informaticiens aiment aller au-delà de l'affordance, ni affordance visible, ni affordance cachée, ni fausse affordance, mais avec l'affordance trompeuse, celle qui donne à croire qu'on a une certaine affordance, mais qui propose en fait tout autre chose.

Ceci se pratique essentiellement à travers la démarche de dénomination, élément essentiel de toute communication. Certains diront que le vocabulaire est nécessairement mouvant dans le temps, et que le nom des choses est ce que la masse en fait. Il n'en reste pas moins que ceux qui connaissent le sens d'origine du vocabulaire ne peuvent que se sentir attaqués et trahis, dans une démarche certes victimaire, mais pour laquelle on peut ressentir une certaine empathie en toute bienveillance. Et passé ce point de détail, dans toute démarche scientifique, et l'informatique aspire à s'en approcher, il est important de ne pas effacer le passé en se servant du vocabulaire comme d'un palimpseste.


Cet article sert de point d'entrée à la série "Affordances trompeuses", il sera mis à jour au fur et à mesure avec les différentes entrées.

  1. JSON
  2. LA DATA
  3. Les frameworks Web MVC
  4. Codeur
  5. REST API, RESTful
  6. API as a Product
  7. GitOps
  8. Dette technique
  9. La qualité
  10. Les bonnes pratiques
  11. La refactorisation
  12. Le cache
  13. Le data center
  14. API
  15. L'anglais est universel
  16. La Cyber
  17. Informaticien
  18. Le design
  19. Les batchs
  20. Le digital
  21. La recette
  22. Open Source
  23. Observable

Thursday 21 May 2020

Le sparadrap, outil disruptif des coders

En ces années où les coders (i.e. ceux qui s'intéressent au code, les plombiers 2.0 en quelque sorte) ont remplacé les informaticiens (i.e. ceux qui s'intéressent à l'information), l'heure n'est plus à la propreté. J'en profite donc pour mettre ici le bout de code qui permet de corriger la recherche et la page peu avenante qui s'affiche quand un des deux pauvres hères qui laissent des commentaires ici agissent (qu'ils en soient remercié de visiter activement ce cimetière). Telle la justice aveugle je désigne PHP-FPM comme coupable, mais en vérité ça n'est qu'un préjugé. Ceci est à mettre dans votre inc/config.php sous DotClear 2 si vous pensez avoir le même problème.

if(isset($_SERVER['PATH_INFO'])) {
    $off = strpos($_SERVER['PATH_INFO'], '?');
    if($off !== false) {
        $_SERVER['PATH_INFO'] = substr($_SERVER['PATH_INFO'], 0, $off);
    }
}

Sunday 17 May 2020

Tout cela est bien binaire

L’objectif est de proposer un outil numérique permettant de réduire la pénibilité lors de la rédaction des réponses aux amendements soumis par les député·e·s et/ou sénateur·ice·s de la part du gouvernement afin de préparer le débat législatif au sein des instances parlementaires.

2020, l'horizon épicène n'étant toujours pas passé de mode, nous sommes ici gratifiés d'une double syntaxe communautariste : d'abord celle des binaristes genrés, puis celle des binaristes informaticiens. Comment résoudre cet épineux problème d'expression, qui rend cette phrase moche ? Oui, moche est un qualificatif très rationnel. On aurait pu dire "soumis par les parlementaires", simple, concis, efficace, explicite, beaucoup de qualités pour la lisibilité. Mais était-ce un des objectifs recherchés ? C'est peu souvent le cas dans la communauté des binaristes genrés qui mettent le militantisme grammatical en première intention, comme on a pu le voir l'an dernier avec les #NoFakeScience. Alors que faire ? Quand le binariste informaticien voit une telle phrase, une émotion saisissante jaillit instantanément dans son esprit : la joie de pouvoir dessiner une table de vérité. Et on sait que la vérité est un principe important dans toute action militante, comme chez les binaristes genrés.

Accordons-nous donc ce plaisir coupable (la première colonne ne peut bien évidemment pas être 'homme', vu que le premier sens de ce mot en français n'est pas mâle, ni malle, ni mal, bien au contraire) :

femmesénatassemblée
nationale
résultat
0000
0011
0101
0111
1000
1011
1101
1111

Ce qui est merveilleux avec cette table est que, pour les amateurs de Boole, l'équivalence avec la proposition "parlementaires" saute aux yeux. Pourquoi aller chercher la beauté dans la nature quand elle est si évidente à l'écran ?

Sunday 3 May 2020

Le remplissage facile avec le Web disruptif de la révolution digitale

Ce blog est mort, je le sais, vous le savez, tout le monde le sait. Cela ne signifie pas que j'ai disparu de la surface d'Internet, et encore moins du Web, et encore moins du GAFAnet (à prononcer en vomissant, c'est un machin qui prétend être le Web mais qui n'est qu'une perversion basée sur "des apps" (à prononcer "dézap" (fin des parenthèses))). Comment donner un aspect un peu moins cadavérique à cet espace, que dis-je, à mon espace ? C'est simple, on prend du contenu déjà public, à savoir "mon Insta", et on reposte ici. Quatre-cent quatre-vingt onze articles gratuits (et pas "blogs gratuits" comme diraient les développeurs) : pas cher, mais pour l'instant c'est juste un travail à froid, avec débogage de l'extension importExport de Dotclear inclus. Reste à faire la synchronisation au fil de l'eau de la chose, et pour ça, sortie de l'artillerie lourde en cours : Huginn.

Friday 1 May 2020

Insta' du 1er mai

IPN, angles droits, raccords, tout évoque le réel, le terrain, à l'opposé du planifié, de la froide conception. Le transformateur planté au milieu de la rue est l'incarnation de l'accès permanent et immédiat au confort électrique, la chair de la modernité, le début de la paresse, le spleen comme angle de vie de l'être sans activité.

Insta' du 1er mai

Et là que voilà la tant attendue (pas du tout) série sur les transformateurs urbains. Un mythe s'est développé comme quoi mes photos de vacances étaient constituées essentiellement d'engins de cet acabit. C'est faux. Je ne sais pas ce que j'ai fait au monde pour mériter que de tels on-dit soient répandus ainsi.

Thursday 30 April 2020

Insta' du 30 avril

Toujours en train de trier pour la prochaine série. En attendant, voici une ombre.

Wednesday 29 April 2020

Insta' du 29 avril

Canard attaquant son voyage vers l'ouest adéquatement acompagné.

Insta' du 29 avril

La viande était plus fraiche que le vendeur.

Tuesday 28 April 2020

Insta' du 28 avril

Un grand gloubi-boulga architectural à base de briquettes visionnaires, qui fera la transition avec la série suivante, où l'on va quitter l'ouest pour repasser à l'est.

Monday 27 April 2020

Insta' du 27 avril

Dans sa solitude, elle a l'avantage d'avoir une (belle ?) vue dégagée.

Sunday 26 April 2020

Insta' du 26 avril

Culturellement on en a soupé de ce lieu, maintenant une fois sur place... difficile de faire de la magie.

Insta' du 26 avril

De manière presque contradictoire, une ville paraît plus humaine quand on donne libre cours à la zoophilie.

Insta' du 26 avril

Magie de la communication, transformer quelque chose de banal en un pôle d'attraction.

Saturday 25 April 2020

Insta' du 25 avril

Pauvre citerne solitaire.

- page 2 of 105 -