Tout à fait, cependant j'aimerais rappeler que – comme le dit Lessig — « code is law » (« le code fait loi »), et que si l'État ne s'approprie pas le code, il ne pourra pas faire la loi dans le monde numérique. C'est pour dire qu'en plus de la volonté politique nécessaire pour faire respecter les principes du respect de la vie privée, il faudra que l'État réclame l'ouverture du code, et (selon moi) oblige à la libération des logiciels essentiels au fonctionnement de notre démocratie. Jusqu'où ? Le code des prestataires de services, le code des routeurs de l'Internet, le code des machines utilisées par les citoyens ? Bonne question, mais le logiciel libre est forcément la bonne réponse. Et ça tombe bien, on est sur LinuxFr !
Ces discussions m'ont fait penser à un article de Jonathan Corbet que j'ai lu récemment sur les avancées de la gestion de l'épuisement de la mémoire dans le noyau : « Toward more predictable and reliable out-of-memory handling » https://lwn.net/Articles/668126/
En suivant les liens, on tombe sur d'autres lectures intéressantes également.
On pourrait souhaiter qu'un programme dont on a volontairement limité les ressources ne segfault pas parce qu'il n'a plus de mémoire mais soit en mesure de gérer ça de proprement. En attendant que de nouvelles ressources soient disponibles par exemple.
Donc « terminer correctement » pour qu'on puisse le relancer « plus tard » quand il y aura plus de ressources ? Quelle différence avec faire que malloc() renvoie toujours un pointeur valide et que le kernel se débrouille pour toujours avoir de la mémoire disponible, quitte à swapper, etc ? Tu viens juste de remonter le problème plus haut, sur l'administrateur ou un autre composant de l'OS que ton kernel, sans le régler. Tu n'évoques pas de solution en tant que telle à ce problème, tu l'as juste déplacé, et ça ne fonctionne pas mieux car il n'existe pas de solution idéale encore aujourd'hui.
C'est pourquoi en général je trouve que ce genre de « gestion » des ressources est complètement inutile, et que le cloisonnement par VM ou container amène en général plus de problèmes qu'il n'en résout, en faisant croire qu'ils « gèrent » mieux les ressources (en fait, ils partitionnement plus durement, et globalement le multiplexage statistique ne peut pas avoir lieu). Bref, c'est nul.
Ce sont toujours les même arguments des deux côtés : soit on fait tout pour que Linux soit « sexy », ne fâche pas les entreprises, et ça apportera des développeurs et de l'argent, sans procès. Mais par contre ça n'apportera rien pour les utilisateurs de matériel fermé, puisque les boîtes continueront à violer la GPL pour d'autres produits, comme dit Matthew Garrett. Si on veut défendre le droit des utilisateurs, je ne vois pas d'autre solution que le procès, comme le défend Kuhn. Bref, GKH est pour l'intérêt des développeurs, comme Linus, et Kuhn et Garrett défendent l'intérêt des utilisateurs.
Et c'est bien ainsi qu'a été faite la GPL : pour défendre les utilisateurs de logiciels, afin qu'ils ne soient pas enfermés par celui-ci ! Que les développeurs se retrouvent avec une bonne communauté et des contributions de qualité n'a jamais été écrit dans la licence, même si c'est effectivement essentiel pour que le libre se développe correctement. Quand je vois GKH se féliciter que Linux soit présent partout, alors que la liberté d'utiliser des logiciels libres est de plus en plus restreinte, je pleure un peu.
Ben j'ai changé la MTU progressivement 1500, 1450, 1475, 1482, etc… Et à 1479, ça marche, 1480 aussi, mais pas 1481. Dichotomie quoi ;) Je l'ai fait sur l'interface eth_adsl (reliée à ma Freebox) de mon routeur.
Ce que je veux dire, c'est que « ça marche » c'est très vague : tu réponds pour l'interface, mais tu ne dis pas depuis où, vers où, avec quel outil, quels paramètres, etc.
La MTU de 1480 vient, mais c'est une hypothèse, du tunnel 6rd de Free qui doit rajouter des en-têtes.
Effectivement, cette taille doit venir de là.
Soit, ce n'est pas vraiment un problème. Par contre, comme je l'ai dit, quand je fais une connexion TCP, ou même un simple ping vers un site distant, je n'ai pas de ICMPv6 "Packet too big". De personne.
Ça par contre c'est un problème de ton routeur, puisque c'est lui qui a un lien réduit, maintenant que tu as fixé la MTU dessus. Un paquet arrive sur son interface LAN, avec MTU de 1500 je suppose, OK, puis quand il veut forwarder vers l'interface eth_adsl, qui fait 1480, ça ne passe pas, alors il doit te renvoyer un PTB. Je pense donc que tu as un problème de filtrage de l'ICMPv6 sur ton routeur. Vérifie la configuration de ton firewall.
Si par contre le problème arrive quand on fait un test depuis l'extérieur, le problème viendrait potentiellement de Free.
Par contre, si je fais un ping vers le routeur, avec un payload trop important, je l'ai, et ça met à jour les tables de routage temporaire, et tout marche comme sur des roulettes par la suite.
Ça par contre, je ne comprends pas, ça n'est pas normal, à moins que j'ai mal compris ton test : si c'est juste sur ton LAN entre ta machine et ton routeur, il n'y a aucune raison de limiter la MTU à moins de 1500.
Du coup, j'avais trouvé la solution de mettre "AdvLinkMTU 1480;" dans mon /etc/radvd.conf.
Qui n'est pas la bonne : ça empêche les machines de ton LAN de communiquer entre elles avec le MTU maximum réel. C'est un workaround foireux, car un jour tu pourrais tomber sur un interlocuteur sur le net qui a un MTU encore plus petite (comme chez moi), et là ça foirera parce que tu n'as pas identifié réellement la source de ton problème d'ICMPv6 PTB qui ne passe pas.
Il se trouve que ça a marché…
Comme j'ai dit, ça n'est pas pérenne.
jusqu'à une mise-à-jour de systemd sous Debian, avec une ligne dans le changelog :
Des fois j'ai vraiment envie de foutre des grosses baffes à ces devs incompétents. Vouloir tout remplacer pour le plaisir quand on y connaît rien… c'est irresponsable.
Donc là, ma vie personnelle fait que j'ai pas eu le temps de m'en occuper plus que ça, mais hein, si c'est pas un micmac avec networkd (que j'utilise sur mon ordinateur de bureau), je sais pas ce que c'est… Ce qui m'embête le plus, c'est de ne pas comprendre pourquoi les paquets ICMPv6 "Packet too big" ne sont pas générés, ni par mon routeur, ni par la Freebox…
Pour comprendre, essaye d'abord d'être plus clair dans ce que tu testes. Un PTB est généré par le routeur qui passe d'un lien plus gros à un lien plus petit, en renvoyant à l'émetteur un PTB. Cette fonction est réalisée des deux côtés du goulot d'étranglement, et peut donc foirer aussi bien dans un sens que dans l'autre, et pas forcément en même temps. Ça complique un peu le diagnostic, mais il est essentiel de bien être clair là-dessus pour commencer à résoudre ton problème. Je suis d'accord que pour le test depuis l'extérieur, c'est un peu plus compliqué, mais ça se fait.
C'est mieux, mais ça ne marche toujours pas sans cookie.
Ça a l'air d'être une succursale de Google, vu que c'est la page vers laquelle on est redirigé est https://support.google.com/accounts/answer/61416). Si c'est comme Blogger, il faut activer le JS sur quatre domaines et accepter les cookies pour commencer à voir du contenu. C'est assez naze.
Donc oui, par dichotomie avec ip link j'ai bien trouvé 1480 de MTU, au lieu de 1500. Ça marche. Tout marche comme avant. Reste à savoir ce qui a changé, et pourquoi…
Comment ça par « dichotomie » ta as « trouvé » 1480 ? De quelle interface parles-tu ? Qu'as-tu testé exactement ? Et qu'as-tu trouvé ?
Ce qui a changé, et bien c'est peut-être que Free a baissé la MTU de ton lien. Par contre, normalement, ils ne devraient pas faire de la merde en bloquant l'ICMPv6. Ça m'étonne un peu, et peut-être que le problème vient d'ailleurs. Mais pour diagnostiquer, il va falloir un peu plus d'informations : les ip link / ip addr / ip route sur ton routeur, des infos sur la freebox, etc.
Pour info, ma Freebox est en mode bridge,
OK, mais elle peut très bien avoir une MTU réduite sur le lien.
et j'ai mon propre serveur en mode serveur/pare-feu/routeur. Mais j'ai jamais touché à la MTU, et je n'ai jamais eu de souci jusqu'à récemment. Ou alors c'est Debian qui a changé la valeur par défaut de la MTU ?
Ah non, ça n'est pas quelque-chose qui change comme ça. Je pense plus à un paramètre de le Freebox, ou la manière dont Free gère (mal) son réseau. Pour ça il faudrait plus d'informations sur la configuration de la Freebox.
Et je suis en train de me rendre compte que je vais devoir changer la MTU sur les postes clients…
Heu, non. Ils s'adapteront très bien quand ton routeur leur renvoiera un PTB. C'est « normal » d'avoir des MTU différentes, la gestion est très bien intégrée au protocole quand on ne fait pas de la merde avec du filtrage de l'ICMPv6.
J'ai un DHCP(v4), mais bon, l'IPv4 marche bien avec 1500…
Oui, c'est le routeur qui fragmente en v4, comme indiqué plus haut. Par contre ça n'est pas « idéal » niveau efficacité, même si en général on s'en fout.
Bref, l'Internet est cassé pour les gens normaux. Mais merci pour la solution.
Non. L'Internet est cassé pour ceux qui ne respectent pas la neutralité. Et c'est normal : ICMPv6 est constituant du protocole, il ne faut pas le toucher pour que ça marche. Comme on ne connaît toujours pas la source de ton problème de MTU, on ne peut pas savoir pour l'instant qui fait des bêtises.
Autre remarque: il pourrait être intéressant d'avoir une application générique qui envoie l'info sur quelle application a le focus et pour combien de temps
Pour moi ça ressemble à un problème de MTU : les « petits » paquets passent (comme les pages peu fournies), mais pas les gros. Es-tu derrière une connexion avec une MTU inférieure à 1500 octets ? Si c'est le cas, c'est peut-être que Free fait de la merde avec l'ICMPv6 en amont de ta connexion. Ou alors toi qui gère mal les tailles encore inférieure de ton côté pour une raison quelconque.
Je me suis permis de pinger le AAAA de ton domaine, et j'arrive à passer au maximum avec une taille de payload à un ping6 de 1432 octets. Soit 1440 de payload pour IP, soit 1480 pour le paquet IP avec les headers, qui doit passer sur le medium sous-jacent, et c'est ça le MTU de ton lien Internet.
Normalement, lorsque je dépasse cette taille, je devrais recevoir en retour un paquet ICMPv6 « Packet Too Big », pour m'indiquer de fragmenter, mais je ne vois rien de mon côté. C'est donc un problème de configuration à l'endroit où le tuyau « rétrécit » en-dessous de 1500 octets, la MTU « standard » d'Internet. Ça peut éventuellement venir de mon côté sur ce réseau vu que j'ai mis des années à convaincre les admins de ne pas filtrer l'ICMPv6 pour les PTB, mais bon je ne suis jamais sûr des nouveautés qu'ils me pondent. Le seul réseau neutre et sûr que j'ai a une MTU encore plus petite que toi.
Pour nous aider, il faudrait tes paramètres de connexion, avec le détail sur la box en particulier ; enfin, je ne sais pas si ça se récupère facilement, c'est tellement chiant les boxs des FAI…
Soit dit en passant, il n'y a pas 50 alternatives. L'autre possibilité est d'accorder des monopoles par "paquet", par exemple de confier l'exploitation de zones du territoires indivisibles aux opérateurs de manière à ce qu'ils doivent obligatoirement mélanger activités rentables et non-rentables. Ça marche assez mal, puisqu'on ne peut pas forcer une boîte à assurer un service de qualité contre sa volonté, ça va trainer des pieds et ça va se voir.
Donc, j'ai choisi la solution la plus facile et la plus rapide, à savoir de placer ces fichiers dans le dépôt.
La plus facile pour toi, et la plus rapide pour toi. Le problèmes que tu évoques est exactement celui résolu par les autotools ou autre framework du genre. Sans avoir à mettre des fichiers générées dans le VCS.
Le reste, ce n'est que l'adaptation aux particularités des différentes plateformes sur lequel il peut être lancé. Qu'est-ce qui sort donc de l'ordinaire, et par quoi peut-on le remplacer qui soit plus conforme aux standards en la matière ?
Tu pourrais simplement l'omettre si tu utilisais un des framework cités. Comme ça, queluqu'un d'autre que toi n'aurait pas à se former à ton outil. Tu trouveras ça inutile, mais c'est ce que je te disais plus haut : les solutions que nous t'évoquons sont utiles pour tout le monde, pas que pour toi.
La principale différence avec XSL (mis à part que XPP n'est de loin pas aussi puissant que XSL), c'est que les directives XSL doivent être placées dans un fichier disjoint de celui qui contient le XML sur lequel on va appliquer ces directives, alors que les directives XPP, quant à elles, sont directement placées dans les fichiers XML sur lesquels elles portent.
Comme les feuilles de style « intégrées » (traduction pourrie de "embedded") ? https://www.w3.org/TR/xslt#section-Embedding-Stylesheets
Tu ne t'intéresses juste pas à ce qui existe, et c'est ce qui dérange un peu ici, je pense.
Utiliser gettext aurait impliqué un travail de codage supplémentaire, que j'économise avec le système que j'utilise.
Travail économisé une fois pour toi. Travail qui sera à fournir pour chaque personne qui souhaite s'intéresser à ce travail. C'est donc complètement inintéressant en terme de temps pour quiconque d'essayer de contribuer ou de s'intéresser à ton travail.
Je l'ai développée pour répondre aux besoins d'un client. Ce dernier devait pouvoir stocker des dates classiques, mais aussi approximatives.
Ah, intéressant, je n'avais pas vu cette fonctionnalité.
Ta réaction à bibliothèque DTE est typiquement celle que je ne comprends pas. Parce certains ne voient pas l'utilité de réimplémenter une telle bibliothèque, ces derniers décrètent que c'est une erreur, sans chercher à comprendre les motivations derrières.
Le problème c'est que je ne vais pas chercher des heures à comprendre ce que fait ta bibliothèque si j'ai l'impression qu'elle ne m'apporte rien. Pas de description, etc, je laisse tomber. Alors encore, si elle s'intégrait bien à l'existant, et que c'était utilisable en dehors de tout ton framework, pourquoi pas, mais je n'ai pas l'impression : tout semble très imbriqué, du coup je n'ai même pas espoir que cette fonctionnalité intéressante puisse être utilisée ailleurs. (déjà je fais du C, donc c'est niet)
on ne comprend pas, donc, au lieu d'approfondir, ou de demander des éclaircissement au développeur si l'on a pas envie de se plonger dans le code (ce que je comprends tout à fait), on se répand en généralités sans rapports pour discréditer le framework en question.
Essaye de penser que tu n'es pas au centre du monde : malheureusement, ton « standard » n'est pas le standard, et c'est en général plutôt à toi de t'adapter aux autres que l'inverse.
Et je ne dis pas ça pour t'embêter, mais juste pour que tu remettes les pieds sur terre et te rende compte que personne ne s'intéressera à ton travail si tu le présente et le développe ainsi. Ce n'est peut-être pas ce que tu cherches, mais tu disais vouloir au moins avoir des retours, et je t'explique pourquoi je pense que tu n'en auras pas.
je n'aurais pas développé ce framework si je pouvais développer aussi vite et aussi bien avec d'autres outils.
Tu sais, tout programmeur a un jour pensé à faire ça. Puis on a appris le principe de « standard » : ça n'est pas toujours parfait, ça ne fait pas exactement ce qu'on veut, mais c'est ce qui permet de travailler en commun. Avec ta méthode, désolé mais tu travailleras toujours tout seul.
sans que jamais l'on avance le moindre argument valable justifiant cette aversion.
Le fait que tu réinventes des choses qui existent déjà ? Le fait que tu crées une autre abstraction qui apporte peu de choses, et qu'il est souvent plus important d'utiliser des standards que de créer de nouvelles couches ? Je ne fais que reformuler ce qu'on t'a déjà dit.
Je pense qu'en fait tu ne vois pas ça comme des désavantages car tu considères juste ton programme pour toi, et pas à destination des autres, du coup tu ne vois pas de problème. Je pense que le problème principal est que tu ne comprends pas les choses qui sont nécessaires à l'utilisation de tes logiciels par d'autres. Rien que le fait d'avoir des noms abscons… je ne sais pas si tu te rends compte du coup que quand je lis ta prose, je ne sais même pas à quoi tu fais références à chaque fois que tu cites un logiciel. Du coup, ça décourage à aller plus loin.
Pour ton exercice, une seule phrase suffit : me faciliter le développement de logiciels de qualité.
Tu es fort en méta-blague…
Mais je travaille à l'amélioration du packaging.
Une suggestion là-dessus : ne mets pas les fichiers générés dans ton VCS. On comprendra mieux ainsi quels sont les fichiers générés par un humain. Enfin, ce que je crois être généré par un humain. Ensuite, si tu utilisais un système de build un peu plus standard… C'est des Makefile, mais avec plein de trucs spécifiques à toi.
En fait, ton problème c'est les standards, je pense : tu as plein de trucs idiosyncratiques, tu ne réutilises jamais ce qui existe déjà. Même pour les traductions, tu n'utilises pas gettext. Pour le système de build, tu aurais pu utiliser les autotools, par exemple. Ensuite, ton xppq, j'étais vraiment intrigué, j'ai regardé, et je n'ai pas compris la différence avec XSLT (xpp:define c'est xsl:variable, xpp:expand c'est xsl:value-of, xpp:attribute c'est xsl:attribute, etc). Et ton dans framework epeios, tu as même réimplémenté les dates, soit une erreur absolument rédhibitoire pour n'importe quel programmeur qui se vaut ! Bref, tes technos ne sont pas intéressantes car elles ne sont pas standards. Ça va sûrement te sembler bête comme critique, mais c'est absolument essentiel : si tout le monde faisait comme toi, l'informatique n'avancerait pas.
je la présente simplement au cas où cela intéresserait des personnes, auquel cas j'échangerais volontiers sur le sujet avec ces dernières.
C'est ça qui est frustrant : ça a l'air un peu intéressant, mais je n'arrive pas à te comprendre.
Ça permet de récupérer plus facilement des svg générés par un outil sans que ce dernier permette ce genre de modification ou que le SVG soit destiné à un autre affichage.
Je ne suis pas sûr d'avoir compris : tu dis que ça permet d'éviter qu'un outil n'écrase ces méta-données, en gros, c'est ça ? Si c'est le cas, il ne respecte alors pas la « bonne » manière de traiter du XML, puisque par sa définition « d'eXtensible », tout programme qui traite du XML ne doit pas toucher aux structures qu'il ne connaît pas (qui sont dans un namespace différent, donc). L'idéal serait donc de corriger cet/ces outil(s).
Tu vas peut-être mal le prendre, mais peux-tu nous dire quelle est ton expérience en code avec différentes technologies ? Vu que tu dis à chaque fois ne pas avoir comparé avec d'autres, je suppose que tu as peu d'années de pratiques.
Bon, je viens de voir tes autres journaux, à priori ça fait un bout de temps que t'es dessus, sans avoir regardé ailleurs… Tu dois donc réellement être un hermite persécuté ; désolé de la méprise. Mais bon courage alors si tu veux attirer du monde sur ta techno.
Avec ce journal, et certains autres que j'ai publiés, j'ai remarqué une certaine hostilité envers mes technos, probablement parce qu'elles vont à l'encontre de certains dogmes.
Arrête ton char, il n'y a pas de cabale contre toi…
Mais, ni dans ce journal, ni dans aucun autre, malgré les tentatives répétées de certains, personne n'a réussi à mettre en défaut mes technos d'une quelconque manière.
Tout n'est pas affrontement. Je pense juste que déjà plein de gens n'arrivent pas à comprendre l'intérêt de ton « truc ». J'aime bien XML/XSLT, mais pourtant je reste dubitatif devant ta tonne de code qui ressemble vraiment à un « inner-platform effect », comme cité plus haut. Tu vas peut-être mal le prendre, mais peux-tu nous dire quelle est ton expérience en code avec différentes technologies ? Vu que tu dis à chaque fois ne pas avoir comparé avec d'autres, je suppose que tu as peu d'années de pratiques.
Essaye cet exercice : résume en trois courtes phrases quel est le but de ton « projet ». Se perdre en route sur le « comment », ça arrive, mais là tu le fais avec une force certaine.
Tant que cela demeurera le cas, je continuerais à développer et à présenter des logiciels basées sur ces technos, et tant pis pour ceux qui les rejettent. Ce qui ne signifie pas que je ne suis pas ouvert à la critique, car je n'ai pas la prétention d'avoir crée quoique ce soit de parfait…
Il n'y a pas de problème à présenter ton travail, c'est juste que là ça fait vraiment « hermite persécuté » que personne ne comprend. Et bien ce n'est peut-être pas la faute des autres si personne n'y comprend rien, peut-être que tu devrais essayer de faire l'effort de comprendre pourquoi ton logiciel est si mal accueilli.
Et pourquoi ne pas intégrer les méta-données dans le SVG même, comme la balise metadata le permet ? Tu crées un namespace pour tes besoins et ajoute les éléments que tu veux, en utilisant du classique XML plutôt que du YAML. Comme ça pas de problème pour garder en cohérence tes deux fichiers quand tu les bouges… (et j'approuve l'idée d'avoir un premier niveau de classification par des dossiers, même si on pourrait quand-même rechercher sur d'autres méta-données si on veut).
De mon point de vue, ce n’est pas pour rien que tout le monde a oublié xslt : cette techno est une mauvaise idée.
Oui, les critiques que tu cites sont bonnes. Mais c'est pour dire qu'on avait déjà pensé à quelque-chose qui permettait de soulager le serveur, et que c'était fait en s'intégrant plutôt « bien » au workflow XML. Mais c'est clair que sa syntaxe verbeuse et ses fonctionnalités de calcul et de manipulation de chaîne sont de très gros défauts. Cependant, je n'ai jamais retrouvé nulle-part le même facilité de manipulation d'arbre et de matching (avec choix du sélecteur le plus strict, vraiment quelque-chose de génial !) qu'il apporte.
Cela dit, c’est peut-être exagéré de dire ça, peut-être que je peux avoir le même ordre de grandeur avec une techno de template côté serveur type django (mon expérience avec django, certes faible, me fait toutefois préférer le système angularjs).
J'ai peu d'expérience avec les framework JS, mais je ne vois pas pourquoi ça ne se vaudrait pas. Un moteur de template c'est un peu toujours la même chose quel que soit le langage…
Ça ne sera pas moche, ça sera inexploitable. Ajax sans javascript, ça ne peut pas marcher. Après, tu peux requêter toi-même les pages et récupérer le json (oui, on n’utilise plus xml même si le terme ajax est resté). Mais c’est un compromis que personne n’est prêt à accepter.
Ça dépend pour quoi. Franchement, quand c'est juste pour afficher une ressource sur une page simple que tu as besoin d'Ajax (pour du templating, typiquement), il faut tout simplement supprimer cette requête inutile ! Et pas besoin de faire le calcul N fois côté serveur : tu caches le résultat, point barre, comme ça l'effort est économisé des deux côtés.
Par contre, si c'est pour une fonctionnalité « avancée », pourquoi pas, mais j'avoue rarement avoir de bonne justification pour ça. Plein de fois où je dois activer le JS, j'imagine tout de suite une manière de faire en statique pour le client, sans surcharge pour le serveur. Comme je dis à groumf plus haut, bien sûr que je ne demande pas à GMail de marcher sans JS, mais je parle de toutes les « applications » entre deux.
Mais il y en a aussi pléthore qui te donneront tort (on fait beaucoup mieux avec JS que sans). Et qu’à un moment, le mode « dégradé » n’est plus possible, car c’est tellement loin du mode pas dégradé que ça ne peut plus fonctionner.
Bah j'aimerais bien avoir des exemples, car mon coup de gueule est pour des exemples plutôt simples à chaque fois. Tiens par exemple, un contre-exemple, c'est l'Agenda du Libre : je viens de remplir un évènement http://www.agendadulibre.org/events/new, et bien c'est tout à fait faisable sans JS ! Et le mieux, c'est que même si j'active le JS au cours du remplissage, je ne perds même pas mon contenu car ils utilisent le JS juste comme il faut pour ne pas obstruer le fonctionnement du navigateur sur la mémorisation ! Franchement, ça c'est un super exemple de bonne dégradation. Bravo l'ADL !
En attendant, ce qui est important, c’est surtout de ne pas casser les fonctionnalités utilisateur, comme :
- précédent / suivant
Oui, avec les classiques redirections pour les POST, ne pas mettre l'état du client côté serveur pour faire je ne sais quoi « d'intelligent », et mettre à jour l'URL actuelle quand en JS on modifie l'état de la page. Rien que si déjà les devs respectaient ça, ça serait beaucoup mieux. Je ne sais malheureusement pas si ce sont des principes bien enseignés.
les marques-pages
Oui, c'est lié au précédent. Ça me fait penser également au problème du JS qui se bind sur les évènements claviers sans vérifier le modifier, ou du coup mes raccourcis clavier (avec alt/control) font faire des trucs bizarre à la page (qui ne voit qu'un évènement pour la lettre)… assez énervant.
les choix de navigation (nouvel onglet / nouvelle fenêtre)
Ça j'avoue ne plus trop le voir, peut-être que les navigateurs forcent de toutes façons un comportement correct maintenant.
j’en oublie sûrement
Utiliser des a avec href pour les liens, il n'y a pas d'excuse (réécriture machin, tweaker le référencement blahblah) ; mettre des sources pour votre image, même en version pixélisée s'il le faut, mais ne pas charger les images uniquement en JS ; au moins essayer une fois votre site sans JS pour voir la galère que c'est pour certains ; ne pas utiliser du JS pour charger du JS (c'est fou ce que c'est la mode) car ça oblige à faire l'autorisation en plusieurs étapes (des fois ça monte à 5 ou 6 ; souvent, j'abandonne avant) ; ne pas recharger la page pour rien (même avec une balise meta !) ; je dois en oublier également…
On a attendu des années avec des navigateurs qui ne respectaient pas les standards à jongler avec les cas particuliers.
Comme je disais, ça reste pour la présentation et pour les interactions riches ; pour « la base », ça a vraiment peu changé ! Et bien sûr que je ne demande pas à GMail de marcher sans JS…
Aujourd'hui on a une norme de base cohérente HTML5/CSS3/EcmaScript5 et les navigateurs l'implémentent assez bien.
Cela fait quinze ans qu'on attendait ça, mais non on doit continuer à développer comme en 99.
Non, pas comme en 99. Mais qu'un formulaire — fonction normalisée dans les premiers standards du Web ! — puisse marcher sans JS, ça me semble normal et même essentiel, même si bien sûr sans JS on manquera un paquet de « jolis » trucs.
Taquinons le goujon: WebSocket ?
Franchement, je connais peu et je ne vois pas ce qui se fait avec. Étant quelqu'un du réseau, voir réimplémenter un système de paquets au-dessus d'un réseau orienté contenu (à cause des firewalls de nazis) situé au-dessus d'un réseau vaguement circuit-paquet (à cause du NAT), ça me désole un peu.
Javascript est devenu un prérequis en 2016 (un peu avant ça, mais bon). Un navigateur n’est pas un bête moteur de rendu html, mais plutôt une machine virtuelle pour applications js.
C'est toi qui le dit. Parce que ça arrange ceux qui veulent contrôler l'interface utilisateur plutôt que ça soit l'utilisateur qui puisse dicter ses besoins. Ça colle bien au fait que ça rende les choses moins accessibles : c'est l'idéologie même de ce mouvement de casser le pouvoir de l'utilisateur.
Si ça ne te plaît pas, soit, mais dans ce cas, tu te coupes de beaucoup de sites.
Et, qu'en conclues-tu ? Ne trouves-tu pas ça dommage que des gens se coupent de sites à cause de leur conception qui va à l'encontre des principes de base du Web, comme bien dégrader ? Je suis sûr que même Berners-Lee n'accroche pas vraiment à cette tendance.
Sachant que l’argument de la sécurité n’en est plus vraiment un : les navigateurs ont énormément progressé de ce point de vue. Je regrette cela dit qu’il n’y ait toujours pas de norme pour la signature de code.
J'avoue que je ne comprends pas trop les arguments de sécurité, mais bon.
le dev coûte moins cher (joue un peu avec un framework comme angularjs, c’est impressionnant ce qu’on arrive à faire rapidement)
Moins cher que quoi ? Que bien faire les choses ? Ah oui, ça, forcément, c'est comme ça partout, bâcler le travail et faire de la merde et s'en foutant des conséquences que ça a pour les autres, ça a toujours été (et ça l'est toujours) une technique en vogue et qui ne coûte pas cher. C'est censé être un argument pour toi ?
la charge serveur / la bp est réduite (oui, recharger une page html et faire tous les calculs – je ne parle pas de la validation de données, qui est indispensable, mais de calculs liés à la présentation – côté serveur, ça coûte, alors qu’on peut en faire plein côté client). C’est particulièrement critique quand tu embraques un serveur http dans un périphérique embarqué disposant d’une petite cpu.
Ça, d'accord. Mais on a déjà essayé de normaliser des solutions pour le templating côté client : c'est XSLT. Mais tout le monde l'a oublié. Pour le reste, très bien, ne fait pas de mise en forme côté serveur, ça me va très bien : je m'en fous que ça soit moche, bien sûr que je fais des compromis quand je n'ai pas de JS.
la séparation métier / présentation est généralement de fait améliorée (car usage de technos différentes pour les deux, moins de risques de mélanger les choses)
Houa, alors ça pas du tout par contre : aujourd'hui, côté client, on mélange aussi les choses comme on le faisait avant côté serveur. Les applications bien délimitée, ça n'est pas juste en disant que « je fais du JS » que ça va arriver magiquement. C'est comme tout, ça demandera un bon dev.
Mais ça c’est un problème de dev qui n’a pas fait son boulot correctement, pas un problème de techno (sachant que les framework js apportent des solutions simples à mettre en œuvre).
On est donc d'accord : ça n'est pas parce que c'est du JS que c'est magiquement « mieux ». Alors pourquoi, si on ne fait pas mieux, casser tout l'existant, l'accessibilité, voire les fonctions de base ?! Une des raisons pour lesquelles l'HTML est « rigide » niveau interaction (et la raison pour laquelle tant de gens sont tentés de mettre plein de JS), c'est aussi parce que ça évite de faire n'importe quoi à ceux qui n'y connaissent rien et font du dev à deux francs.
Toi tu parles de l'accessibilité du web en général et de ta liberté de naviguer sans JS.
Oui c'est ça.
Moi je suis plus dans un contexte d'applications web payantes avec un nombre d'utilisateurs limité. J'ai donc dans ce contexte des remontées directes de ce que demandent les clients et jamais un client n'a demandé à avoir un site sans JS.
Forcément, il n'a aucune idée des principes du Web qui est de se dégrader correctement. C'est à toi d'adapter ses demandes à ces préceptes.
Les demandes c'est plutôt plus de fonctionnalités: pouvoir filtrer ou rechercher dynamiquement dans un tableau de données, zoomer sur les graphiques, uploader/downloader plusieurs fichiers à la fois.
Même si on pourrait argumenter sur plein de choses à propos des applications lourdes vs. le Web, je ne vois pas en quoi ces demandes vont contre ce que j'ai dit.
Après la question est aussi qu’elle est la limite acceptable en fonction des standards en cours et des temps de développement, c'est une lutte entre les besoins, les choix et les ressources.
Ça c'est effectivement la vraie question. Ce qu'il faut penser, et ce qu'on ne prend pas assez en compte, je trouve, c'est que l'accessibilité est une « externalité » qui n'est souvent pas prise en compte dans le choix : ça ne « coûte » rien aujourd'hui de faire un site 100% JS pourri. Ça ne va faire chier que trois clampins, qui sont en plus sûrement un peu handicapés (je me considère un peu comme ça, en fait, même si je n'ai pas de handicap physique), donc on s'en fout.
tu veux en site sans JS => bon OK
sans cookie => on va mettre des tokens
en CSS 1.0 uniquement => #soupirs
en mode dégradé pour les modems 2400 bauds => gniiiiii
Je suis prêt à discuter d'un juste milieu. Comme je disais plus haut, je suis prêt à accepter de devoir utiliser un browser gérant des normes un peu modernes, pour éviter trop de galères aux développeurs. Mais à la limite, tant que tu gardes un HTML correct, même la CSS je m'en fout que tu utilises des trucs très modernes pas trop supportés : ça ne m'empêchera pas de lire, même si c'est moche. Et ce HTML là, il n'a presque pas changé en 20 ans.
Et pour ta blague sur le modem 2400 bauds, c'est ironique comme c'est justement tu ne devrais pas t'en faire : si ta base HTML est bonne, les « chieurs » qui veulent l'accessibilité s'en contenteront et auront magiquement un contenu léger car ils auront laissé de côté ton JS éléphantesque.
(je ne parle même pas des variations de tailles d'écrans et de dpi)
Très bon exemple : c'est super vendeur de faire de la différenciation (pour iPhone, par exemple), alors que c'est à l'antipode de ce pour quoi a été fait le Web, et du coup les devs se cassent le cul d'une force pas possible pour nous chier des merdes de JS pour gérer ça. Mais laissez faire les browsers en HTML, merde !
Imaginons un cas avec deux listes select ou les choix dans la seconde liste dépendent du choix fait dans la première. Sans JavaScript on va être obligé de rajouter un bouton submit si on rajoute un onchange="this.form.submit()" , c'est déjà du js en soi.
Mauvais exemple : oui, il y aura toujours des choix dépendants, mais tu auras également toujours à faire une validation côté serveur. Donc autant laisser un formulaire sans JS avec toutes les possibilités et une indication que c'est à l'utilisateur d'être cohérent ; ça ne me choque pas quand il n'y a pas de JS que ça soit à moi de faire une partie du boulot. Après, oui, pour faire « bien », tu mettras du JS pour tes choix dépendants. Même si en général, j'ai de mauvaises expériences avec pas mals de formulaires de ce genre qui te « bloquent » quand tu veux modifier certains paramètres mais que ça n'est pas dans l'ordre que le concepteur avait imaginé… Il me semble que dans les bonnes pratiques des UI, la validation intermédiaire (qui a lieu lors des étapes d'un choix dépendant) n'est pas considérée comme idéale.
À partir du moment ou c'est déjà une dépendance, autant faire un maximum de choses avec et éviter les dépendances à d'autres technos.
Pas d'accord avec ce raisonnement : ça n'est pas parce que tu peux faire du JS qu'il faut en mettre partout où c'est possible. Une des bonnes philosophies du développement Web, c'est de se dégrader correctement ! C'est tellement évident pour moi, mais pas pour les devs récents, on dirait. Oui, c'est plus de boulot, mais c'est comme ça que le Web marche bien.
Utilisé à bon escient, pour faciliter l'interaction avec l'utilisateur ça apporte un plus pour l'ergonomie du site. Faire des sites qui fonctionnent à la fois avec et sans JavaScript c'est beaucoup de boulot.
Je pense que c'est beaucoup de boulot pour certains framework JS qui sont développés en s'amusant à tout réinventer. Ou ceux qui veulent combler les fonctionnalités de tous les vieux browsers en les réinventant à la sauce JS : du coup, ça casse toute « l'intelligence » que pourrait avoir le browser pour avoir une cohabitation JS/HTML-sans-JS harmonieuse. Franchement, quand je vois le nombre de sites dont les liens ne fonctionnent pas du tout sans JS (voire sans cookies !!) parce qu'ils n'ont pas de href correct dans leurs balises a (voire qu'ils n'utilisent simplement pas de a), c'est à pleurer ; et ne me dit pas que c'est plus de boulot de faire ça correctement… Faut naviguer un peu sans JS pour aller voir les dommages qu'a fait cette idéologie au Web.
Pas tout vérifier mais sur un poste que je vois à distance, udev tourne, dbus aussi et je ne vois pas pourquoi ce qui marchait avant Jessie ne marcherait plus…
Ahaha, elle est bonne : c'est justement l'état d'esprit des dev de systemd, de ne rien avoir à foutre de la rétro-compatibilité. Et c'est « assumé » ! Et donc oui, tu ne vois pas pourquoi, mais en pratique c'est le cas : plein de choses sont cassées si tu n'as pas systemd. J'ai vécu quelques temps horribles sans, et puis j'ai laissé tomber, accepté systemd et je me tape tous les comportements « étranges » dès qu'un nouveau truc est cassé. La résignation, c'est la vie.
Il me semblait que gnome ne dépendait de systemd que par un truc con facile a refaire.
Ah bah non, informe toi : c'est aussi bien pour les services liés à la gestion de session que de l'énergie, les permissions des périphériques, la configuration réseau, etc. Ça n'est pas « facile à refaire ». J'avoue ne plus suivre depuis quelques temps, mais j'ai toujours cette épée de Damoclès que tout parte en cacahuète sans que je ne comprennes rien. Par exemple, Debian pour Jessie a stoppé la version de consolekit avant que son moteur de permissions en Javascript n'arrive, mais je crois que pour avoir le dernier systemd il va falloir y passer. Quelle avancée extraordinaire et facilement maîtrisable ! Rien de terrible ne pourrait arriver, non ?
Je suis d'accord avec le fait que Zope est un exemple d'over-engineering complet : je m'y suis cassé les dents également. Mais je parlais juste du langage de template (TAL, j'avais oublié le nom) : le principe me semblait quand-même bien, d'avoir un document XML conforme, annoté correctement. C'est dommage que ça n'ait pas été repris dans un autre framework.
Par contre, pour XSLT, je ne comprends pas ta critique : oui, HTML/CSS est déjà assez balaise à maîtriser, mais toi tu proposes de rajouter Javascript sans le préciser ! Ça n'est pas « pire » que XSLT, au contraire : le XSLT est beaucoup moins complexe, même si du fait de sa relative non-popularité, on va trouver plus de monde qui connaît le JS, c'est clair. Et « débugger » des templates, je ne vois pas trop où est la complexité, quel que soit le langage.
[^] # Re: Peut être pas la bonne approche ?
Posté par benoar . En réponse à la dépêche surveillance:// Entretien avec son auteur Tristan Nitot et 10 livres à gagner. Évalué à 4.
Tout à fait, cependant j'aimerais rappeler que – comme le dit Lessig — « code is law » (« le code fait loi »), et que si l'État ne s'approprie pas le code, il ne pourra pas faire la loi dans le monde numérique. C'est pour dire qu'en plus de la volonté politique nécessaire pour faire respecter les principes du respect de la vie privée, il faudra que l'État réclame l'ouverture du code, et (selon moi) oblige à la libération des logiciels essentiels au fonctionnement de notre démocratie. Jusqu'où ? Le code des prestataires de services, le code des routeurs de l'Internet, le code des machines utilisées par les citoyens ? Bonne question, mais le logiciel libre est forcément la bonne réponse. Et ça tombe bien, on est sur LinuxFr !
# Toward more predictable and reliable out-of-memory handling
Posté par benoar . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 4.
Ces discussions m'ont fait penser à un article de Jonathan Corbet que j'ai lu récemment sur les avancées de la gestion de l'épuisement de la mémoire dans le noyau : « Toward more predictable and reliable out-of-memory handling » https://lwn.net/Articles/668126/
En suivant les liens, on tombe sur d'autres lectures intéressantes également.
[^] # Re: containers
Posté par benoar . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 2.
Donc « terminer correctement » pour qu'on puisse le relancer « plus tard » quand il y aura plus de ressources ? Quelle différence avec faire que malloc() renvoie toujours un pointeur valide et que le kernel se débrouille pour toujours avoir de la mémoire disponible, quitte à swapper, etc ? Tu viens juste de remonter le problème plus haut, sur l'administrateur ou un autre composant de l'OS que ton kernel, sans le régler. Tu n'évoques pas de solution en tant que telle à ce problème, tu l'as juste déplacé, et ça ne fonctionne pas mieux car il n'existe pas de solution idéale encore aujourd'hui.
C'est pourquoi en général je trouve que ce genre de « gestion » des ressources est complètement inutile, et que le cloisonnement par VM ou container amène en général plus de problèmes qu'il n'en résout, en faisant croire qu'ils « gèrent » mieux les ressources (en fait, ils partitionnement plus durement, et globalement le multiplexage statistique ne peut pas avoir lieu). Bref, c'est nul.
# Utilisateurs vs. développeurs, comme d'hab
Posté par benoar . En réponse au journal Faut-il défendre la GPL devant les tribunaux ?. Évalué à 5.
Ce sont toujours les même arguments des deux côtés : soit on fait tout pour que Linux soit « sexy », ne fâche pas les entreprises, et ça apportera des développeurs et de l'argent, sans procès. Mais par contre ça n'apportera rien pour les utilisateurs de matériel fermé, puisque les boîtes continueront à violer la GPL pour d'autres produits, comme dit Matthew Garrett. Si on veut défendre le droit des utilisateurs, je ne vois pas d'autre solution que le procès, comme le défend Kuhn. Bref, GKH est pour l'intérêt des développeurs, comme Linus, et Kuhn et Garrett défendent l'intérêt des utilisateurs.
Et c'est bien ainsi qu'a été faite la GPL : pour défendre les utilisateurs de logiciels, afin qu'ils ne soient pas enfermés par celui-ci ! Que les développeurs se retrouvent avec une bonne communauté et des contributions de qualité n'a jamais été écrit dans la licence, même si c'est effectivement essentiel pour que le libre se développe correctement. Quand je vois GKH se féliciter que Linux soit présent partout, alors que la liberté d'utiliser des logiciels libres est de plus en plus restreinte, je pleure un peu.
[^] # Re: Problème de MTU ?
Posté par benoar . En réponse au message IPv6 à moitié routée ?. Évalué à 2.
Ce que je veux dire, c'est que « ça marche » c'est très vague : tu réponds pour l'interface, mais tu ne dis pas depuis où, vers où, avec quel outil, quels paramètres, etc.
Effectivement, cette taille doit venir de là.
Ça par contre c'est un problème de ton routeur, puisque c'est lui qui a un lien réduit, maintenant que tu as fixé la MTU dessus. Un paquet arrive sur son interface LAN, avec MTU de 1500 je suppose, OK, puis quand il veut forwarder vers l'interface eth_adsl, qui fait 1480, ça ne passe pas, alors il doit te renvoyer un PTB. Je pense donc que tu as un problème de filtrage de l'ICMPv6 sur ton routeur. Vérifie la configuration de ton firewall.
Si par contre le problème arrive quand on fait un test depuis l'extérieur, le problème viendrait potentiellement de Free.
Ça par contre, je ne comprends pas, ça n'est pas normal, à moins que j'ai mal compris ton test : si c'est juste sur ton LAN entre ta machine et ton routeur, il n'y a aucune raison de limiter la MTU à moins de 1500.
Qui n'est pas la bonne : ça empêche les machines de ton LAN de communiquer entre elles avec le MTU maximum réel. C'est un workaround foireux, car un jour tu pourrais tomber sur un interlocuteur sur le net qui a un MTU encore plus petite (comme chez moi), et là ça foirera parce que tu n'as pas identifié réellement la source de ton problème d'ICMPv6 PTB qui ne passe pas.
Comme j'ai dit, ça n'est pas pérenne.
Des fois j'ai vraiment envie de foutre des grosses baffes à ces devs incompétents. Vouloir tout remplacer pour le plaisir quand on y connaît rien… c'est irresponsable.
Pour comprendre, essaye d'abord d'être plus clair dans ce que tu testes. Un PTB est généré par le routeur qui passe d'un lien plus gros à un lien plus petit, en renvoyant à l'émetteur un PTB. Cette fonction est réalisée des deux côtés du goulot d'étranglement, et peut donc foirer aussi bien dans un sens que dans l'autre, et pas forcément en même temps. Ça complique un peu le diagnostic, mais il est essentiel de bien être clair là-dessus pour commencer à résoudre ton problème. Je suis d'accord que pour le test depuis l'extérieur, c'est un peu plus compliqué, mais ça se fait.
[^] # Re: Image
Posté par benoar . En réponse à la dépêche jXBattle, Xbattle en Java, nouvelle mouture !. Évalué à 2.
C'est mieux, mais ça ne marche toujours pas sans cookie.
Ça a l'air d'être une succursale de Google, vu que c'est la page vers laquelle on est redirigé est https://support.google.com/accounts/answer/61416). Si c'est comme Blogger, il faut activer le JS sur quatre domaines et accepter les cookies pour commencer à voir du contenu. C'est assez naze.
[^] # Re: Problème de MTU ?
Posté par benoar . En réponse au message IPv6 à moitié routée ?. Évalué à 2.
[retour de vacances…]
Comment ça par « dichotomie » ta as « trouvé » 1480 ? De quelle interface parles-tu ? Qu'as-tu testé exactement ? Et qu'as-tu trouvé ?
Ce qui a changé, et bien c'est peut-être que Free a baissé la MTU de ton lien. Par contre, normalement, ils ne devraient pas faire de la merde en bloquant l'ICMPv6. Ça m'étonne un peu, et peut-être que le problème vient d'ailleurs. Mais pour diagnostiquer, il va falloir un peu plus d'informations : les ip link / ip addr / ip route sur ton routeur, des infos sur la freebox, etc.
OK, mais elle peut très bien avoir une MTU réduite sur le lien.
Ah non, ça n'est pas quelque-chose qui change comme ça. Je pense plus à un paramètre de le Freebox, ou la manière dont Free gère (mal) son réseau. Pour ça il faudrait plus d'informations sur la configuration de la Freebox.
Heu, non. Ils s'adapteront très bien quand ton routeur leur renvoiera un PTB. C'est « normal » d'avoir des MTU différentes, la gestion est très bien intégrée au protocole quand on ne fait pas de la merde avec du filtrage de l'ICMPv6.
Oui, c'est le routeur qui fragmente en v4, comme indiqué plus haut. Par contre ça n'est pas « idéal » niveau efficacité, même si en général on s'en fout.
Non. L'Internet est cassé pour ceux qui ne respectent pas la neutralité. Et c'est normal : ICMPv6 est constituant du protocole, il ne faut pas le toucher pour que ça marche. Comme on ne connaît toujours pas la source de ton problème de MTU, on ne peut pas savoir pour l'instant qui fait des bêtises.
[^] # Re: Ça a l'air intéressant.
Posté par benoar . En réponse à la dépêche Logiciel de suivi des activités WID, What I did?. Évalué à 2.
Un peu comme arbtt ?
# Problème de MTU ?
Posté par benoar . En réponse au message IPv6 à moitié routée ?. Évalué à 3.
Pour moi ça ressemble à un problème de MTU : les « petits » paquets passent (comme les pages peu fournies), mais pas les gros. Es-tu derrière une connexion avec une MTU inférieure à 1500 octets ? Si c'est le cas, c'est peut-être que Free fait de la merde avec l'ICMPv6 en amont de ta connexion. Ou alors toi qui gère mal les tailles encore inférieure de ton côté pour une raison quelconque.
Je me suis permis de pinger le AAAA de ton domaine, et j'arrive à passer au maximum avec une taille de payload à un ping6 de 1432 octets. Soit 1440 de payload pour IP, soit 1480 pour le paquet IP avec les headers, qui doit passer sur le medium sous-jacent, et c'est ça le MTU de ton lien Internet.
Normalement, lorsque je dépasse cette taille, je devrais recevoir en retour un paquet ICMPv6 « Packet Too Big », pour m'indiquer de fragmenter, mais je ne vois rien de mon côté. C'est donc un problème de configuration à l'endroit où le tuyau « rétrécit » en-dessous de 1500 octets, la MTU « standard » d'Internet. Ça peut éventuellement venir de mon côté sur ce réseau vu que j'ai mis des années à convaincre les admins de ne pas filtrer l'ICMPv6 pour les PTB, mais bon je ne suis jamais sûr des nouveautés qu'ils me pondent. Le seul réseau neutre et sûr que j'ai a une MTU encore plus petite que toi.
Pour nous aider, il faudrait tes paramètres de connexion, avec le détail sur la box en particulier ; enfin, je ne sais pas si ça se récupère facilement, c'est tellement chiant les boxs des FAI…
[^] # Re: Difficile à lire
Posté par benoar . En réponse au journal Internet, 5G et chantage. Évalué à 3.
On a un très bon exemple avec Bretagne Très Haut Débit qui a été délégué à Orange, avec un « axe cohésion » qui voulait que cette DSP fibre autant de foyers ruraux que de foyers en ville, pour l'équilibre. Et bien la semaine dernière la chambre régionale des comptes a tapé sur les doigts de Mégalis Bretagne parce que ça n'avance pas : http://www.ouest-france.fr/bretagne/rennes-35000/bretagne-le-deploiement-du-haut-debit-prend-il-du-retard-4347801
Pour voir ce qu'ils font : https://www.megalisbretagne.org/
[^] # Re: anti-pattern NIH
Posté par benoar . En réponse au journal 'Epeios organizer' : le commencement. Évalué à 2.
La plus facile pour toi, et la plus rapide pour toi. Le problèmes que tu évoques est exactement celui résolu par les autotools ou autre framework du genre. Sans avoir à mettre des fichiers générées dans le VCS.
Tu pourrais simplement l'omettre si tu utilisais un des framework cités. Comme ça, queluqu'un d'autre que toi n'aurait pas à se former à ton outil. Tu trouveras ça inutile, mais c'est ce que je te disais plus haut : les solutions que nous t'évoquons sont utiles pour tout le monde, pas que pour toi.
Comme les feuilles de style « intégrées » (traduction pourrie de "embedded") ? https://www.w3.org/TR/xslt#section-Embedding-Stylesheets
Tu ne t'intéresses juste pas à ce qui existe, et c'est ce qui dérange un peu ici, je pense.
Travail économisé une fois pour toi. Travail qui sera à fournir pour chaque personne qui souhaite s'intéresser à ce travail. C'est donc complètement inintéressant en terme de temps pour quiconque d'essayer de contribuer ou de s'intéresser à ton travail.
Ah, intéressant, je n'avais pas vu cette fonctionnalité.
Le problème c'est que je ne vais pas chercher des heures à comprendre ce que fait ta bibliothèque si j'ai l'impression qu'elle ne m'apporte rien. Pas de description, etc, je laisse tomber. Alors encore, si elle s'intégrait bien à l'existant, et que c'était utilisable en dehors de tout ton framework, pourquoi pas, mais je n'ai pas l'impression : tout semble très imbriqué, du coup je n'ai même pas espoir que cette fonctionnalité intéressante puisse être utilisée ailleurs. (déjà je fais du C, donc c'est niet)
Essaye de penser que tu n'es pas au centre du monde : malheureusement, ton « standard » n'est pas le standard, et c'est en général plutôt à toi de t'adapter aux autres que l'inverse.
Et je ne dis pas ça pour t'embêter, mais juste pour que tu remettes les pieds sur terre et te rende compte que personne ne s'intéressera à ton travail si tu le présente et le développe ainsi. Ce n'est peut-être pas ce que tu cherches, mais tu disais vouloir au moins avoir des retours, et je t'explique pourquoi je pense que tu n'en auras pas.
Tu sais, tout programmeur a un jour pensé à faire ça. Puis on a appris le principe de « standard » : ça n'est pas toujours parfait, ça ne fait pas exactement ce qu'on veut, mais c'est ce qui permet de travailler en commun. Avec ta méthode, désolé mais tu travailleras toujours tout seul.
Bon courage quand même dans ta voie.
[^] # Re: anti-pattern NIH
Posté par benoar . En réponse au journal 'Epeios organizer' : le commencement. Évalué à 4.
Le fait que tu réinventes des choses qui existent déjà ? Le fait que tu crées une autre abstraction qui apporte peu de choses, et qu'il est souvent plus important d'utiliser des standards que de créer de nouvelles couches ? Je ne fais que reformuler ce qu'on t'a déjà dit.
Je pense qu'en fait tu ne vois pas ça comme des désavantages car tu considères juste ton programme pour toi, et pas à destination des autres, du coup tu ne vois pas de problème. Je pense que le problème principal est que tu ne comprends pas les choses qui sont nécessaires à l'utilisation de tes logiciels par d'autres. Rien que le fait d'avoir des noms abscons… je ne sais pas si tu te rends compte du coup que quand je lis ta prose, je ne sais même pas à quoi tu fais références à chaque fois que tu cites un logiciel. Du coup, ça décourage à aller plus loin.
Tu es fort en méta-blague…
Une suggestion là-dessus : ne mets pas les fichiers générés dans ton VCS. On comprendra mieux ainsi quels sont les fichiers générés par un humain. Enfin, ce que je crois être généré par un humain. Ensuite, si tu utilisais un système de build un peu plus standard… C'est des Makefile, mais avec plein de trucs spécifiques à toi.
En fait, ton problème c'est les standards, je pense : tu as plein de trucs idiosyncratiques, tu ne réutilises jamais ce qui existe déjà. Même pour les traductions, tu n'utilises pas gettext. Pour le système de build, tu aurais pu utiliser les autotools, par exemple. Ensuite, ton xppq, j'étais vraiment intrigué, j'ai regardé, et je n'ai pas compris la différence avec XSLT (xpp:define c'est xsl:variable, xpp:expand c'est xsl:value-of, xpp:attribute c'est xsl:attribute, etc). Et ton dans framework epeios, tu as même réimplémenté les dates, soit une erreur absolument rédhibitoire pour n'importe quel programmeur qui se vaut ! Bref, tes technos ne sont pas intéressantes car elles ne sont pas standards. Ça va sûrement te sembler bête comme critique, mais c'est absolument essentiel : si tout le monde faisait comme toi, l'informatique n'avancerait pas.
C'est ça qui est frustrant : ça a l'air un peu intéressant, mais je n'arrive pas à te comprendre.
[^] # Re:Intéressant...
Posté par benoar . En réponse à la dépêche GraphDash, ou comment construire une interface web simple pour vos graphes. Évalué à 2.
Je ne suis pas sûr d'avoir compris : tu dis que ça permet d'éviter qu'un outil n'écrase ces méta-données, en gros, c'est ça ? Si c'est le cas, il ne respecte alors pas la « bonne » manière de traiter du XML, puisque par sa définition « d'eXtensible », tout programme qui traite du XML ne doit pas toucher aux structures qu'il ne connaît pas (qui sont dans un namespace différent, donc). L'idéal serait donc de corriger cet/ces outil(s).
[^] # Re: anti-pattern NIH
Posté par benoar . En réponse au journal 'Epeios organizer' : le commencement. Évalué à 3.
Bon, je viens de voir tes autres journaux, à priori ça fait un bout de temps que t'es dessus, sans avoir regardé ailleurs… Tu dois donc réellement être un hermite persécuté ; désolé de la méprise. Mais bon courage alors si tu veux attirer du monde sur ta techno.
[^] # Re: anti-pattern NIH
Posté par benoar . En réponse au journal 'Epeios organizer' : le commencement. Évalué à 4.
Arrête ton char, il n'y a pas de cabale contre toi…
Tout n'est pas affrontement. Je pense juste que déjà plein de gens n'arrivent pas à comprendre l'intérêt de ton « truc ». J'aime bien XML/XSLT, mais pourtant je reste dubitatif devant ta tonne de code qui ressemble vraiment à un « inner-platform effect », comme cité plus haut. Tu vas peut-être mal le prendre, mais peux-tu nous dire quelle est ton expérience en code avec différentes technologies ? Vu que tu dis à chaque fois ne pas avoir comparé avec d'autres, je suppose que tu as peu d'années de pratiques.
Essaye cet exercice : résume en trois courtes phrases quel est le but de ton « projet ». Se perdre en route sur le « comment », ça arrive, mais là tu le fais avec une force certaine.
Il n'y a pas de problème à présenter ton travail, c'est juste que là ça fait vraiment « hermite persécuté » que personne ne comprend. Et bien ce n'est peut-être pas la faute des autres si personne n'y comprend rien, peut-être que tu devrais essayer de faire l'effort de comprendre pourquoi ton logiciel est si mal accueilli.
[^] # Re:Intéressant...
Posté par benoar . En réponse à la dépêche GraphDash, ou comment construire une interface web simple pour vos graphes. Évalué à 5.
Et pourquoi ne pas intégrer les méta-données dans le SVG même, comme la balise
metadata
le permet ? Tu crées un namespace pour tes besoins et ajoute les éléments que tu veux, en utilisant du classique XML plutôt que du YAML. Comme ça pas de problème pour garder en cohérence tes deux fichiers quand tu les bouges… (et j'approuve l'idée d'avoir un premier niveau de classification par des dossiers, même si on pourrait quand-même rechercher sur d'autres méta-données si on veut).[^] # Re: La présentation oublie des infos essentielles
Posté par benoar . En réponse à la dépêche « Fourmilieres », un générateur de formulaires qui permet de reprendre la main sur vos données. Évalué à 3.
Oui, les critiques que tu cites sont bonnes. Mais c'est pour dire qu'on avait déjà pensé à quelque-chose qui permettait de soulager le serveur, et que c'était fait en s'intégrant plutôt « bien » au workflow XML. Mais c'est clair que sa syntaxe verbeuse et ses fonctionnalités de calcul et de manipulation de chaîne sont de très gros défauts. Cependant, je n'ai jamais retrouvé nulle-part le même facilité de manipulation d'arbre et de matching (avec choix du sélecteur le plus strict, vraiment quelque-chose de génial !) qu'il apporte.
J'ai peu d'expérience avec les framework JS, mais je ne vois pas pourquoi ça ne se vaudrait pas. Un moteur de template c'est un peu toujours la même chose quel que soit le langage…
Ça dépend pour quoi. Franchement, quand c'est juste pour afficher une ressource sur une page simple que tu as besoin d'Ajax (pour du templating, typiquement), il faut tout simplement supprimer cette requête inutile ! Et pas besoin de faire le calcul N fois côté serveur : tu caches le résultat, point barre, comme ça l'effort est économisé des deux côtés.
Par contre, si c'est pour une fonctionnalité « avancée », pourquoi pas, mais j'avoue rarement avoir de bonne justification pour ça. Plein de fois où je dois activer le JS, j'imagine tout de suite une manière de faire en statique pour le client, sans surcharge pour le serveur. Comme je dis à groumf plus haut, bien sûr que je ne demande pas à GMail de marcher sans JS, mais je parle de toutes les « applications » entre deux.
Bah j'aimerais bien avoir des exemples, car mon coup de gueule est pour des exemples plutôt simples à chaque fois. Tiens par exemple, un contre-exemple, c'est l'Agenda du Libre : je viens de remplir un évènement http://www.agendadulibre.org/events/new, et bien c'est tout à fait faisable sans JS ! Et le mieux, c'est que même si j'active le JS au cours du remplissage, je ne perds même pas mon contenu car ils utilisent le JS juste comme il faut pour ne pas obstruer le fonctionnement du navigateur sur la mémorisation ! Franchement, ça c'est un super exemple de bonne dégradation. Bravo l'ADL !
Oui, avec les classiques redirections pour les POST, ne pas mettre l'état du client côté serveur pour faire je ne sais quoi « d'intelligent », et mettre à jour l'URL actuelle quand en JS on modifie l'état de la page. Rien que si déjà les devs respectaient ça, ça serait beaucoup mieux. Je ne sais malheureusement pas si ce sont des principes bien enseignés.
Oui, c'est lié au précédent. Ça me fait penser également au problème du JS qui se bind sur les évènements claviers sans vérifier le modifier, ou du coup mes raccourcis clavier (avec alt/control) font faire des trucs bizarre à la page (qui ne voit qu'un évènement pour la lettre)… assez énervant.
Ça j'avoue ne plus trop le voir, peut-être que les navigateurs forcent de toutes façons un comportement correct maintenant.
Utiliser des
a
avechref
pour les liens, il n'y a pas d'excuse (réécriture machin, tweaker le référencement blahblah) ; mettre des sources pour votre image, même en version pixélisée s'il le faut, mais ne pas charger les images uniquement en JS ; au moins essayer une fois votre site sans JS pour voir la galère que c'est pour certains ; ne pas utiliser du JS pour charger du JS (c'est fou ce que c'est la mode) car ça oblige à faire l'autorisation en plusieurs étapes (des fois ça monte à 5 ou 6 ; souvent, j'abandonne avant) ; ne pas recharger la page pour rien (même avec une balise meta !) ; je dois en oublier également…[^] # Re: La présentation oublie des infos essentielles
Posté par benoar . En réponse à la dépêche « Fourmilieres », un générateur de formulaires qui permet de reprendre la main sur vos données. Évalué à 2.
Comme je disais, ça reste pour la présentation et pour les interactions riches ; pour « la base », ça a vraiment peu changé ! Et bien sûr que je ne demande pas à GMail de marcher sans JS…
Non, pas comme en 99. Mais qu'un formulaire — fonction normalisée dans les premiers standards du Web ! — puisse marcher sans JS, ça me semble normal et même essentiel, même si bien sûr sans JS on manquera un paquet de « jolis » trucs.
Franchement, je connais peu et je ne vois pas ce qui se fait avec. Étant quelqu'un du réseau, voir réimplémenter un système de paquets au-dessus d'un réseau orienté contenu (à cause des firewalls de nazis) situé au-dessus d'un réseau vaguement circuit-paquet (à cause du NAT), ça me désole un peu.
[^] # Re: La présentation oublie des infos essentielles
Posté par benoar . En réponse à la dépêche « Fourmilieres », un générateur de formulaires qui permet de reprendre la main sur vos données. Évalué à 2.
Waouh, je ne pensais pas qu'il me donnerait raison si vite ; un article du mois dernier de lui indique :
http://www.bookbusinessmag.com/article/what-the-inventor-of-the-world-wide-web-sees-for-the-future-of-ebooks/
OK, c'est dans le contexte des eBook qui s'intègrent au Web, mais pour moi c'est dans l'idée.
[^] # Re: La présentation oublie des infos essentielles
Posté par benoar . En réponse à la dépêche « Fourmilieres », un générateur de formulaires qui permet de reprendre la main sur vos données. Évalué à 3.
C'est toi qui le dit. Parce que ça arrange ceux qui veulent contrôler l'interface utilisateur plutôt que ça soit l'utilisateur qui puisse dicter ses besoins. Ça colle bien au fait que ça rende les choses moins accessibles : c'est l'idéologie même de ce mouvement de casser le pouvoir de l'utilisateur.
Et, qu'en conclues-tu ? Ne trouves-tu pas ça dommage que des gens se coupent de sites à cause de leur conception qui va à l'encontre des principes de base du Web, comme bien dégrader ? Je suis sûr que même Berners-Lee n'accroche pas vraiment à cette tendance.
J'avoue que je ne comprends pas trop les arguments de sécurité, mais bon.
Moins cher que quoi ? Que bien faire les choses ? Ah oui, ça, forcément, c'est comme ça partout, bâcler le travail et faire de la merde et s'en foutant des conséquences que ça a pour les autres, ça a toujours été (et ça l'est toujours) une technique en vogue et qui ne coûte pas cher. C'est censé être un argument pour toi ?
Ça, d'accord. Mais on a déjà essayé de normaliser des solutions pour le templating côté client : c'est XSLT. Mais tout le monde l'a oublié. Pour le reste, très bien, ne fait pas de mise en forme côté serveur, ça me va très bien : je m'en fous que ça soit moche, bien sûr que je fais des compromis quand je n'ai pas de JS.
Houa, alors ça pas du tout par contre : aujourd'hui, côté client, on mélange aussi les choses comme on le faisait avant côté serveur. Les applications bien délimitée, ça n'est pas juste en disant que « je fais du JS » que ça va arriver magiquement. C'est comme tout, ça demandera un bon dev.
On est donc d'accord : ça n'est pas parce que c'est du JS que c'est magiquement « mieux ». Alors pourquoi, si on ne fait pas mieux, casser tout l'existant, l'accessibilité, voire les fonctions de base ?! Une des raisons pour lesquelles l'HTML est « rigide » niveau interaction (et la raison pour laquelle tant de gens sont tentés de mettre plein de JS), c'est aussi parce que ça évite de faire n'importe quoi à ceux qui n'y connaissent rien et font du dev à deux francs.
[^] # Re: La présentation oublie des infos essentielles
Posté par benoar . En réponse à la dépêche « Fourmilieres », un générateur de formulaires qui permet de reprendre la main sur vos données. Évalué à 3.
Oui c'est ça.
Forcément, il n'a aucune idée des principes du Web qui est de se dégrader correctement. C'est à toi d'adapter ses demandes à ces préceptes.
Même si on pourrait argumenter sur plein de choses à propos des applications lourdes vs. le Web, je ne vois pas en quoi ces demandes vont contre ce que j'ai dit.
Ça c'est effectivement la vraie question. Ce qu'il faut penser, et ce qu'on ne prend pas assez en compte, je trouve, c'est que l'accessibilité est une « externalité » qui n'est souvent pas prise en compte dans le choix : ça ne « coûte » rien aujourd'hui de faire un site 100% JS pourri. Ça ne va faire chier que trois clampins, qui sont en plus sûrement un peu handicapés (je me considère un peu comme ça, en fait, même si je n'ai pas de handicap physique), donc on s'en fout.
Je suis prêt à discuter d'un juste milieu. Comme je disais plus haut, je suis prêt à accepter de devoir utiliser un browser gérant des normes un peu modernes, pour éviter trop de galères aux développeurs. Mais à la limite, tant que tu gardes un HTML correct, même la CSS je m'en fout que tu utilises des trucs très modernes pas trop supportés : ça ne m'empêchera pas de lire, même si c'est moche. Et ce HTML là, il n'a presque pas changé en 20 ans.
Et pour ta blague sur le modem 2400 bauds, c'est ironique comme c'est justement tu ne devrais pas t'en faire : si ta base HTML est bonne, les « chieurs » qui veulent l'accessibilité s'en contenteront et auront magiquement un contenu léger car ils auront laissé de côté ton JS éléphantesque.
Très bon exemple : c'est super vendeur de faire de la différenciation (pour iPhone, par exemple), alors que c'est à l'antipode de ce pour quoi a été fait le Web, et du coup les devs se cassent le cul d'une force pas possible pour nous chier des merdes de JS pour gérer ça. Mais laissez faire les browsers en HTML, merde !
[^] # Re: La présentation oublie des infos essentielles
Posté par benoar . En réponse à la dépêche « Fourmilieres », un générateur de formulaires qui permet de reprendre la main sur vos données. Évalué à 1.
Mauvais exemple : oui, il y aura toujours des choix dépendants, mais tu auras également toujours à faire une validation côté serveur. Donc autant laisser un formulaire sans JS avec toutes les possibilités et une indication que c'est à l'utilisateur d'être cohérent ; ça ne me choque pas quand il n'y a pas de JS que ça soit à moi de faire une partie du boulot. Après, oui, pour faire « bien », tu mettras du JS pour tes choix dépendants. Même si en général, j'ai de mauvaises expériences avec pas mals de formulaires de ce genre qui te « bloquent » quand tu veux modifier certains paramètres mais que ça n'est pas dans l'ordre que le concepteur avait imaginé… Il me semble que dans les bonnes pratiques des UI, la validation intermédiaire (qui a lieu lors des étapes d'un choix dépendant) n'est pas considérée comme idéale.
Pas d'accord avec ce raisonnement : ça n'est pas parce que tu peux faire du JS qu'il faut en mettre partout où c'est possible. Une des bonnes philosophies du développement Web, c'est de se dégrader correctement ! C'est tellement évident pour moi, mais pas pour les devs récents, on dirait. Oui, c'est plus de boulot, mais c'est comme ça que le Web marche bien.
Je pense que c'est beaucoup de boulot pour certains framework JS qui sont développés en s'amusant à tout réinventer. Ou ceux qui veulent combler les fonctionnalités de tous les vieux browsers en les réinventant à la sauce JS : du coup, ça casse toute « l'intelligence » que pourrait avoir le browser pour avoir une cohabitation JS/HTML-sans-JS harmonieuse. Franchement, quand je vois le nombre de sites dont les liens ne fonctionnent pas du tout sans JS (voire sans cookies !!) parce qu'ils n'ont pas de
href
correct dans leurs balisesa
(voire qu'ils n'utilisent simplement pas dea
), c'est à pleurer ; et ne me dit pas que c'est plus de boulot de faire ça correctement… Faut naviguer un peu sans JS pour aller voir les dommages qu'a fait cette idéologie au Web.[^] # Re: Bug fermé chez tmux
Posté par benoar . En réponse au journal Attention avec systemd, Tmux ne survit plus après la fermeture de la session.. Évalué à 7.
Ahaha, elle est bonne : c'est justement l'état d'esprit des dev de systemd, de ne rien avoir à foutre de la rétro-compatibilité. Et c'est « assumé » ! Et donc oui, tu ne vois pas pourquoi, mais en pratique c'est le cas : plein de choses sont cassées si tu n'as pas systemd. J'ai vécu quelques temps horribles sans, et puis j'ai laissé tomber, accepté systemd et je me tape tous les comportements « étranges » dès qu'un nouveau truc est cassé. La résignation, c'est la vie.
Ah bah non, informe toi : c'est aussi bien pour les services liés à la gestion de session que de l'énergie, les permissions des périphériques, la configuration réseau, etc. Ça n'est pas « facile à refaire ». J'avoue ne plus suivre depuis quelques temps, mais j'ai toujours cette épée de Damoclès que tout parte en cacahuète sans que je ne comprennes rien. Par exemple, Debian pour Jessie a stoppé la version de consolekit avant que son moteur de permissions en Javascript n'arrive, mais je crois que pour avoir le dernier systemd il va falloir y passer. Quelle avancée extraordinaire et facilement maîtrisable ! Rien de terrible ne pourrait arriver, non ?
[^] # Re: Bug fermé chez tmux
Posté par benoar . En réponse au journal Attention avec systemd, Tmux ne survit plus après la fermeture de la session.. Évalué à 2.
Oui, OK, je concède, mais du coup ça marchera uniquement pour trois barbus. J'ai du mal à appeler ça « utilisable » au sens général.
[^] # Re: La présentation oublie des infos essentielles
Posté par benoar . En réponse à la dépêche « Fourmilieres », un générateur de formulaires qui permet de reprendre la main sur vos données. Évalué à 3.
Je suis d'accord avec le fait que Zope est un exemple d'over-engineering complet : je m'y suis cassé les dents également. Mais je parlais juste du langage de template (TAL, j'avais oublié le nom) : le principe me semblait quand-même bien, d'avoir un document XML conforme, annoté correctement. C'est dommage que ça n'ait pas été repris dans un autre framework.
Par contre, pour XSLT, je ne comprends pas ta critique : oui, HTML/CSS est déjà assez balaise à maîtriser, mais toi tu proposes de rajouter Javascript sans le préciser ! Ça n'est pas « pire » que XSLT, au contraire : le XSLT est beaucoup moins complexe, même si du fait de sa relative non-popularité, on va trouver plus de monde qui connaît le JS, c'est clair. Et « débugger » des templates, je ne vois pas trop où est la complexité, quel que soit le langage.