Catégorie : Technique

  • Bases de données en master – master

    J’ai cher­ché de quoi stocker des données avec plusieurs serveurs maîtres en répli­ca­tion, mais je n’ai rien trouvé d’in­té­res­sant pour l’ins­tant. Je me suis dis que toi, fidèle lecteur, tu pour­rais appor­ter ta pierre. D’au­tant qu’il me semble que c’est une problé­ma­tique courante, au moins pour les améri­cains qui doivent avoir des serveurs sur les deux côtes, synchro­ni­sés entre eux.

    Fonc­tion­nel­le­ment

    J’ai des visi­teurs qui vont accé­der en lecture, en écri­ture ou en modi­fi­ca­tion à des données. Ces visi­teurs peuvent être répar­tis géogra­phique­ment et j’ai­me­rai que dans la mesure du possible, ils puissent accé­der à leurs données rapi­de­ment. Par rapi­de­ment j’en­tends « sans avoir à payer 100 à 200 ms de latence pour joindre un serveur de base de données sur une autre côte ou sur un autre conti­nent ».

    Là où j’ai de la chance, c’est qu’une même données ne sera crée, modi­fiée ou lue que par un seul utili­sa­teur (ou presque). Cet utili­sa­teur sera donc le plus souvent au même endroit, donc je peux répar­tir mes données en consi­dé­rant qu’un seul serveur est maître sur chaque données. Dans mon esprit ça veut dire que ce sera rapide (données proches) 90% du temps et lent (serveur maître loin) les 10% du temps restant si l’uti­li­sa­teur navigue géogra­phique­ment. Par contre il faut que lors de la créa­tion d’une donnée, je puisse choi­sir quel serveur sera le maître pour la donnée en ques­tion (pas de répar­ti­tion auto­ma­tique par hachage de clef puisque le maître est choisi en fonc­tion de la proxi­mité géogra­phique).

    Histoire de complé­ter : J’ai assez peu de rela­tion­nel dans ces données et j’y accède quasi­ment toujours par leur clef primaire. Je suis prêt à utili­ser du SGBDR type MySQL, du clef/valeur type Redis, ou des inter­mé­diaires type MongoDB (bon, j’ai une préfé­rence pour du Redis, qui serait mon choix sans la contrainte multi-maître).

    J’ai des volumes qui vont repré­sen­ter plusieurs Go, entre 5 et 20 on va dire à vue de nez, non vola­tiles (donc j’ex­clue tout système qui ne permet pas de sauve­garde ou qui n’a pas de couche écri­ture disque). La perfor­mance est impor­tance lors des accès, mais je ne vais pas avoir un débit d’écri­ture phéno­mé­nal non plus. Je ne pense pas que ce soit le critère de choix prin­ci­pal.

    Enfin, je n’ai pas besoin d’écri­tures synchrones sur plusieurs serveurs. Je suis prêt à avoir une latence d’une ou plusieurs secondes avant de pouvoir accé­der à une nouvelle donnée (ou à une modi­fi­ca­tion) depuis un autre serveur que celui de sa créa­tion.

    Tech­nique­ment

    Beau­coup de solu­tions ont un mode maître-maître qui ne semble pas conve­nir à mon besoin, où les conflits peuvent être légion : Si un utili­sa­teur fait volon­tai­re­ment une opéra­tion sur une données à partir de plusieurs empla­ce­ments géogra­phique, je risque de ne pas pouvoir tracer ses diffé­rentes opéra­tions mais d’avoir au mieux la trace de la dernière. Sauf erreur de ma part, les bidouillages multi-maîtres MySQL et Post­greSQL entrent dans cette caté­go­rie.

    J’ai jeté un oeil à Redis-clus­ter, qui a l’air d’être assez proche de la philo­so­phie que je cherche (chaque donnée a un et un seul maître) mais c’est malheu­reu­se­ment avec une isola­tion complète, c’est à dire qu’au­cun noeud n’a l’en­semble des infor­ma­tions en lecture. J’y vien­drai s’il le faut, mais si je veux un fail-over correct ça veut dire qu’il faut que je double chaque noeud (le maître, puis son esclave en cas de défaillance). Je ne suis pas non plus certain de pouvoir choi­sir le maître à utili­ser lors de l’écri­ture.

    Je regarde Riak, CouchDB, RethinkDB, Tyrant, Volde­mort, Dyno­mite et quelques autres mais je manque cruel­le­ment de retours d’ex­pé­rience et d’in­for­ma­tions pour faire un choix éclairé, si tant est que l’un de ceux là puisse corres­pondre.

    J’ai aussi en tête de faire quelque chose à la main avec une logique appli­ca­tive par dessus le connec­teur Redis, pour qu’il se connecte au bon serveur en fonc­tion du premier carac­tère de la clef, mais j’ai­me­rai fran­che­ment éviter les bidouilles manuelle pour quelque chose qui doit certai­ne­ment avoir une solu­tion sur étagère.

    Dis, lecteur, as tu des liens, des retours d’ex­pé­rience, des infor­ma­tions, des commen­taires ?

     

  • Diffé­ren­cier le trafic pour créer de la valeur – le réseau auto­rou­tier

    Les jour­na­listes râlent encore sur l’en­com­bre­ment des réseaux auto­rou­tiers. Marron­nier. Évidem­ment il est hors de ques­tion d’aug­men­ter encore les tarifs des usagers.

    Vinci est créa­teur de 7500 emplois directs, les Auto­routes Paris-Rhin-Rhône plus de 4500, et ce ne sont que deux des conces­sion­naires du réseau auto­rou­tier. Tout ça fait vivre autant de personnes sur les commerces et sur l’éco­no­mie géné­rée aux alen­tours. C’est aussi par l’au­to­route que sont désen­cla­vées nombre de petites villes qui sinon dépé­ri­raient. Faut-il mettre tout ce monde au chômage sur l’au­tel d’un concept théo­rique ?

    Les asso­cia­tions se sont en effet oppo­sés à la segmen­ta­tion fine du trafic auto­rou­tier. Créa­teur de valeur pour les conces­sions d’au­to­route, ce système aurait pour­tant permis de géné­rer un revenu supplé­men­taire signi­fi­ca­tif.

    Merce­dez-Benz est en effet l’ori­gine de 20% du trafic auto­rou­tier poids-lourd à lui tout seul, le trafic le plus encom­brant pour le réseau. Le construc­teur profite sans gêne de nos infra­struc­tures pour vendre ses camions. Il est évident que les conces­sion­naires d’au­to­route ne peuvent pas conti­nuer à finan­cer seuls l’évo­lu­tion du réseau auto­rou­tier alors que les étran­gers qui y injectent du trafic n’y contri­buent en rien.

    La solu­tion tout le monde la connait : Faire du trafic diffé­ren­cié et canton­ner les véhi­cules de Merce­dez à la voie la plus à droite et à une seule file au barrières de péages. Le construc­teur devra payer l’opé­ra­teur auto­rou­tier pour un accès plus perfor­mant, et contri­buer ainsi au paie­ment des infra­struc­tures.

    Ce système vien­drait en renfor­ce­ment des offres à valeur ajou­tée pour les usagers : Des accès privi­lé­giés ont déjà été mis en œuvre via les télé­badges qui permettent de passer par des files prio­ri­taires dans les barrières de péage. On réflé­chit à étendre ce système pour permettre à des profes­sion­nels de sauter les bouchons via la bande d’ar­rêt d’ur­gence sous réserve de sous­crip­tion à un abon­ne­ment spéci­fique, ou d’ache­ter une exten­sion « Accès prio­ri­taire Merce­dez » pour ne plus être limité à la voie de droite.

    Les asso­cia­tions idéa­listes crient à l’at­teinte à la neutra­lité mais ces dernières n’ont rien compris à l’éco­no­mie, à la confron­ta­tion entre notre réseau auto­rou­tier financé en partie par l’État et les usagers, et entre les gros construc­teurs étran­gers qui en profitent sans y contri­buer. Il est temps d’ar­rê­ter avec ces concepts théo­riques et de prendre pied dans la réalité. Lais­sons les opéra­teurs d’au­to­route créer de la valeur.

  • Partage de fichiers en PME

    Comment parta­ger des fichiers au sein d’une PME d’une douzaine de personnes ?

    J’ai mis mes réflexions ci-dessous mais je suis preneur de recom­man­da­tions. J’ai du Mac, du Windows et du Linux, des postes fixes comme des portables (régu­liè­re­ment hors site).

    Un petit NAS

    Point parti­cu­lier : Il est diffi­cile d’ex­clure des vols dans les locaux, donc il faut que la NAS puisse chif­frer le système de fichier et synchro­ni­ser avec un service à distance.

    Je connais les Syno­logy, suivant la gamme on peut imagi­ner un DS213j et un disque unique synchro­nisé en rsync avec un serveur distant. C’est de l’ordre de 270€ mais ça me demande un disque en ligne donc empêche d’y mettre des To.

    On peut aussi imagi­ner un abon­ne­ment crash­plan, ce qui permet­trait de mettre un gros disque sans risquer de perte si jamais il dispa­rait. Pour ça il faut sauter sur le DS413 afin d’avoir les 1Go de mémoire néces­saires. On monte à 600€ plus 50€/an.

    On peut aussi imagi­ner un mini-PC avec un système d’ex­ploi­ta­tion dédié à un usage NAS, mais je n’ai aucun retour d’ex­pé­rience là dessus. Quelqu’un a déjà utilisé FreeNAS ou OpenMe­diaVault ? Au niveau prix, on risque de rester dans la même gamme que précé­dem­ment.

    Le défaut de ces solu­tions c’est qu’on va avoir des fichiers désyn­chro­ni­sés, des conflits parce que chacun édite dans son coin, des retours en arrière de version, etc. Par expé­rience c’est une horreur à gérer.

    Une synchro en ligne directe

    Comme de toutes façons il me faut une synchro en ligne, autant étudier la perti­nence que tout le monde synchro­nise ses fichiers en ligne avec un système type Drop­box. Ça permet d’évi­ter que chacun risque d’avoir une version non à jour sur son poste, ou au contraire que la version modi­fiée ne soit pas copiée sur le serveur central.

    Drop­box est clai­re­ment hors de prix pour le compte entre­prise. On parle de 1800 à 2000 € par an. Pour juste parta­ger des fichiers, ça me fait mal, quand bien même le service est très bon.

    Box.net propose 13€ par utili­sa­teur par mois, donc 2400€ par an pour 15. Ils offrent 1 To, ce qui est confor­table à condi­tion qu’un fichier partagé à 15 utili­sa­teur ne compte pas 15 fois. Ça a l’air plus complet que Drop­box mais pas moins cher.

    Wuala pour entre 10 et 15 personnes on parle de 600 € par an mais pour unique­ment 100 Go. Je ne sais même pas si un fichier partagé compte plusieurs fois.

    SugarSync n’est pas clair sur ses prix, ils parlent de 550$ par an pour 3 utili­sa­teurs et il faut passer par un commer­cial pour plus de 10 personnes. Comme je n’ai en plus aucun retour d’ex­pé­rien­ce…

    HubiC est disqua­li­fié, n’ayant pas de client Linux.

    On me dit d’ajou­ter Google Drive, qui peut effec­ti­ve­ment synchro­ni­ser sur disque des fichiers divers. Un compte pro c’est 50 € par mois, donc 750 € par an pour 15 utili­sa­teurs et 25 Go par utili­sa­teur.

  • Hyper­me­dia, quelques recherches pour JSON

    Je regarde un peu les implé­men­ta­tions hyper­me­dia pour une API. J’avoue que je pleure un peu. Qu’on soit clairs, JSON n’est pas adapté pour ça, sauf à construire des messages bien complexes à lire et à produire (ce qui tue un peu l’uti­lité de JSON). Main­te­nant si on veut garder JSON, voilà l’état de mes reflexions :

    — Ce billet est en évolu­tion constante, dernière mise à jour le 18 juin 2013 au matin —

    Déjà quelques specs liées :

    Et deux discus­sions à lire en amont (avec les commen­taires, pour les deux) :

    JSON API

    • Spec assez simple
    • Utilise URI Template
    • Réserve un terme trop géné­rique (links) pour les clefs de la racine JSON
    • Ne permet pas d’uti­li­ser des URI pour les types de rela­tion
    • Ne permet pas d’avoir plusieurs liens (de format diffé­rent par exemple) pour une même rela­tion
    • Le type de ressource ciblée par une rela­tion peut être spéci­fié (ce qui me parait super­flu : si on connait le sens de la rela­tion, on connait le type ciblé)
    • Impose JSON-PATCH

    HAL – Hyper­text Appli­ca­tion Language

    • Rendu assez moche (oui, c’est subjec­tif mais ça compte)
    • Gère des espaces de noms via Curie dans les liens et rela­tions
    • Utilise (option­nel­le­ment) les URI Template (mais ne précise pas où trou­ver les para­mètres)
    • Permet de préci­ser un profile pour quali­fier les attri­buts d’un objet (mais pas de mixer plusieurs voca­bu­laires)
    • Ne permet pas d’avoir plusieurs liens (de format diffé­rent par exemple) pour une même rela­tion
    • Beau­coup de biblio­thèques de code dans pas mal de langages, côté client et côté serveur
    • J’échoue complè­te­ment à sépa­rer ce une collec­tion ou un attri­but complexe et une ressource embarquée, donc à comprendre l’uti­lité de la clef _embed­ded
    • C’est en draft IETF

    JSON-LD

    • Semble être fait par des gens avec un esprit assez proche de RDF
    • Simple à lire, mais trop complète, trop complexe, risque d’être diffi­cile à implé­men­ter
    • Gère un des voca­bu­laire avec des URI pour quali­fier les liens, les clefs, etc. avec même des possi­bi­li­tés d’alias
    • Consi­dé­rant les indi­rec­tions possibles, trou­ver le lien avec une valeur spéci­fique de « rel » est une tâche assez complexe
    • Ne gère pas de template pour les liens, mais sait gérer les liens rela­tifs à une base décla­rée plus haut (ce qui compense un peu)
    • C’est en voie de stan­dar­di­sa­tion au W3C
    • On peut ajou­ter Hydra par dessus pour décrire les actions (petite présen­ta­tion)
    • Peu d’im­plé­men­ta­tions clientes (trouvé une PHP et un conver­tis­seur vers RDF en Ruby)

    Siren

    • Va plus loin que les autres, en décri­vant aussi les types d’ac­tions possibles sur la ressources décrite, les para­mètres pour les diffé­rentes actions, etc. (illu­sion de pouvoir coder un navi­ga­teur d’API géné­rique ?)
    • Pas de template pour les liens
    • Simple à comprendre et à relire (si on met de côté la partie « actions »)
    • Impose une enve­loppe, les clefs à la racine sont liées à Siren, pas à l’objet décrit
    • Pourquoi ici encore sépa­rer les enti­tés liées des proprié­tés ?

    Collec­tion/JSON

    Quand on pense avoir saturé, on se rend compte que ce n’est pas fini. J’ai donc trouvé Collec­tion+JSON après les autres. Il permet de défi­nit des gaba­rit d’at­tri­buts pour les ressources, ajoute les liens et les rôles des liens, la notion de collec­tion, et défi­nit les méca­nismes d’ajout/recherche.

    C’est fina­le­ment une de celes qui se concentrent le mieux sur la tâche fixée au départ, mais je ne suis pas certain d’être convaincu. Au moins on a évité la sur-ingé­nie­rie. C’est implé­men­table de bout en bout.

    Quelques pré-conclu­sions

    Certaines spéci­fi­ca­tions vont bien trop loin à mon goût, et pas toujours en sachant faire correc­te­ment la base (éviter les conflits de nommage, pouvoir utili­ser des URI pour le voca­bu­laire, voire des espaces de noms).

    Rien que les templates d’URI sont fina­le­ment inutiles. Ils permettent de grap­piller quelques octets en évitant de taper des liens complets, mais imposent de rédi­ger un code non négli­geable rien que pour recons­truire le lien final, et empêchent de copier un sous-objet en le consi­dé­rant comme auto­nome (il ne l’est pas, le template pour son URL est dans l’objet parent).

    Alors parler de décrire les actions et les inter­ac­tions possibles avec chaque objet… En voulant trop en faire on reporte beau­coup de complexité sur le client. On est parfois en train de faire des clients très complexes pour éviter de gérer des infor­ma­tions simples et qu’on va proba­ble­ment de toutes façons coder en dur quelque part. Ça en devient contre-produc­tif. De ce côté j’ap­pré­cie la peti­tesse de JSON-API.

    J’ai encore l’avis qu’i­ma­gi­ner un client HATEOAS complet et géné­rique est illu­soire. J’ai juste besoin d’at­ta­cher quelques méta­don­nées comme des liens, des rôles aux liens, et éven­tuel­le­ment un voca­bu­laire pour les types de données.

    Et puis, sérieu­se­ment, si c’est pour que le résul­tat ne soit plus éditable agréa­ble­ment et présente des struc­tures non natu­relles, quel est l’in­té­rêt d’être passé à JSON ?

    XML, ou même HTML avec des micro­data/formats est défi­ni­ti­ve­ment plus adapté que JSON pour ce que je cherche à faire. À JSON il manque au moins un moyen d’at­ta­cher des méta­don­nées à une clef/valeur (par exemple la notion d’at­tri­but sur les nœuds XML/HTML). Avec ça nous pour­rions faire un joli format, sans ça ça restera bien moche et peu pratique.

    Le problème c’est que déve­lop­per un client qui fouille des données HTML avec une struc­ture lâche à base de micro­data/formats, c’est aussi assez complexe à gérer. Reste le XML « à la main » mais si si je veux que mon API soit utili­sée, je crains que JSON ne soit le seul choix prag­ma­tique.

    Entre les diffé­rentes spéci­fi­ca­tions

    Mon cœur balance entre JSON-API pour sa simpli­cité (mais réser­ver le terme « links » me semble juste une aber­ra­tion), HAL parce qu’il semble de loin (mais ce « _embed­ded » me gêne toujours, et faire un « _links »: { « self »: { « href »: « xxxxxx » } } juste pour donner le lien du sous-objet courant me inuti­le­ment lourd), et JSON-LD parce que ça ressemble assez fort à la façon dont je pense et que ça semble permettre tout ce que je peux imagi­ner d’in­tel­li­gent (mais implé­men­ter la spec complè­te­ment risque d’être fran­che­ment diffi­cile).

    Dans une précé­dente version de ce billet j’ai tenté un subset de JSON-LD où n’im­porte quel objet peut conte­nir :

    • un attri­but (facul­ta­tif) @id, qui est le lien iden­ti­fiant l’objet
    • un attri­but (facul­ta­tif) @type, qui défi­nit l’URL du type de l’objet (par exemple un type de schema.org) et poten­tiel­le­ment le sens des sous-clefs ou sous-liens.
    • un sous-objet (facul­ta­tif) @con­text, qui contient les diffé­rents préfixes et adresses utili­sables pour les diffé­rentes clefs de l’objet (afin de pouvoir mixer plusieurs voca­bu­laires sans risquer de conflits de noms et de sens).
    • un sous-objet (facul­ta­tif) @rel, inexis­tant dans JSON-LD, qui pointe les diffé­rents objets liés par leur rôle (attri­but « rel » habi­tuel) pour les retrou­ver faci­le­ment (il y a trop d’in­di­rec­tions pour ça dans JSON-LD)

    Mais je n’aime pas réin­ven­ter la roue, et aussi moche soit-il, HAL contient peut être le prin­ci­pal. Entre une spéci­fi­ca­tion géniale mais trop complexe et sans implé­men­ta­tion cliente, et une spéci­fi­ca­tion plus simple, moche mais bour­rée d’im­plé­men­ta­tions, j’ai du mal à ne pas recom­man­der la seconde. J’ai quand même toujours un peu de mal à voir comment me servir utile­ment du _embed­ded.

  • Éton­nant l’es­pion­nage, vrai­ment ?

    Ces jours ci on apprend que la NSA aurait un accès sur les données de Google, Apple, Yahoo, Micro­soft, Face­book et d’autres via un projet nommé PRISM.

    Je trouve très hypo­crite tous ces gens qui se disent éton­nés et d’un coup scan­da­li­sés.

    Qui n’a pas entendu parler d’Eche­lon ? Même Jean-Pierre Pernot a du en parler à l’époque. Quel infor­ma­ti­cien un peu âgé et travaillant dans les réseaux n’a pas entendu parler de Carni­vore ? Quel geek n’a pas entendu parler de la pièce 614A utili­sée par la NSA au milieu de AT&T ? Quel infor­ma­ti­cien de plus de 30 ans n’a pas entendu parler de la polé­mique sur la clef NSA dans Micro­soft Windows ?

    Que les USA fouillent dans les commu­ni­ca­tions en ligne, ce n’est même plus un sujet. D’ailleurs les autres pays non plus. On peut parler du Great Fire­wall of China, mais aussi de Amesys en Libye, la Suède, la Suisse, et bien entendu la France. En fait quasi­ment tous les pays espionnent les commu­ni­ca­tions en ligne à leur niveau. Notre pays est même à la pointe sur ce genre d’outils d’in­ter­cep­tion à l’échelle de pays entiers.

    L’in­ter­cep­tion des lignes télé­pho­niques est main­te­nant presque un outil du passé. Qui croit vrai­ment que les États n’ont pas fait évoluer leurs outils ? Aujourd’­hui les polices et agences de rensei­gne­ment ont très offi­ciel­le­ment des batte­ries de virus et autres enre­gis­treurs de frappe. Il y a même des lois pour cadrer tout ça (au moins aux USA, en France et en Alle­magne, mais proba­ble­ment aussi partout ailleurs).

    Bref, oui c’est grave, oui il faut lutter, mais faire semblant de décou­vrir que les données privées sont proba­ble­ment inter­cep­tées, c’est juste hypo­crite. La seule chose qui change aujourd’­hui c’est que nous avons un nom et des éléments pour poser des ques­tions formelles.

  • À quoi ça sert

    Quand vous aurez tous vos conte­nus sur Amazon, toute votre commu­ni­ca­tion sur Google et toutes vos rela­tions sur Face­book, et que deux ans après l’un des trois ou les trois vous dit « vous signez ici ou vous aban­don­nez tout ce que vous avez », il sera un peu tard.

    Ce scéna­rio n’est même plus de la prédic­tion, c’est le présent et ça a déjà commencé. Le billet précé­dent sur la messa­ge­rie instan­ta­née n’est qu’une anec­dote, mais qui fait partie d’un mouve­ment de fond bien puis­sant.

    Ce qui m’agace le plus c’est que les gens laissent faire, et même semblent ne pas s’en préoc­cu­per.

    Parfois j’ai presque envie de lais­ser tomber le web à tel point je me dis « c’est foutu les gens s’en moquent ».

    J’ai l’air bien beau à résis­ter en contrô­lant mes adresses et mes iden­ti­fiants avec mon nom de domaine, voire mes services sur mon serveur perso. C’est utile pour moi mais ce n’est acces­sible qu’à une mino­rité. Mener le combat seul ne sert à rien : Si vous vous êtes tous vendus, alors pour conti­nuer à vivre en rela­tion avec vous je n’ai d’autre choix que de faire de pareil.

    Seuls nous n’avons quasi­ment aucune chance de propo­ser une alter­na­tive, pour­tant c’est juste essen­tiel pour nous, notre avenir, et celui de nos enfants. Si ça vous parait encore être une « grande phrase », c’est que vous ne réali­sez pas encore ce qui se joue aujourd’­hui.

  • Messa­ge­rie instan­ta­née et jardins fermés

    Je suis très pessi­miste sur les évolu­tions récentes dans la messa­ge­rie instan­ta­née.

    Le mieux

    Pendant un temps ça s’est un peu amélioré. Les non-tech­ni­ciens ne le voyaient pas mais on a commencé à ouvrir un peu les réseaux. Le proto­cole ouvert et stan­dar­disé XMPP s’est plus ou moins imposé comme base, et Jabber (le réseau des serveurs XMPP ouverts) commençait à prendre pas mal d’im­por­tance.

    Apple iChat, Google et même MSN savaient désor­mais plus ou moins commu­niquer entre eux via ce proto­cole, éven­tuel­le­ment avec quelques arti­fices. Chacun pouvait aussi monter son propre sous-réseau chez lui ou dans son entre­prise, avec sa propre adresse, et commu­niquer avec les gros réseaux de façon trans­pa­rente. Même Skype avait annoncé déve­lop­per un connec­teur pour la partie texte de sa messa­ge­rie. AIM avait de plus commencé à s’ou­vrir au réseau de Google, ce qui était un premier pas.

    Mais ce n’est pas tout : AIM, ICQ, Yahoo! Face­book et bien d’autres ont migré vers ce même proto­cole.Même si leurs réseaux restent isolés les uns des autres, il était possible d’uti­li­ser le même proto­cole et donc d’avoir des appli­ca­tions qui faisaient tout. C’était encore loin d’être idéal, parfois les fonc­tion­na­li­tés avan­cées des diffé­rents réseau n’étaient pas gérées, et pour certains l’im­plé­men­ta­tion était expé­ri­men­tale ou en déve­lop­pe­ment, mais la direc­tion était plus qu’en­cou­ra­geante. Même twit­ter avait une inter­face avec le proto­cole XMPP pour certains flux.

    Les appli­ca­tions Pidgin et Adium permet­taient ce qui manquait encore, en implé­men­tant tous les proto­coles prin­ci­paux. Sous réserve d’avoir un compte sur chaque réseau il était possible de centra­li­ser toute la messa­ge­rie sur une seule appli­ca­tion et de ne pas se préoc­cu­per de savoir qui est sur quel réseau (ou même qu’il existe diffé­rents réseaux).

    Il n’y a presque que Skype qui restait dans son coin mais, au moins dans nos pays, il était quasi­ment exclu­si­ve­ment utilisé pour la voix, pas pour la messa­ge­rie instan­ta­née.

    Et le moins bien

    Malheu­reu­se­ment le « je veux mon réseau social comme Face­book » semble être à la mode et on a tout détri­coté tout juste quelques mois.

    Twit­ter ? Ils ont fermé leur inter­face XMPP, et les évolu­tions montrent qu’ils tentent de contrô­ler les diffé­rentes appli­ca­tions clientes. Le nombre maxi­mum d’uti­li­sa­teurs par appli­ca­tion non-offi­cielles fait qu’il est illu­soir d’ima­gi­ner une compa­ti­bi­lité stable et pérenne avec des appli­ca­tions de messa­ge­rie instan­ta­née.

    MSN ? Ils ont racheté Skype et a annoncé migrer ses utili­sa­teurs de Windows Live vers ce réseau. Le réseau MSN fonc­tionne encore alors que sa date d’ex­tinc­tion est désor­mais passée, mais rien ne permet de dire si ça perdu­rera encore long­temps.

    Le proto­cole Skype n’est malheu­reu­se­ment pas ouvert et ce ne semble pas être la direc­tion souhai­tée en interne. Il est probable qu’il faille désor­mais commu­niquer avec les contacts MSN via Skype et unique­ment Skype.

    Il existe encore un plugin Skype pour Pidgin mais il impose d’avoir le client Skype lancé et connecté, ne couvre pas le mobile, et semble ne pas fonc­tion­ner correc­te­ment pour les utili­sa­teurs qui ont fusionné leur compte Skype et leur compte MSN.

    Google ? Google vient d’an­non­cer le passage à Hangout. Ils avaient déjà éteint un bref moment les échanges entre leurs serveurs de messa­ge­rie et les serveurs tiers, rompant l’in­te­ro­pé­ra­bi­lité. Désor­mais c’est tout le proto­cole XMPP qui est jeté. Impos­sible de commu­niquer avec des utili­sa­teurs non Google une fois que vous avez migré, pas même avec les utili­sa­teurs du réseau AIM qui avaient une liai­son spéci­fique. Impos­sible aussi d’uti­li­ser un client autre que les clients Google.

    L’an­cien réseau XMPP de Google est encore là mais on ne sait pas pour combien de temps. Toujours est-il que les utili­sa­teurs vont migrer vers Hangout au fur et à mesure (consciem­ment ou non) et ce sont autant de gens qui devien­dront injoi­gnables pour ceux qui n’y sont pas encore. Pire : Il semble qu’ils sont encore vus comme connec­tés, mais ne peuvent pas lire vos messages ou vous en envoyer.

    Là aussi, le proto­cole n’est pas connu, donc il faudra avoir un logi­ciel spéci­fique pour Hangout, impos­sible d’uti­li­ser Pidgin ou un équi­valent.

    Sans avenir

    Twit­ter, MSN et Google s’en­ferment chacun dans leur pré : impos­sible de commu­niquer avec eux depuis l’ex­té­rieur, ou d’avoir une même appli­ca­tion qui se connecte aux diffé­rents réseaux. Diffi­cile de comp­ter sur Face­book pour s’ou­vrir, et les autres qui étaient au stade de déve­lop­pe­ment ou d’ex­pé­ri­men­ta­tion ne risquent pas d’in­ves­tir pour péren­ni­ser la chose désor­mais.

    Bref : Vous appar­te­nez au réseau que vous choi­sis­sez, et vous n’êtes qu’un pion dans la guerre qui oppose les multi­na­tio­nales d’In­ter­net. Le courant domi­nant est main­te­nant de fermer les fron­tières et de capi­ta­li­ser sur les utili­sa­teurs pieds et poings liés, c’est à dire vous. Votre proprié­taire pourra vous impo­ser les conte­nus, les services ou la publi­cité qu’il souhaite (rassu­rez-vous, il atten­dra un peu que ça se calme avant de le faire, histoire de ne pas risquer une migra­tion en masse). Une société souhaite lancer des conte­nus ou inno­ver ? OK si elle paye votre proprié­taire et n’entre pas en concur­rence avec lui. Moins vous pour­rez commu­niquer avec l’ex­té­rieur, mieux ce sera car vous serez sous contrôle de votre proprié­taire de réseau.

    Sauf renver­se­ment de situa­tion ou prise de conscience excep­tion­nelle des utili­sa­teurs :

    • Jabber est mort à court ou moyen terme, sauf pour quelques geeks et inter­nautes convain­cus
    • Vous ne pour­rez plus choi­sir vos appli­ca­tions, il faudra accep­ter les appli­ca­tions offi­cielles, en leur donnant les droits qu’elles demandent, en accep­tant publi­ci­tés, mises en avant ou marke­ting qu’elles choi­sissent
    • Si vous n’ac­cep­tez pas de vous lais­ser enfer­mer et menot­ter sur un seul réseau, il faudra instal­ler et lancer simul­ta­né­ment plusieurs logi­ciels diffé­rents non inter­opé­rables
    • Le web ouvert est mal barré

     

  • Ateliers sur la docu­men­ta­tion webperf

    J’ai partagé en ligne il y a quelques temps le début de livre que j’avais rédigé à propos de la perfor­mance des sites web.

    L’objec­tif était d’avoir une « bible » qui réfé­rence toutes les tech­niques impac­tant le temps de char­ge­ment des sites web et la théo­rie sous-jacente. Une moitié du travail était déjà là. C’est sur github, dans un format acces­sible à tous.

    En le posant sur github l’es­prit est « ce contenu appar­tient à ceux qui se l’ap­pro­prient ». Si vous y parti­ci­pez, ça devient un peu le vôtre. De mon côté ce n’est déjà plus « mon livre » mais un projet commu­nau­taire, dont je ne souhaite d’ailleurs pas forcé­ment être le main­te­neur ou l’ani­ma­teur.

    Pour initier la dyna­mique néces­saire, nous avons réalisé deux ateliers : un à Paris fin avril, un dans le cadre de Sudweb la semaine dernière. Il s’agit d’ex­pliquer le projet, puis de réali­ser relec­tures, mises à jour et rédac­tion par petits groupes. Le projet avance un peu, et chacun repart avec une meilleure connais­sance ou des échanges sur un sujet pointu.

    Si vous ne savez pas par où commen­cer vous pouvez commen­cer par regar­der les tickets en cours (« issues » dans la barre de menu github). Ils sont clas­sés par chapitre et par type d’ac­tion (relec­ture, mise à jour, contenu manquant, etc.). Le fichier « HELP.md » à la racine du projet contient aussi un guide de démar­rage avec quoi et comment sur diffé­rentes ques­tions que vous pour­riez vous poser. Vous pouvez aussi simple­ment vous signa­ler et poser vos ques­tions sur la liste de diffu­sion française : https://groups.google.com/group/perfor­mance-web?hl=fr

    La suite c’est de conti­nuer avec les ateliers. Il faut prévoir un anima­teur et proba­ble­ment au moins une personne qui a déjà lu le contenu et saura répondre aux ques­tions tech­niques webperf. Je compte en propo­ser quelques uns mais n’hé­si­tez pas à en orga­ni­ser vous-même dans vos commu­nau­tés locales. Avec un peu de temps se déga­ge­ront certai­ne­ment une ou deux personnes pour animer tout cela sur le long terme.

    Retour sur les deux ateliers précé­dents

    Sur les ateliers passés il y a eu un bon travail sur les relec­tures, qui s’est traduit via quelques correc­tions, quelques ajouts, mais aussi une bonne série de tickets qui permettent main­te­nant de struc­tu­rer et guider les bonnes volon­tés.

    Un gros merci à tous ceux qui ont parti­cipé.

    Deux points soule­vés :

    • En plus de la demie-heure de présen­ta­tion du projet et du fonc­tion­ne­ment, il faut prévoir des créneaux d’au moins une bonne heure, préfé­ra­ble­ment une heure et demie. En dessous on manque de temps pour amener un résul­tat concret.
    • La licence initiale était inuti­le­ment complexe de façon à garder la possi­bi­lité d’em­barquer un éditeur papier dans l’aven­ture. Suite aux diffé­rents retours, il appa­rait plus sage de rebas­cu­ler sur une licence ouverte plus simple, peut être une Crea­tive Commons. N’hé­si­tez pas à en discu­ter ici ou sur la liste de diffu­sion webperf

    Voilà, main­te­nant c’est à vous de jouer.

  • Mais que faire avec la fibre 1 Gb/s de Google ?

    L’au­teur de Slate explore la fibre Google à 1 Gb/s déployée au Kansas. Malgré une démons­tra­tion de confé­rence vidéo avec inter­ac­tion sur Google Maps en instan­tané, l’au­teur semble dépité de ne pas trou­ver de mieux que « ouvrir cinq vidéo 1080p sur Youtube » dans sa recherche de la killer app qui justi­fie­rait une tel débit.

    Il a un peu raison, d’au­tant que cinq vidéo 1080p Youtube c’est entre 20 et 40 Mb/s, donc passe tout à fait sur n’im­porte quelle connexion câblée ou fibre à partir de 50 Mb/s. Il a raison mais il passe tota­le­ment à côté de l’enjeu, et pas mal de commen­ta­teurs français sur twit­ter aussi.

    Que vais-je bien pouvoir faire ?

    Je pour­rai vous rappe­ler quelle est la bande passante pour un blu-ray 3D en 120 Hz, pour la TV 4K dont on commence à parler, pour avoir ça en multi points de vues, et pourquoi pas une fois dans le salon et une fois dans la chambre des enfants, en paral­lèle du backup et de tout le reste. Ok, ce n’est peut être pas acces­sible *aujourd’­hui* mais four­nir de tels services sur le réseau alors que seuls quelques chan­ceux dans une ville des USA peuvent s’en servir, ce serait large­ment préma­turé. Ne vous inquié­tez pas, le Gb/s il finira par être utilisé large­ment avant d’être la norme pour la majo­rité de la popu­la­tion.

    Il n’y a pas de killer app

    Malgré tout, parler de ça c’est tomber dans le même travers que le jour­na­liste de Slate :  Se poser la ques­tion de la killer app c’est se trom­per de débat. Il n’y a pas de killer app, et il n’y a pas à en avoir.

    Qui a besoin d’une killer app ? Dites, c’est quoi la killer app de la cocotte minute ? Celle du micro-onde ? C’est un peu plus long mais vous faites bien la même chose sans. C’est juste plus pratique. Des usages pour un meilleur débit on a déjà tous ceux d’aujourd’­hui : Regar­der plus faci­le­ment des vidéos qu’a­vant, en patien­tant moins qu’a­vant, en meilleure réso­lu­tion. Renon­cer moins faci­le­ment à télé­char­ger des fichiers lourds et attendre moins pour cela. Synchro­ni­ser de plus en plus de fichiers en ligne, et attendre moins souvent la fin de synchro­ni­sa­tion avant de débran­cher. Partage plus faci­le­ment des photos ou des vidéos avec des tiers, en nombre plus impor­tant et en meilleure qualité/taille, en atten­dant moins la fin de l’en­voi.

     

    La killer app c’est de réduire les attentes, élimi­ner les frus­tra­tions, et ouvrir les portes pour faire émer­ger autre chose ; pas forcé­ment faire quelque chose de nouveau et de révo­lu­tion­naire.

    Oui mais… 1 Gb/s… utile ?

    Je me rappelle l’époque où on se moquait des 8 et 20 Mb/s de l’ADSL les trou­vant super­flu. Je crois que Xavier Niel a déclaré il y a à peine quelques mois que la fibre à 100 Mb/s était globa­le­ment inutile. Rien d’éton­nant à ce que la même image appa­raisse avec le palier suivant;

    Aucun de ces usages ne *jus­ti­fie* 1 Gb/s, pas plus que le passage de 20 Mb/s au 100 Mb/s ne se justi­fie (si on oublie le débit montant), ou qu’une ADSL 20 Mb/s n’était à l’époque fonda­men­ta­le­ment meilleure qu’une 8 Mb/s, et que cette dernière n’était elle-même indis­pen­sable à l’époque de la tran­si­tion avec la 2 Mb/s ou la 512 Kb/s. Par contre je mets au défi ceux qui y seront passés d’en­vi­sa­ger reve­nir en arrière.

  • TLS par défaut

    Il ne fallait qu’une heure pour le faire mais je ne l’avais jamais inves­tie jusqu’à présent. C’est main­te­nant fait : Cet espace utilise une connexion HTTP sécu­ri­sée par défaut.

    Le lien HTTP non sécu­risé redi­rige direc­te­ment vers la partie sécu­ri­sée. Cette dernière envoie l’entête HSTS pour bloquer ce choix.

    Remon­tez-moi toute diffi­culté.