Catégorie : Technique

  • Chez Free c’est tout compris – ou pas

    Oh ? moi ça me rappelle au contraire *exac­te­ment* une offre de Free.fr

    C’est bien de se moquer mais pour ça il faudrait nettoyer un peu devant sa propre porte. Faire payer une option obli­ga­toire pour l’ac­cès à la boucle locale dédiée (c’est à dire les mètres de câble/fibre dans le trot­toir entre la box de l’abonné et le réseau interne de Free) c’est large­ment aussi ridi­cule que de faire payer les aiguilles d’une montre ou les clefs d’une voiture.

    Ok, c’est moins mis en avant aujourd’­hui qu’à l’époque. Ça permet au dépar­te­ment marke­ting de se moquer des autres en cachant tout sous le tapis, mais la fiche d’in­for­ma­tions stan­dar­di­sée montre que c’est en réalité toujours ainsi aujourd’­hui.

    Moi je serais eux, j’ar­rê­te­rais de la rame­ner.

    * * *

    Faire payer la loca­tion de la boucle locale n’a bien entendu aucun sens. Free fait comme les autres opéra­teurs : Il fait payer la loca­tion de sa box.

    C’est d’au­tant plus évident en compa­rant avec l’offre mini 4K, qui ne diffère quasi­ment que par la box dispo­nible mais qui n’a pas cette option à 5,99 € par mois alors qu’elle utilise évidem­ment tout autant la boucle locale dédiée (on voit mal comment elle ferait autre­ment).

    Bref, non seule­ment Free fait louer sa box en option obli­ga­toire comme les autres, mais il le fait plus cher, et en le maquillant sous couvert d’une option tech­nique. Pas de quoi pavoi­ser.

    * * *

    On ne peut même pas argu­men­ter qu’il s’agit de rembour­ser la loca­tion que fait Free de la boucle cuivre de l’opé­ra­teur histo­rique, puisque l’op­tion est aussi obli­ga­toire s’il s’agit d’un accès Fibre sur une infra­struc­ture Free de A à Z, hori­zon­tal et verti­cal.

  • Les petits utili­taires : 1– Le gestion­naire de mots de passe

    Il y a toute une série de petits utili­taires indis­pen­sables avec lesquels je ne suis pas satis­fait. Je me dis qu’en mettant ici mon usage, peut-être que ça ouvrira des portes.

    Bref, j’ai­me­rais un logi­ciel pour gérer mes mots de passe et les stocker de façon sécu­ri­sée.

    • Je veux y avoir accès aussi bien sur Mac, que sur Linux et sur mon mobile Android, y compris hors-ligne. Ce serait top s’il y avait un client web mais ce n’est pas indis­pen­sable.
    • Le stockage et l’ac­cès doivent être sécu­ri­sées. Rien ne doit être acces­sible sans mot de passe maître, et ce dernier ne doit être stocké nul part.
    • L’app mobile doit pouvoir avoir un verrouillage soft (via un pin, un schéma ou une empreinte digi­tale) quand le télé­phone passe en veille (ou à défaut quand je bascule sur une autre app).
    • Tous les clients (app mobile, desk­top, navi­ga­teur) doivent de rever­rouiller au bout d’un certain temps d’ac­ti­vité et néces­si­ter la saisie du mot de passe maître pour être réou­verts.
    • Je dois avoir une exten­sion du navi­ga­teur pour auto-complé­ter les formu­laires de login, autant sur desk­top que sur mobile. Idéa­le­ment l’auto-complé­tion n’injecte pas plein de trucs auto­ma­tique­ment dans chaque page web et n’agit que sur ma demande via un bouton dans la barre d’ou­til.
    • La même exten­sion du navi­ga­teur doit savoir créer une entrée dans les mots de passe enre­gis­trés à partir d’un formu­laire de login sur une page web.
    • Il existe un moyen simple et rapide de faire une recherche dans la base de mots de passe.
    • L’ou­til embarque un géné­ra­teur de mots de passe.
    • Ça serait top de pouvoir parta­ger des mots de passe, en lecture et/ou en écri­ture, à une personne ou à un groupe.

    Parce que je suis geek :

    • Il existe un accès en ligne de commande ou un moyen de bidouiller l’en­semble
    • Il est possible de sauve­gar­der faci­le­ment et auto­ma­tique­ment ma base de mots de passe quelque part (que tout ne repose pas sur un pres­ta­taire)
    • Le fonc­tion­ne­ment (API, chif­fre­ment) est docu­menté, idéa­le­ment open source
    • Ça serait top que ça gère aussi direc­te­ment l’agent pour mes clefs SSH
    Dash­lane

    J’ai exploré par mal de choses. Pour l’ins­tant Dash­lane coche la plupart des cases mais l’ex­ten­sion navi­ga­teur me gêne. Il s’agit d’une coquille vide qui s’oc­cupe des auto-comple­tion et qui inter­agit avec l’ap­pli­ca­tion Dash­lane native sur le système.

    Je trou­vais le système assez smart mais en réalité non seule­ment je ne vois pas ce que ça m’ap­porte mais je vois même en quoi ça peut dimi­nuer légè­re­ment la sécu­rité.

    Dans tous les cas, l’injec­tion de scripts dans toutes les pages à formu­laire est fran­che­ment gênante. Fire­fox me signa­lait régu­liè­re­ment des ralen­tis­se­ment dû à Dash­lane mais en plus l’UX de gestion de l’auto-comple­tion me gêne plus souvent qu’elle me faci­lite la vie, surtout sur un petit écran mobile (sans comp­ter que sur mobile ça m’oblige à utili­ser Chrome plutôt que Fire­fox).

    Enfin, ça veut dire faire confiance. J’ai confiance dans la crypto de base mais quand j’ai posé des ques­tions sur les inter­ac­tions entre le navi­ga­teur et l’ap­pli­ca­tion native j’ai eu des demies réponses sans détails tech­niques. J’ai l’im­pres­sion que cette partie de l’ar­chi­tec­ture repose plutôt sur l’obs­cu­rité. Non seule­ment ça me gêne, mais je doute encore plus de voir arri­ver autre chose que ce que l’équipe a prévu et a le temps de faire.

    Bref, beau­coup de bons points mais j’ai peur que ça ne coche jamais les cases restantes.

    Enpass

    Ça couvre beau­coup moins de choses mais j’aime bien l’idée de fichiers qu’on peut synchro­ni­ser sans serveur via un disque en ligne quel­conque genre Drop­box ou Google Drive. Ça me permet aussi de gérer les sauve­gardes tout en me rassu­rant sur la péren­nité.

    Pass­bolt

    J’en ai encore moins de cases cochées mais là j’ai de l’open­source, donc quitte à bidouiller ça peut être que ça peut faire une base de départ ?

    Là où je suis étonné c’est de ne pas voir plus de projets open source que ça, et pas plus abou­tis. Le cœur logi­ciel est pour­tant assez faci­le­ment acces­sible pour deux ou trois dev moti­vés et le besoin est géné­ral au moins au niveau des geeks.

  • J’ef­face mes traces

    Il y a désor­mais 5 ans que j’ef­face mes traces.

    J’avais fait un petit billet pour expliquer que j’ef­façais mes tweets après 48h. Je l’ai fait un temps mais via des scripts lancés à la main, pour garder le contrôle. Je l’ai fait de façon irré­gu­lière, puis plus du tout pendant un temps.

    La moti­va­tion n’a toute­fois pas chan­gée.

    Je m’y remets avec un script un peu plus évolué qui devrait à terme pouvoir être lancé en auto­ma­tique (quand j’au­rais un peu plus confiance). Désor­mais la plupart de mes tweets pour­ront être suppri­més au bout d’une dizaine de jours.

    Si j’ai le courage j’éten­drai ça à Masto­don et aux autres réseaux. Plus géné­ra­le­ment, tout ce qui n’est pas dans un espace que je contrôle person­nel­le­ment est poten­tiel­le­ment amené à dispa­raitre. Ce qui m’im­porte est géné­ra­le­ment retrans­crit sur le site que vous êtes en train de lire.

  • Mon problème avec Masto­don

    Certains ont très bien expliqué ce que c’est. Bref, c’est décen­tra­lisé. Youpi !

    Sauf que bon, je réserve mon juge­ment défi­ni­tif pour plus tard mais à vue de nez c’est encore une réponse pure­ment tech­nique qui passe à côté des enjeux.

    * * *

    Si je veux jouer avec Masto­don il y a toutes les chances que je me retrouve sur masto­don.social et que je créé un compte là bas. Je me retrouve avec un outil simi­laire à Twit­ter, quelques bonnes idées en plus, la stabi­lité et les 150 clients et robots compa­tibles en moins mais surtout… sans tous les gens qui me suivent ni ceux que je suis.

    Comment est-ce que je tran­si­tionne si je ne peux pas forcer mes cama­rades de jeu ? Jabber a échoué face à MSN pour ça. Status.net a échoué face à Twit­ter pour ça. Je pour­rais parler aussi de Google+ et 50 autres.

    Status.net avait tenté la synchro­ni­sa­tion avec Twit­ter. Les clients pouvaient se connec­ter aux deux réseaux, y publier la même chose et inter­agir avec les rési­dents des deux côtés. Jabber avait le soutien de poids lourds comme Google, Face­book et des acteurs locaux comme Orange. Google+ a tenté de se rendre essen­tiel dans l’in­con­tour­nable Google.

    Rien de tout cela ici et je ne vois aucune stra­té­gie qui me permette d’y croire : pas de marke­ting agres­sif (on parle­rait en dizaines de millions d’eu­ros pour envi­sa­ger battre twit­ter), aucun acteur de poids, pas de parte­na­riat impor­tant avec des sources incon­tour­nables, pas de fonc­tion­na­lité impor­tante au point de me faire aban­don­ner le réseau exis­tant… rien.

    * * *

    Mais « c’est décen­tra­lisé ! » vous allez me dire. Outre que c’est un argu­ment qui ne convain­cra que les geeks, ma réponse sera surtout « ah bon ? ».

    90% des utili­sa­teurs ont créé un compte sur l’ins­tance prin­ci­pale masto­don.social. Autant dire que côté décen­tra­li­sa­tion… Le pire c’est que leur iden­ti­fiant est lié à la plate­forme donc ils devront aban­don­ner tous leurs contacts et leur histo­rique si d’aven­ture ils devaient chan­ger d’ins­tance.

    Vous pouvez aller voir ailleurs, mais déjà que le réseau est petit, il est bien diffi­cile de se dire qu’une petite instance sera là dans la durée. Si pour migrer je dois tout perdre, même moi je risque d’al­ler sur l’ins­tance prin­ci­pale et jeter l’idée de décen­tra­li­sa­tion.

    Pour jouer à ce jeu, il faut non seule­ment un système de délé­ga­tion ou d’in­di­rec­tion au niveau des iden­ti­fiants mais aussi aider les 90% des utili­sa­teurs à effec­ti­ve­ment l’uti­li­ser (non, implé­men­ter webfin­ger ne suffit pas).

    À défaut il faut prévoir dans le proto­cole un moyen d’an­non­cer aux clients qu’un utili­sa­teur a changé d’ins­tance, que les clients se mettent à jour à partir de là et que les serveurs sachent réim­por­ter l’his­to­rique d’un utili­sa­teur en migra­tion. C’est toujours possible de l’ajou­ter après coup mais qu’ils n’y aient pas pensé ne me rend pas opti­miste sur la compré­hen­sion des enjeux.

    * * *

    Bref, pour que j’y crois il aurait fallu une stra­té­gie pour faire migrer une masse critique d’uti­li­sa­teurs, plus une mise en œuvre autre­ment que théo­rique de la décen­tra­li­sa­tion.

    Je n’ai aucun des deux aujourd’­hui et ce n’est pas faute de l’es­pé­rer mais je ne crois pas une seconde que les quelques petites fonc­tion­na­li­tés tech­niques fassent la diffé­rence vis à vis d’un réseau qui est quasi­ment passé dans le langage courant, soutenu par une entre­prise qui peut mettre des dizaines millions sur la table du jour au lende­main.

    Il est temps d’ar­rê­ter de croire que tous les problèmes sont tech­niques et peuvent se résoudre avec des lignes de code. Faire un système de publi­ca­tion décen­tra­lisé c’est (rela­ti­ve­ment) simple. D’autres l’ont déjà fait et ce n’est pas ça qui bloque. L’enjeu pour sortir de la centra­li­sa­tion de Twit­ter se situe ailleurs.

  • Et si on agençait des photos sur une page web mobile ?

    J’ai commencé à vouloir mettre en pratique mes études sur l’agen­ce­ment de photos dans une page web et… j’ai tout repris à zéro.

    Quand je donne un lien vers mes photos, il est quasi­ment toujours ouvert en premier sur mobile. Sauf à y faire des minia­tures illi­sibles, on peut y mettre une ou deux photos maxi­mum en largeur. La vue à la Flickr n’a aucun sens.

    Du coup je suis reparti d’une vue mobile, avec des agen­ce­ments prédé­ter­mi­nés. J’ai en trouvé quatre, même si bien évidem­ment certains peuvent s’in­ver­ser :

    Tech­nique­ment les calculs pour que les agen­ce­ments avec plusieurs images tombent « juste » sont les mêmes que dans la vue Flickr décrite au précé­dent billet.

    * * *

    La vraie ques­tion c’est le choix de l’agen­ce­ment en fonc­tion du format des diffé­rentes photos et de leur ordre d’ap­pa­ri­tion.

    La mauvaise idée de départ c’était tenter de faire des règles complexes pour choi­sir l’agen­ce­ment en fonc­tion des prochaines images et de leur format. L’ap­proche naïve était simple mais le résul­tat assez mauvais visuel­le­ment. Il aurait fallu faire plus complexe que verti­cal / carré / hori­zon­tal mais si je commence à distin­guer sept caté­go­ries, les combi­nai­sons explosent.

    Autant calcu­ler les quatre agen­ce­ments possibles et voir lequel est le plus perti­nent. J’ai pris deux axiomes :

    1– L’im­por­tant visuel­le­ment c’est la surface affi­chée de chaque image plutôt que sa taille en largeur ou hauteur.  Trop gros est aussi mauvais que trop petit. Je compare donc la surface de l’image à évaluer à celle d’une image de réfé­rence (une hori­zon­tale au format 3/2 affi­chée en pleine largeur).

    2– Il suffit d’une seule image illi­sible pour tout gâcher. Je calcule donc le score de chaque image indi­vi­duel­le­ment et le score d’un agen­ce­ment de plusieurs images corres­pond au plus mauvais score des images concer­nées.

    Le résul­tat est plutôt réussi. J’ai tenté de bidouiller et ajou­ter d’autres règles complexes mais ça n’a pas donné des amélio­ra­tions visuelles signi­fi­ca­tives.

    * * *

    Je calcule la gale­rie au fur et à mesure. Parfois il me reste une image verti­cale à la fin et je n’ai plus qu’à l’af­fi­cher en grand, même si c’est déme­suré. Une solu­tion pour­rait être de calcu­ler réel­le­ment toutes les combi­nai­sons pour toute la gale­rie avant de faire mon choix. Ça risque d’être un peu lourd pour ce seul défaut, surtout pour des gale­ries assez longues, donc pour l’ins­tant je ne suis pas allé sur ce chemin.

    Aujourd’­hui je garde l’ordre des photos. Je pour­rais aussi éven­tuel­le­ment iden­ti­fier les cas où tous les agen­ce­ments testés sont mauvais, et tenter de modi­fier un peu l’ordre des images avec celles juste après, pour voir si c’est mieux.

    Tant que je ne repère pas de cas vrai­ment moche, je vais toute­fois rester sur du simple.

    * * *

    Le choix assumé c’est de faire du mobile-first. Si j’ai plus d’es­pace hori­zon­tal je peux tenter de faire deux colonnes avec ce même algo­rithme.

    Si je trouve un point pivot et que je découpe la gale­rie en deux sections, je pour­rai choi­sir de les enchaî­ner verti­ca­le­ment ou hori­zon­ta­le­ment sans avoir besoin de calcu­ler quoi que ce soit en javas­cript.

    Si j’ai vrai­ment une grande surface en hauteur et en largeur, un mur d’images à la Flickr est peut-être plus perti­nent mais je ne m’in­ter­dis pas de simple­ment garder deux colonnes de grande largeur. Je vais attendre de voir ce que ça donne avant de faire mon choix.

     

  • J’ai un problème (sécu­rité) avec Dash­lane – Vous m’ai­dez ?

    Je vous ai déjà parlé de Dash­lane. Fran­che­ment c’est le bonheur.

    Puis je suis tombé aujourd’­hui sur un échange à propos de faiblesses dans le code d’auto-comple­tion de Last­pass. Et là, même si le problème de Last­pass ne se retrouve pas sur Dash­lane j’ai eu un malai­se… « Merde, mes exten­sions Chrome et Fire­fox arrivent à tirer des mots de passe de Dash­lane un peu trop faci­le­ment »

    * * *

    Dash­lane a une app native très clas­sique. C’est elle qui a les mots de passe (chif­frés), que je déver­rouille avec mon mot de passe maître. À partir de la quelle je peux copier les iden­ti­fiants et mots de passe.

    De cette app native, j’ai pu instal­ler les exten­sions Chrome et Fire­fox. Je suppose que ça construit une exten­sion qui m’est spéci­fique, avec des jetons d’ac­cès qui sont diffé­rents chez chacun.

    Ces exten­sions peuvent libre­ment ajou­ter et récu­pé­rer les mots de passe depuis l’app native. Rien à faire, rien à déver­rouiller. Pour peu que l’app native soit ouverte, ça fonc­tionne.

    * * *

    Qu’est-ce qui m’em­pêche de créer un script ou une appli­ca­tion qui ouvre le profil Fire­fox sur le disque, y trouve les fichiers de l’ex­ten­sion Dash­lane, y lit les jetons d’ac­cès et s’adresse à l’app native Dash­lane en cours d’exé­cu­tion pour en extraire tous les mots de passe ?

    Ok, il faudrait que mon script ait accès à mon disque dur, ce qui est en soi un problème, mais si j’uti­lise Dash­lane ce n’est pas pour que n’im­porte quelle appli­ca­tion qui a accès à mon disque puisse accé­der à mes mots de passe en clair aussi faci­le­ment.

    En réalité c’est proba­ble­ment plus complexe. Un petit tour dans les fichiers javas­cript de Dash­lane me fait dire qu’il y a du chif­fre­ment en jeu et qu’il faudrait quelques jours de boulot pour réuti­li­ser le même canal de commu­ni­ca­tion. Rien d’im­pos­sible cepen­dant.

    En fait je peux même proba­ble­ment récu­pé­rer tout le fichier Javas­cript et l’uti­li­ser en tapant direc­te­ment dans l’API interne plutôt que de mimer ce qu’elle sait faire.

    Tout au plus il y a peut-être un système qui iden­ti­fie le nom de l’ap­pli­ca­tion source qui s’adresse à l’app native Dash­lane. Je doute que ça aussi soit incon­tour­nable.

    * * *

    Bref, c’est moi où j’ai un gros problème avec Dash­lane ? Si un techos de Dash­lane passe par là, sans forcé­ment révé­ler tous les méca­nismes dans le détail, j’ai­me­rais bien savoir pourquoi je peux faire confiance au système mis en place.

  • Logi­ciel de mot de passe

    Ça faisait long­temps que je voulais passer à un gestion­naire de mot de passe un peu évolué.

    J’ai tenté par deux fois de me mettre à Last­pass. Je ne saurais dire pourquoi mais les deux fois j’ai fini par peu l’uti­li­ser, le lais­ser dans un coin et reve­nir à mes habi­tudes.

    Depuis peu de temps j’ai tenté avec Dash­lane. Il n’y a pas de client Linux, l’in­ter­face web et en lecture seule mais son gros avan­tage est de pouvoir fonc­tion­ner tota­le­ment offline. Mieux : C’est une entre­prise française. Même si le chif­fre­ment fait que mes données sont théo­rique­ment illi­sibles par le pres­ta­taire, j’ai un peu plus confiance que dans une société US.

    Peut-être est-ce l’er­go­no­mie mais cette fois la sauce a pris. J’ap­pré­cie le login auto­ma­tique sur le navi­ga­teur. J’aime le fonc­tion­ne­ment de l’app mobile qui se contente de l’em­preinte digi­tale si l’app a déjà été déver­rouillée récem­ment par le mot de passe maître.

    Pour le même prix il m’a signalé les sites où mon mot de passe était trop faible ou obso­lète (genre le mot de passe Yahoo qui n’a pas changé depuis les failles) et a su le chan­ger d’un simple bouton sans me deman­der d’al­ler faire les mani­pu­la­tions moi-même sur les diffé­rents sites.

    Il me reste la fonc­tion­na­lité de partage que je n’ai pas testée mais j’ai bon espoir que ça résolve nos diffi­cul­tés de comptes commun avec ma femme.

    Enfin la bonne surprise c’est le mode urgence : Permettre à un tiers iden­ti­fié de récu­pé­rer ma base de mots de passe si je ne décline pas sa requête après un certain nombre de jours. Quelque part ça peut faire office de testa­ment numé­rique, même si ça n’est pas parfait.

    Depuis on m’a pointé vers le récent Enpass, qui ne demande que 10 € pour l’achat à vie de l’app mobile (contre 40 € par an pour le premium Dash­lane). Il a le support Linux, le offline, sa synchro­ni­sa­tion se fait par des pres­ta­taires de cloud habi­tuels, mais il n’y a pour l’ins­tant pas de partage possible. Ça vaut peut-être le coup de commen­cer par Enpass si vous n’avez pas besoin de cette dernière fonc­tion­na­lité.

  • Empreinte digi­tale et sécu­rité

    Nouveau télé­phone avec un capteur d’em­preinte digi­tale. Il n’y a pas à dire, c’est super pratique et le compro­mis de sécu­rité est plutôt bien adapté au cas d’usage.

    Compro­mis ? C’est évident pour les geeks sécu­rité alors je m’adresse aux autres. Tout est histoire de compro­mis entre la faci­lité d’uti­li­sa­tion et le niveau de sécu­rité recher­ché.

    L’em­preinte digi­tale est facile à utili­ser mais assure un assez mauvais niveau de sécu­rité.

    Security - xkcd 358
    Secu­rity – xkcd 538

    Donc, qu’est prêt à faire celui qui veut accé­der à vos données ?

    Si vous ne vous cachez pas sérieu­se­ment à chaque fois que vous déver­rouillez votre télé­phone, le code PIN ou le schéma à la Android ne sécu­risent que contre le vol à l’ar­ra­chée, quand le voleur ne vous connait pas et ne peut rien obte­nir de vous.

    Si votre voleur est prêt à fouiller votre télé­phone sans votre accord, il est certai­ne­ment prêt à loucher par dessus votre épaule pour voir votre PIN ou votre schéma quand vous le tracez. Pour un schéma il peut même parfois se conten­ter des traces de doigts sur l’écran pour peu que vous ayez oublié de les effa­cer.

    C’est *là* que l’em­preinte digi­tale est inté­res­sante. Elle est est simple à utili­ser mais ne peut pas être repro­duite sans un mini­mum d’ef­forts.

    * * *

    Si par contre votre attaquant est prêt à être… méchant, alors l’em­preinte digi­tale est la pire des solu­tions.

    Le plus simple : Même un grin­ga­let peut vous prendre par surprise et retour­ner votre poignet dans votre dos pour vous faire déver­rouiller le télé­phone par la contrainte.

    Le plus discret : Récu­pé­rer une de vos empreintes quelque part où vous la lais­sez – c’est à dire partout, tout au long de la jour­née – et créer une fausse empreinte propre à leur­rer le capteur permis­sif du télé­phone. N’im­porte qui en est capable avec assez de volonté.

    Contre quelqu’un prêt à faire un mini­mum d’ef­forts il ne reste qu’un mot de passe ou un schéma suffi­sam­ment complexe que vous gardez confi­den­tiel. Rien ne battra même un bête code PIN si l’ap­pa­reil limite le nombre de tenta­tives.

    Le problème c’est que tour­ner le dos à vos proches à chaque déver­rouillage de télé­phone puis s’as­su­rer de ne pas lais­ser de traces sur l’écran, ce n’est pas neutre au jour le jour. Bien entendu, si vous allez dans cette direc­tion, il faut que le disque du télé­phone soit chif­fré, que le télé­phone se verrouille immé­dia­te­ment quand vous le lais­sez sur une table, et que l’éven­tuel schéma à tracer soit très complexe. Sinon autant reve­nir à l’em­preinte digi­tale.

     

  • Les meilleurs commen­taires ne s’écrivent pas

    Les meilleurs commen­taires sont ceux que l’on n’a pas besoin d’écrire.

    Lorsque l’on a besoin d’écrire un commen­taire, le plus souvent, c’est que notre code n’est pas aussi clair et propre qu’il devrait l’être.

    Je suis bien d’ac­cord avec la cita­tion du dessus, mais elle n’im­plique aucu­ne­ment ce qui suit.

    Damned, un déve­lop­peur faisant une telle faute logique ? On devrait savoir que les rela­tions de cause et consé­quence ne s’in­versent pas. Si les meilleurs commen­taires sont ceux qu’on n’a pas besoin d’écrire, personne n’a dit qu’on ne devrait pas écrire les commen­taires !

    function main() {  
      let imageName = 'test.png'
    
      // Get the extension off the image filename  
      let pieces = imageName.split('.')
      let extension = pieces.pop()
    }
    

    […] ça ressemble beau­coup trop à une excuse : « Mon code est moche / compliqué mais c’est pas grave je vais l’ex­pliquer dans un commen­taire » au lieu de le nettoyer.

    Donc oui, ce commen­taire est à peu près inutile. S’il le devient c’est que le code est proba­ble­ment inuti­le­ment complexe et pour­rait être amélio­rer avec l’uti­li­sa­tion de fonc­tions tierces bien nommées.

    Si effec­ti­ve­ment vous commen­tez ainsi (pas de honte, ça arrive à tous), ça ne sert à rien.

    Par contre, un commen­taire qui dit pourquoi vous avez besoin de l’ex­ten­sion ça ne serait pas forcé­ment du luxe. Peut-être que ce commen­taire manquant me permet­trait de savoir si le compor­te­ment face à un fichier « .test.png » est une anoma­lie ou est volon­taire. Là je suis bien à mal de savoir sans lire tout le code source en détail pour cher­cher l’in­ten­tion du déve­lop­peur.

    Bref, si vous croyez qu’un code source clair remplace les commen­taires, c’est que vous n’avez pas encore compris ce qu’il faut écrire dans les commen­taires.

    /**
     * Get the extension of the file
     * 
     * @param {string} filename - The filename
     * @return {string} the extension of the file  
     */
    function getFileExtension(filename) {  
      let pieces = imageName.split('.')
      return pieces.pop()
    }

    Dites moi qu’il y a une infor­ma­tion dans ce commen­taire que vous n’aviez pas en lisant le code !

    Non. Par contre dans un IDE évolué, ce type de code me permet d’avoir confir­ma­tion du rôle de la fonc­tion quand je la tape ou quand je la lis plutôt que de devoir m’in­ter­rompre pour aller ouvrir le fichier corres­pon­dant et lire tout le code source. D’au­tant que là ce sont deux lignes mais parfois, même si c’est clair, c’est quand même plus long à lire.

    C’est aussi avec les commen­taires de @ que l’IDE me donnera le rôle des diffé­rents para­mètres. Oui, le plus souvent ils devraient être évident mais est-ce toujours le cas ? Grâce à ce jsdoc je saurais sans ouvrir la fonc­tion que je dois y rensei­gner un nom de fichier et pas un chemin complet. Bien m’en a pris parce que « ./test.png » aurait provoqué de jolies erreurs à l’exé­cu­tion de mon programme. Je saurai aussi si j’ai ou pas un argu­ment option­nel et pourquoi.

    Toujours avec un outillage évolué, la mention du string permet­tra d’iden­ti­fier des erreurs de typage malen­con­treuses. Ça pour­rait être dans le proto­type de la fonc­tion avec flow ou ici dans le commen­taire, peu importe, seule la syntaxe diffère.

    Main­te­nant même ici, le problème n’est pas avec le commen­taire mais avec ce qu’il dit. Ça n’au­rait pas été du luxe que la fonc­tion décrive que ce qu’elle consi­dère être une exten­sion dans le cas d’un « test.tar.gz ».

    Là où le code est propre le commen­taires ne sera qu’une redon­dance sans grand inté­rêt que le cerveau appren­dra vite à igno­rer.

    Et si c’était le contenu des commen­taires qu’il fallait remettre en cause et pas leur présence ?

    Sinon oui, je règle mes outils pour que les commen­taires s’af­fichent en gris clair. Pas qu’ils soient sans inté­rêt mais parce que j’ai deux niveaux de lecture suivant que je travaille le corps de la fonc­tion (et là je veux igno­rer les commen­taires) ou que je l’étu­die la première fois.

    Le seul problème que je rencontre aujourd’­hui se produit dans le cadre de project avec une docu­men­ta­tion publique auto-géné­rée. Comment éviter la redon­dance tout en faisant en sorte que la docu­men­ta­tion géné­rée à partir de mes commen­taires soit complète.

    Si la docu­men­ta­tion géné­rée pour les déve­lop­peurs a besoin des commen­taires, c’est que peut-être l’as­ser­tion comme quoi le code est aussi simple et effi­cace à lire que les commen­tai­res… est peut-être fausse. Je dis ça je dis rien.

  • [Lecture] The Real Name Fallacy

    Not only would remo­ving anony­mity fail to consis­tently improve online commu­nity beha­vior – forcing real names in online commu­ni­ties could also increase discri­mi­na­tion and worsen harass­ment.

    The Coral Project (Mozilla)