perfs : un client peut s'en foutre (et encore avec les mobiles), mais pour un serveur entre parser 1 octet ou 3 octets pour le "GET", ça change un peu en perfs.
Ça change rien du tout. Ton GET il est passé par la pile TCP/IP de ton OS (et le driver de ta carte, et le driver de ton bus sur lequel est raccordé la carte), a été copié plusieurs fois en mémoire, été écrit sur le disque dur pour les logs (donc repassé par la couche I/O de ton OS). Le nom de fichier derrière a été analysé, réécrit, passé plusieurs fois par le VFS, éventuellement passé les filtres de sécurité de l’OS. C’est toutes les copies de mémoire, les allées et venues entre le mode kernel/user, les appels système etc… qui te coûtent du temps, pas le pauvre strncmp qui est de toute façon optimisé par le pipelining des processeurs modernes…
Dictionnaire! Le translateur ne dépend pas du protocole, il a un dictionnaire qui l'alimente.
S’il traduit tous les octets, il va te traduire aussi le contenu de la page et le contenu des entêtes, ce que tu ne veux pas. Donc il doit savoir quoi traduire et quoi ne pas traduire. Donc il doit avoir une connaissance parfaite de la grammaire HTTP. Donc il dépend du protocole.
Toi. Mais toi, tu ne représentes pas tout le monde.
Effectivement, c’est pour ça que quand j’ai parlé de la négociation de contenu, j’ai dit « trouver un mécanisme permettant de s’en passer », pas « supprimer la négociation de contenu ». Parce que des gens l’utilisent.
Toi, tu veux supprimer tout ce que tu n’utilises pas même si d’autres l’utilisent, pas moi.
Est-ce que sur ta machine tu as tous les paquets avec toutes les options de débugging au cas où un gus voudrait debugger?
Je vois pas le rapport entre un logiciel sur ma machine qui pourrait limite être compilé en -O9 sans que ça dérange personne d’autre que moi, et un protocole normalisé supposé être identique pour tous.
genre compression, qui n'est pas lisible par ton vi
Posté par Moonz .
En réponse à la dépêche En route pour HTTP/2.0.
Évalué à 5.
Dernière modification le 25 mai 2012 à 12:36.
Sauf que ton « translateur » est dépendant du protocole, puisqu’il doit savoir quels octets traduire (juste les noms des entêtes) et lesquels ne pas toucher.
Et encore une fois, c’est inutile si tu ne vois pas le mode texte comme une fonctionnalité. Moi c’est une fonctionnalité que j’utilise tous les jours. Encore une fois, « expliquez moi votre besoin, je vous dirai comment vous en passer » ?
Et de toute façon, une fois que ta requête tient dans un paquet TCP, ça sert à rien de t’échiner à la réduire, tu auras du padding de toute façon…
Posté par Moonz .
En réponse à la dépêche En route pour HTTP/2.0.
Évalué à 9.
Dernière modification le 25 mai 2012 à 11:21.
Parce qu’avec "vi" (non, pas vraiment vi, mais c’est toi qui a commencé), je peux taper en HTTP, FTP, SMTP, IMAP, POP, et j’en passe.
Avec ta solution, il me faut un vi-http, un vi-ftp, un vi-smtp, un vi-imap, un vi-pop. Avec vi je peux éditer du Latex, du HTML, du Markdown, du JSON, du XML. Toi pour ton MPEG-TS tu es obligé d’écrire un outil spécifique ; moi c’est tous les jours que j’utilise des scripts qui communiquent avec des serveurs web/mail et qui n’utilisent rien d’autre que nc, les outils unix standards et des pipes.
Franchement, le nom des entêtes c’est négligeable devant :
- les entêtes répétées pour toutes les ressources d’une page (j’ai fait F5 sur une page sur linuxfr : 16 requêtes HTTP, avec toutes les entêtes identiques à chaque fois renvoyées)
- les gadgets de HTTP dont on pouvait se passer (content negociation particulièrement : accept, accept-language, accept-encoding)
- les cookies
Qu’est-ce qui te semble le plus efficace pour gagner de l’espace :
- trouver un encodage binaire pour les entêtes
- rationaliser le système de cache pour éviter d’avoir plusieurs entêtes pour le contrôle du cache
- trouver un mécanisme pour que client et serveur se mettent d’accord pour se passer des entêtes qui servent à rien dans 90% des requêtes : Accept-* (presque toutes les pages ont une seule représentation linguistique/informatique), Connection (quand t’es en HTTP 1.1 à priori tu es sûr que tu feras du keep-alive)
- changer le scope de certaines entêtes (User-Agent, Cookie, Referer) pour qu’elles soient valides le temps de la connexion plutôt que le temps de la requête
Ça dit exactement à qui c'est destiné (les entreprises, les PME et les TPE qui n'ont pas besoin de "bleeding edge" technologique, mais d'un logiciel stable), et le besoin qu'elle tente de satisfaire (travailler pendant une longue période sans avoir à réinstaller le système).
Il y a tellement de distributions (bien plus connues, bien plus répandues, avec des entreprises qui sont là depuis longtemps et probablement pour longtemps derrière) qui ont cet objectif que j’ai du mal à voir ça comme une spécificité personnellement…
On va faire plus simple : pourquoi Rosa Linux plutôt que, disons, RHEL ?
Oui, enfin, je vais me permettre de mitiger un peu :
et on constate rapidement le résultat dans l'émulateur (très bien intégré dans eclipse)
Emulateur qui met 10 minutes à se lancer, et qui une fois sur deux n’arrive pas à arrêter l’application quand tu testes une nouvelle version de ton code ce qui t’oblige à relancer l’émulateur (j’ai jamais bu autant de café depuis que je fais un peu de dev android).
On a la puissance ! car on a les apis au plus bas niveau.
Sauf si Dieu Google a décidé que telle fonctionnalité ne serait pas accessible aux développeurs « pour protéger l’utilisateur qui pourrait se retrouver avec une application qui suit mal le paradigme IHM d’android » (tu as généralement des envies de meurtre quand tu tombes sur des problèmes comme ça et que tu lis les raisons des devs android sur leur BTS).
qui permet de faire plein de chose simplement (définir ses layouts visuellement, etc …)
Bien mieux que les machins genre phonegap effectivement, mais on est à des années lumières d’un Qt Designer de l’époque de Qt 3 ou d’un Xcode+InterfaceBuilder…
Parce que le jour où ça passe par là, ça fait généralement très mal.
Très mal ? Ça segfault un peu plus loin, c’est tout.
Tu as un problème inattendu, le programme crash de manière inattendue. La vache de catastrophe horrible.
Alors je suis d’accord que dans certains cas, l’application ne doit jamais avoir de comportement indéfini, et dans ce cas oui, vérifier les exceptions/codes d’erreur est vital.
Je sais pas vous, mais 90% du code que je fais n’a pas de telles contraintes, et un crash si le disque dur grille et que fopen renvoie NULL, c’est tout à fait acceptable. Par contre, le temps supplémentaire passé à coder les tests de vérification « est-ce que malloc a renvoyé NULL », eux, sont déjà bien moins acceptables (parce que mine de rien, une gestion aussi fine des erreurs, c’est assez chronophage).
Posté par Moonz .
En réponse au journal Retour d'expérience sur Go.
Évalué à 3.
Dernière modification le 16 mai 2012 à 14:55.
Heu, en C "," est prioritaire devant ";"… exactement comme en Go.
for(int i=0,j=0;i<width&&j<height;i++)
Quant à OCaml je connais pas donc je ne saurai dire, mais la compatibilité de la syntaxe avec Caml n’est vraiment pas, mais alors pas du tout un objectif de Go.
Edit: niveau priorité des opérateurs, le ";" dans le "if" est géré en Go très exactement comme le ";" dans le for en Go, qui est lui-même géré exactement comme le ";" dans le for en C. Je vois pas ce qu’il y a de choquant niveau lisibilité ou priorités habituelles.
Pour expliciter, if a;b { … } est équivalent à for a;b; { …; break; }, qui existe en C. Rien de vraiment révolutionnaire ou traumatisant donc.
D’un autre côté, c’est pas comme si l’expérience disait le contraire.
2007, on disait tous pourris, on nous répondait pareil, démagogie. Aujourd’hui bilan du président sortant : blah blah affaire clearstream blah blah promesses non tenues blah blah « république irréprochable qu’il nous disait » blah blah EPAD. Mais voyez, ceux qui disaient tous pourris en 2007, c’est juste des démagogues, des mauvaises langues et des menteurs.
2012, on dit tous pourris, on nous répond toujours la même chose. Je me contenterai de dire « à dans 5 ans, et rira bien jaune celui qui ne se lave pas les dents ». En tout cas ça commence fort, je crois que je peux arrêter dès maintenant l’achat de dentifrice.
Sauf que là c’est le site qui fait de la discrimination sur la forme de ton adresse mail.
Je sais. Maintenant, m’inscrire sur un site internet, ça me fait à la base bien chier (super, un autre mot de passe à retenir, youpi !). Si je cherche à m’inscrire c’est parce que le contenu m’intéresse vraiment. Et si le contenu m’intéresse vraiment, je n’ai pas envie que mon adresse e-mail m’empêche d’en profiter.
C’est pas un peu de la sécurité par l’obscurité ça ?
Le but de telles techniques anti-spam n’est pas de faire de la sécurité forte. Quelqu’un qui veut absolument me spammer personnellement y arrivera. C’est juste des heuristiques pour déjouer le spam de masse.
C’est le genre de sites sur lesquels je ne vais pas.
Si mon système de mail m’interdit de m’inscrire à certains sites, je considère ça comme un problème de mon système de mail, désolé.
Par contre, c’est typiquement le genre de site louche qui nécessite de bien séparer l’adresse donnée du reste des adresses.
ça s’applique pas qu’à gmail.
C’était un exemple pour dire « ça doit être sur ton domaine » : si tu commences à faire ça sur un domaine un peu connu (type gmail), les spammeurs apprendront à virer la part en "+" sur les domaines connus (en priant pour qu’ils n’enlèvent pas la partie en "+" sur tous les domaines…)
Ça évite de se taper une liste d’alias longue comme le bras à gérer.
Je ne gère aucun alias. Tous les mails envoyés sur example.com sont renvoyés à l’utilisateur principal (@example.com myuser dans /etc/postfix/virtual). La seule chose que j’ai à gérer, c’est quatre lignes dans mon .procmailrc pour rediriger les adresses effectivement spammées vers /dev/null.
Certains sites te mettent "adresse invalide" s’il y a un "+" dessus. Je sais, c’est la faute du site, mais aux dernières nouvelles je n’ai pas la possibilité de réparer tous les sites cassés du monde entier.
Ça marche si c’est ton domaine. Si tu t’appelles Google, les spammeurs apprendront très vite à faire un s/\+.*(?=@gmail.com)//g dans leurs listes si cette technique se répand. Et si c’est ton domaine, je vois mal la différence entre ta proposition et la mienne en fait ; pourquoi répéter example ?
[^] # Re: trolldi
Posté par Moonz . En réponse à la dépêche La magie est de nouveau là : Mageia 2 est disponible. Évalué à 4.
Les plus belles fleur poussent sur le plus puant fumier :)
[^] # Re: Entêtes binaires???
Posté par Moonz . En réponse à la dépêche En route pour HTTP/2.0. Évalué à 1.
Au temps pour moi, j’étais persuadé que la valeur minimale pour Ethernet était bien plus grande que ça.
[^] # Re: Entêtes binaires???
Posté par Moonz . En réponse à la dépêche En route pour HTTP/2.0. Évalué à 4.
Ça change rien du tout. Ton GET il est passé par la pile TCP/IP de ton OS (et le driver de ta carte, et le driver de ton bus sur lequel est raccordé la carte), a été copié plusieurs fois en mémoire, été écrit sur le disque dur pour les logs (donc repassé par la couche I/O de ton OS). Le nom de fichier derrière a été analysé, réécrit, passé plusieurs fois par le VFS, éventuellement passé les filtres de sécurité de l’OS. C’est toutes les copies de mémoire, les allées et venues entre le mode kernel/user, les appels système etc… qui te coûtent du temps, pas le pauvre
strncmpqui est de toute façon optimisé par le pipelining des processeurs modernes…[^] # Re: Entêtes binaires???
Posté par Moonz . En réponse à la dépêche En route pour HTTP/2.0. Évalué à 3.
S’il traduit tous les octets, il va te traduire aussi le contenu de la page et le contenu des entêtes, ce que tu ne veux pas. Donc il doit savoir quoi traduire et quoi ne pas traduire. Donc il doit avoir une connaissance parfaite de la grammaire HTTP. Donc il dépend du protocole.
Effectivement, c’est pour ça que quand j’ai parlé de la négociation de contenu, j’ai dit « trouver un mécanisme permettant de s’en passer », pas « supprimer la négociation de contenu ». Parce que des gens l’utilisent.
Toi, tu veux supprimer tout ce que tu n’utilises pas même si d’autres l’utilisent, pas moi.
Je vois pas le rapport entre un logiciel sur ma machine qui pourrait limite être compilé en -O9 sans que ça dérange personne d’autre que moi, et un protocole normalisé supposé être identique pour tous.
Accept-Encoding: identity[^] # Re: Entêtes binaires???
Posté par Moonz . En réponse à la dépêche En route pour HTTP/2.0. Évalué à 5. Dernière modification le 25 mai 2012 à 12:36.
Sauf que ton « translateur » est dépendant du protocole, puisqu’il doit savoir quels octets traduire (juste les noms des entêtes) et lesquels ne pas toucher.
Et encore une fois, c’est inutile si tu ne vois pas le mode texte comme une fonctionnalité. Moi c’est une fonctionnalité que j’utilise tous les jours. Encore une fois, « expliquez moi votre besoin, je vous dirai comment vous en passer » ?
Et de toute façon, une fois que ta requête tient dans un paquet TCP, ça sert à rien de t’échiner à la réduire, tu auras du padding de toute façon…
[^] # Re: Entêtes binaires???
Posté par Moonz . En réponse à la dépêche En route pour HTTP/2.0. Évalué à 9. Dernière modification le 25 mai 2012 à 11:21.
Parce qu’avec "vi" (non, pas vraiment vi, mais c’est toi qui a commencé), je peux taper en HTTP, FTP, SMTP, IMAP, POP, et j’en passe.
Avec ta solution, il me faut un vi-http, un vi-ftp, un vi-smtp, un vi-imap, un vi-pop. Avec vi je peux éditer du Latex, du HTML, du Markdown, du JSON, du XML. Toi pour ton MPEG-TS tu es obligé d’écrire un outil spécifique ; moi c’est tous les jours que j’utilise des scripts qui communiquent avec des serveurs web/mail et qui n’utilisent rien d’autre que
nc, les outils unix standards et des pipes.Franchement, le nom des entêtes c’est négligeable devant :
- les entêtes répétées pour toutes les ressources d’une page (j’ai fait F5 sur une page sur linuxfr : 16 requêtes HTTP, avec toutes les entêtes identiques à chaque fois renvoyées)
- les gadgets de HTTP dont on pouvait se passer (content negociation particulièrement : accept, accept-language, accept-encoding)
- les cookies
Franchement, sur cette requête :
(vous inquiétez pas, c’est pas mon vrai cookie)
Qu’est-ce qui te semble le plus efficace pour gagner de l’espace :
- trouver un encodage binaire pour les entêtes
- rationaliser le système de cache pour éviter d’avoir plusieurs entêtes pour le contrôle du cache
- trouver un mécanisme pour que client et serveur se mettent d’accord pour se passer des entêtes qui servent à rien dans 90% des requêtes : Accept-* (presque toutes les pages ont une seule représentation linguistique/informatique), Connection (quand t’es en HTTP 1.1 à priori tu es sûr que tu feras du keep-alive)
- changer le scope de certaines entêtes (User-Agent, Cookie, Referer) pour qu’elles soient valides le temps de la connexion plutôt que le temps de la requête
[^] # Re: Filtrage
Posté par Moonz . En réponse à la dépêche En route pour HTTP/2.0. Évalué à 7.
Et on l’appellerait Freenet
[^] # Re: SRV
Posté par Moonz . En réponse à la dépêche En route pour HTTP/2.0. Évalué à 9.
Tu peux leur proposer, si tu y tiens vraiment…
[^] # Re: Oui, mais ?
Posté par Moonz . En réponse au journal ... & Et Rosa prends son envol. Évalué à 0. Dernière modification le 23 mai 2012 à 22:43.
Il y a tellement de distributions (bien plus connues, bien plus répandues, avec des entreprises qui sont là depuis longtemps et probablement pour longtemps derrière) qui ont cet objectif que j’ai du mal à voir ça comme une spécificité personnellement…
On va faire plus simple : pourquoi Rosa Linux plutôt que, disons, RHEL ?
[^] # Re: les tablettes, ca fait envie....
Posté par Moonz . En réponse au journal tablette magique ?. Évalué à 4.
Oui, enfin, je vais me permettre de mitiger un peu :
Emulateur qui met 10 minutes à se lancer, et qui une fois sur deux n’arrive pas à arrêter l’application quand tu testes une nouvelle version de ton code ce qui t’oblige à relancer l’émulateur (j’ai jamais bu autant de café depuis que je fais un peu de dev android).
Sauf si Dieu Google a décidé que telle fonctionnalité ne serait pas accessible aux développeurs « pour protéger l’utilisateur qui pourrait se retrouver avec une application qui suit mal le paradigme IHM d’android » (tu as généralement des envies de meurtre quand tu tombes sur des problèmes comme ça et que tu lis les raisons des devs android sur leur BTS).
Bien mieux que les machins genre phonegap effectivement, mais on est à des années lumières d’un Qt Designer de l’époque de Qt 3 ou d’un Xcode+InterfaceBuilder…
[^] # Re: Déprimant
Posté par Moonz . En réponse au journal Le PS a t'il ressorti la machine à perdre ?. Évalué à 2.
D’un autre côté, si les débats politiques étaient capable de faire changer d’avis les protagonistes, ça fait longtemps qu’ils seraient interdits :)
[^] # Re: Déprimant
Posté par Moonz . En réponse au journal Le PS a t'il ressorti la machine à perdre ?. Évalué à 3.
Suivre l’actualité politique sur twitter, double combo mauvais goût !
[^] # Re: gestion des erreurs
Posté par Moonz . En réponse à la dépêche Retour d'expérience sur Go. Évalué à -3.
Très mal ? Ça segfault un peu plus loin, c’est tout.
Tu as un problème inattendu, le programme crash de manière inattendue. La vache de catastrophe horrible.
Alors je suis d’accord que dans certains cas, l’application ne doit jamais avoir de comportement indéfini, et dans ce cas oui, vérifier les exceptions/codes d’erreur est vital.
Je sais pas vous, mais 90% du code que je fais n’a pas de telles contraintes, et un crash si le disque dur grille et que
fopenrenvoieNULL, c’est tout à fait acceptable. Par contre, le temps supplémentaire passé à coder les tests de vérification « est-ce quemalloca renvoyéNULL», eux, sont déjà bien moins acceptables (parce que mine de rien, une gestion aussi fine des erreurs, c’est assez chronophage).[^] # Re: gestion des erreurs
Posté par Moonz . En réponse à la dépêche Retour d'expérience sur Go. Évalué à 8.
Non, en C
errnon’est pas renvoyé, c’est une variable globale.Et ce qu’on essaie de te dire, c’est que :
est plus clair que (version C)
[^] # Re: Debugger?
Posté par Moonz . En réponse à la dépêche Retour d'expérience sur Go. Évalué à 5.
gdb supporte Go.
[^] # Re: Maps et slices
Posté par Moonz . En réponse au journal Retour d'expérience sur Go. Évalué à 3.
Et c’est pareil en Go :
http://golang.org/ref/spec#If_statements
[^] # Re: Maps et slices
Posté par Moonz . En réponse au journal Retour d'expérience sur Go. Évalué à 3. Dernière modification le 16 mai 2012 à 14:55.
Heu, en C "," est prioritaire devant ";"… exactement comme en Go.
Quant à OCaml je connais pas donc je ne saurai dire, mais la compatibilité de la syntaxe avec Caml n’est vraiment pas, mais alors pas du tout un objectif de Go.
Edit: niveau priorité des opérateurs, le ";" dans le "if" est géré en Go très exactement comme le ";" dans le for en Go, qui est lui-même géré exactement comme le ";" dans le for en C. Je vois pas ce qu’il y a de choquant niveau lisibilité ou priorités habituelles.
Pour expliciter,
if a;b { … }est équivalent àfor a;b; { …; break; }, qui existe en C. Rien de vraiment révolutionnaire ou traumatisant donc.[^] # Re: J'en connais qu'un
Posté par Moonz . En réponse au journal free et la gestion des mails. Évalué à 1. Dernière modification le 16 mai 2012 à 14:47.
J’utilise plus d’électricité, ce surplus m’est facturé, c’est un coût.
J’utilise plus de bande passante, mais ce surplus ne m’est pas facturé, donc ce n’est pas un coût.
C’est le coût marginal qui est intéressant ; en France le coût marginal en bande passante c’est 0.
[^] # Re: Maps et slices
Posté par Moonz . En réponse au journal Retour d'expérience sur Go. Évalué à 2.
C’est un idiome assez courant dans ce langage, tu t’y fais très rapidement.
[^] # Re: et?
Posté par Moonz . En réponse au journal J'espère me tromper, mais à priori on est mal .... Évalué à 4.
D’un autre côté, c’est pas comme si l’expérience disait le contraire.
2007, on disait tous pourris, on nous répondait pareil, démagogie. Aujourd’hui bilan du président sortant : blah blah affaire clearstream blah blah promesses non tenues blah blah « république irréprochable qu’il nous disait » blah blah EPAD. Mais voyez, ceux qui disaient tous pourris en 2007, c’est juste des démagogues, des mauvaises langues et des menteurs.
2012, on dit tous pourris, on nous répond toujours la même chose. Je me contenterai de dire « à dans 5 ans, et rira bien jaune celui qui ne se lave pas les dents ». En tout cas ça commence fort, je crois que je peux arrêter dès maintenant l’achat de dentifrice.
[^] # Re: Srsly?
Posté par Moonz . En réponse au journal free et la gestion des mails. Évalué à 2.
Ou comme linuxfr ? :)
[^] # Re: J'en connais qu'un
Posté par Moonz . En réponse au journal free et la gestion des mails. Évalué à 2. Dernière modification le 14 mai 2012 à 16:46.
Je sais. Maintenant, m’inscrire sur un site internet, ça me fait à la base bien chier (super, un autre mot de passe à retenir, youpi !). Si je cherche à m’inscrire c’est parce que le contenu m’intéresse vraiment. Et si le contenu m’intéresse vraiment, je n’ai pas envie que mon adresse e-mail m’empêche d’en profiter.
Le but de telles techniques anti-spam n’est pas de faire de la sécurité forte. Quelqu’un qui veut absolument me spammer personnellement y arrivera. C’est juste des heuristiques pour déjouer le spam de masse.
[^] # Re: J'en connais qu'un
Posté par Moonz . En réponse au journal free et la gestion des mails. Évalué à 2.
Si mon système de mail m’interdit de m’inscrire à certains sites, je considère ça comme un problème de mon système de mail, désolé.
Par contre, c’est typiquement le genre de site louche qui nécessite de bien séparer l’adresse donnée du reste des adresses.
C’était un exemple pour dire « ça doit être sur ton domaine » : si tu commences à faire ça sur un domaine un peu connu (type gmail), les spammeurs apprendront à virer la part en "+" sur les domaines connus (en priant pour qu’ils n’enlèvent pas la partie en "+" sur tous les domaines…)
Je ne gère aucun alias. Tous les mails envoyés sur example.com sont renvoyés à l’utilisateur principal (
@example.com myuserdans/etc/postfix/virtual). La seule chose que j’ai à gérer, c’est quatre lignes dans mon.procmailrcpour rediriger les adresses effectivement spammées vers/dev/null.[^] # Re: J'en connais qu'un
Posté par Moonz . En réponse au journal free et la gestion des mails. Évalué à 3. Dernière modification le 13 mai 2012 à 20:37.
Certains sites te mettent "adresse invalide" s’il y a un "+" dessus. Je sais, c’est la faute du site, mais aux dernières nouvelles je n’ai pas la possibilité de réparer tous les sites cassés du monde entier.
Ça marche si c’est ton domaine. Si tu t’appelles Google, les spammeurs apprendront très vite à faire un s/\+.*(?=@gmail.com)//g dans leurs listes si cette technique se répand. Et si c’est ton domaine, je vois mal la différence entre ta proposition et la mienne en fait ; pourquoi répéter example ?
[^] # Re: J'en connais qu'un
Posté par Moonz . En réponse au journal free et la gestion des mails. Évalué à 1.
Ça ne m’est jamais arrivé, mais si ça devait m’arriver je ferai un fake jsmith@moonz.fr, et tous ceux qui envoient dessus sont blacklistés.