Mildred a écrit 2180 commentaires

  • [^] # Re: Rendu vidéo médiocre

    Posté par (page perso) . En réponse à la dépêche Parution de GNOME 3.30. Évalué à 10 (+12/-0).

    Le coup de l'horloge c'est le summum de l'intéressant. Qui se préoccupe de voir l'heure à la seconde près ? Je préfère à choisir que ma compilation se termine plus tôt plutôt que de gaspiller des cycles cpu à avoir l'heure affichée à la seconde près. Ce qui compte c'est que l'horloge interne du système soit ok.

    En fait oui, c'est intéressant. Le premier truc que j'active sur GNOME c'est les secondes de l'horloge. Parce que lorsque ton horloge est figée, ça veut aussi dire que tout le reste du bureau est figé (et au début de wayland, la souris aussi).

    Du coup, j'utilise les secondes comme un watchdog, savoir quand ça rame. Le problème c'est dans le design du shell. Ecrit en Javascript, avec aucune considération pour la latence dans la boucle principale. Le minimum serait de faire un minimum d'appels système sur le chemin critique de rendu, et gérer tout le reste dans d'autres threads/processus.

    C'est un problème connu, et gnome-shell 4 est en réflexion.

    Malgré tout ça, j'adore GNOME et l'utilise tous les jours.

  • [^] # Re: adresses

    Posté par (page perso) . En réponse au journal De l'usage du courrier électronique en 2018. Évalué à 3. Dernière modification le 07/08/18 à 23:57.

    J'ai mis un moment a trouver ce découpage, avant, j'avais un classement ultra simpliste: {pseudo,prénom}-dossier.sous-dossier@domaine et c'est devenu très vite ingérable parce que je ne retrouvais plus aucun mail et j'avais trop de dossiers IMAP pour la majorité des clients mails.

    En pratique, les nouvelles catégories que j'ai trouvées, je ne les utilise pas encore vraiment. J'ai tous les alias des années passées que je redirige à la main via des conditions spécifiques (que j'ai enlevées dans le script ci-dessous). Mais à l'utilisation dans le mailer (j'utilise claws-mail) c'est top.

    Ce sont des alias, pas des adresses mail séparées que j'utilise. Le tout est classé par un script sieve coté serveur. Le script ressemble globalement à:

    require [
      "fileinto",
      "copy",
      "mailbox",
      "imap4flags",
      "variables",
      "envelope",
      "reject",
      "mime",
      "regex"
    ];
    
    set "category"    ""; # mail category
    set "subcategory" ""; # mail subcategory
    set "inbox"       ""; # Inbox to use, if not set defaults to INBOX.<category>
    set "subinbox"    ""; # Subfolder of inbox
    set "suffix"      ""; # mail inbox suffix
    set "list_id"     ""; # mailing List-Id if that can be detected
    
    #
    # Detect List-Id
    #
    
    if header :matches "List-Id" ["<blah>"] {
      set "list_id" "blah";
    } elsif header :matches "List-Id" ["<*.googlegroups.com>"] {
      set "list_id" "${1}";
    } elsif header :matches "List-Id" ["<blah>"] {
      set "list_id" "blah";
    }
    
    ################################################################################
    
    #
    # Lists
    #
    
    if not string "${list_id}" "" {
      set "category" "Lists";
      set "subinbox" "${list_id}";
      set "subcategory" "${list_id}";
    
      if string "${list_id}" ["listes", "que", "je", "suis", "activement"] {
        # Keep it in INBOX.Lists
      } else {
        # Autres listes que je regarde moins souvent
        set "inbox" "Lists";
        set "suffix" "all";
      }
    
    #
    # Postmaster
    #
    
    } elsif header :matches "Delivered-To" [
        "<postmaster@*>",
        "<abuse@*>",
        "<admin@*>",
        "<dmarc-*@*>"] {
      set "category" "Postmaster";
    
    #
    # Work
    #
    
    } elsif header :matches "Delivered-To" [
        "<prénom-travail@*>"] {
      set "category" "Work";
    
    #
    # Perso
    #
    
    } elsif header :regex "Delivered-To" [
        "<prénom[0-9]*@.*>",
        "<pseudo[0-9]*@.*>",
        "<prénom-mobile@.*>"] {
      set "category" "Perso";
    
    } elsif allof(header :matches "Delivered-To" "<robot-mobile@*>", header :matches "From" "*Voicemail*") {
      set "category" "Perso";
    
    #
    # Shop - shopping
    #
    
    } elsif header :matches "Delivered-To" [
        "<shop-*@*>"] {
      set "category" "Shop";
      set "subcategory" "${1}";
    
    #
    # Ads - advertisement
    #
    
    } elsif header :matches "Delivered-To" [
        "<ads-*@*>"] {
      set "category" "Ads";
      set "subcategory" "${1}";
    
    #
    # Dev - dev work, bugs, ...
    #
    
    } elsif header :matches "Delivered-To" [
        "<dev-*@*>"] {
      set "category" "Dev";
      set "subcategory" "${1}";
    
    #
    # Robot - any robot message
    #
    
    } elsif header :matches "Delivered-To" [
        "<robot-*@*>"] {
      set "category" "Robot";
      if header :matches "Delivered-To" ["<*-*@*>"] {
        set "subcategory" "${2}";
      }
    
    #
    # News - any newsletters with reading material
    #
    
    } elsif header :matches "Delivered-To" [
        "<news-*@*>"] {
      set "category" "News";
      set "subcategory" "${1}";
    
    #
    # Other - anything else
    #
    
    } else {
      set "category" "Other";
    }
    
    ################################################################################
    
    addflag "flags" "category.${category}";
    
    if not string "${subcategory}" "" { # add flag if subcategory set
      addflag "flags" "category.${category}.${subcategory}";
    }
    
    if not string "${list_id}" "" { # add flag if list_id set
      addflag "flags" "ml.${list_id}";
    }
    
    if string "${inbox}" "" { # Apply inbox category
      set "inbox" "INBOX.${category}";
    }
    
    if not string "${suffix}" "" { # Apply inbox suffix
      set "inbox" "${inbox}-${suffix}";
    }
    
    if not string "${subinbox}" "" { # Apply subinbox
      set "inbox" "${inbox}.${subinbox}";
    }
    
    ################################################################################
    
    fileinto :create :flags "${flags}" "${inbox}";
    
    
    
  • [^] # Re: Mon exéprience

    Posté par (page perso) . En réponse au journal De l'usage du courrier électronique en 2018. Évalué à 3.

    En auto hébergement, il y a Mailu qui est une solution relativement facile à installer. J'avais des services configurés à la main avec Docker avant, mais Mailu gère toute la configuration pour toi.

    J'ai juste quelques modifs perso pour:

    • exécuter mailu au dessus de Nomad (un scheduler docker qui remplace docker-compose ou Kubernetes)
    • ajouter un 2e serveur dovecot pour avoir un accès aux filtres sieve pour du filtrage coté serveur

    Mais sinon, c'est un bonheur à utiliser (tant qu'on reste sur une installation mono machine). Il y a une solution antispam (j'ai fait sans pendant des années parce que la catégorisation des mails aide beaucoup). Une interface d'admin intégrée pour gérer les alias, les multiples noms de domaines, SPF, DKIM et DMARC, SSL via LetsEncrypt…

  • [^] # Re: Un retour d'expérience

    Posté par (page perso) . En réponse au journal De l'usage du courrier électronique en 2018. Évalué à 1.

    En général les sites d'achat ont des trucs à te vendre, et donc vont te renvoyer des mails régulièrement pour des trucs dont tu te fous complètement. Tu va donc juste aller voir à l'occasion et lorsque tu as une commande en cours.

    Alors qu'un forum, un bugzilla ou autre, ça t'intéresse plus de base d'avoir les mails.

  • # adresses

    Posté par (page perso) . En réponse au journal De l'usage du courrier électronique en 2018. Évalué à 2.

    Pour ma part, j'utilise également un wildcard sur tout le nom de domaine, mais j'ai pas séparé deux noms de domaines différents:

    • nom@domain: pour les contacts humains qui me connaissent par mon nom
    • pseudo@domain: pour les contacts humains qui me connaissent par mon pseudo
    • robot@domain, robot-servicename@domain: pour les mails automatiques (forums, services en lignes, …)
    • news@domain, news-servicename@domain: pour les news (abonnements aux blogs)
    • shop@domain, shop-servicename@domain: pour les achats en lignes (souvents suivis de courriers de promotions, …)
    • nom@domain ou pseudo@domain pour les listes de diffusion avec filtrage sur le header List-Id
    • dev@domain ou dev-service@domain pour les bugzilla, GitHub, …

    Avant, je filtrais de manière bien plus simple, avec nom-imap.folder@domain ou pseudo-imap.folder@domain, et j'avais un dossier différent pour chaque service web, mais ça posait des problèmes car j'avais des dizaines (centaines ?) de dossiers et le protocole IMAP ne suivait pas. Finalement, les catégories ci-dessus marchent bien mieux.

    A chaque fois les adresses mails sont de type catégorie-service@domain. Au final, les mails sont filtrés dans des dossiers selon la catégorie, et le nom du service ne sert pas au filtrage. Optionellement, cela me permet de filtrer certains services que je ne veux plus voir ou qui deviendraient du SPAM. AUssi, cela permet de filtrer selon deux niveaux. Un dossier Catégorie pour les mails les plus importants et un dossier Catégorie-others pour des mails moins importants que je ne vais pas regarder sauf exception.

  • [^] # Re: Russia bashing

    Posté par (page perso) . En réponse au journal Bashing Kaspersky. Évalué à 3.

    Kennedy, personne n'a encore expliqué comment ça s'était passé quand même.

  • [^] # Re: Vers l'infini et au-delà !

    Posté par (page perso) . En réponse au journal Un rachat, un summit et un BIOS qui s'ouvre de plus en plus grâce à linux . Évalué à 0.

    Il faut donc rétablir les provinces de l'ancien régime..?

  • # Le mail, c'est facile

    Posté par (page perso) . En réponse à la dépêche Héberger son courriel en 2018. Évalué à 3.

    Franchement, je ne comprends pas le problème que les gens ont avec l'hébergement mail. J'ai toujours trouvé ça facile et j'ai que rarement eu des problèmes. Jusqu'à présent j'utilisais une solution exim + dovecot maison avec un record SPF -all. J'ai jamais remarqué des problèmes sauf a un certain moment où le bon coin envoyait des e-mails avec un expéditeur d'envelope qui correspondait a ton mail perso, qui bloquait sur la politique SPF. Mais plus maintenant.

    J'ai jamais remarqué de blacklist ou autre…

    Maintenant, j'utilise Mailu qui me donne entière satisfaction et qui me permet d'avoir DKIM en bonus. J'avoue l'avoir un peu customisé. Ma boîte mail perso est un wildcard sur le domaine. Et je suis la seule personne sur ce serveur mail. C'est peut être pour ça que je n'ai pas trop de soucis.

  • [^] # Re: Il ne faut pas y faire trop attention

    Posté par (page perso) . En réponse au journal Hache-thé-aime-aile cinq virgule deux (a.k.a HTML 5.2 pour les intimes). Évalué à 1.

    Pour donner l'argument inverse, il me semble que Daniel Glazman, créateur de Nvu et BlueGriffon, éditeur HTML WYSIWYG sorti de la suite Mozilla, et depuis longtemps dans le groupe de travail CSS du W3C, vantait au contraire l'avantage du W3C face au WHATWG qu change tous les quatre matins le texte normatif HTML5… Et du coup, pour implémenter la spec, cétait un peu plus compliqué.

    C'est dans une de ses dernières vidéos: The third browser war is over and it's a bloodshed - WEB2DAY 2016 (31m 24s)

  • [^] # Re: Navigation

    Posté par (page perso) . En réponse au sondage Que pensez-vous des liseuses ?. Évalué à 2.

    Je suis dans le même cas, j'apprécie de pouvoir facilement prendre mon livre n'importe où, mais je n'ai pas trop non plus dépendre de la technologie. C'est vrai qu'un livre électronique permet de faire des recherches textuelles, mais dans un livre papier, tu peux mettre de vrais marques pages, bien plus parlants que les pseudo parques pages d'une liseuse. Si il y a des figures et tableaux a aller voir, c'est beaucoup plus pratique avec un livre papier.

    En fait, l'idéal est d'avoir les deux en même temps :)

  • [^] # Re: Sympa

    Posté par (page perso) . En réponse à la dépêche Updates-warner : pour être alerté d’une modification de ressource Web. Évalué à 2.

    Une connexion tcp ou websockets qui n'a pas de traffic, ne consomme rien en terme de ressources. C'est juste une entrée dans une table de connections ouvertes sur le serveur et sur le client, c'est tout.

    Après, si les implems derrière font n'importe quoi, c'est un autre problème.

  • [^] # Re: Un lecteur vidéos ?

    Posté par (page perso) . En réponse à la dépêche Des nouvelles de GNOME à l’occasion de la 3.26. Évalué à 2.

    J'utilise, mais ce qui me manque le plus c'est de pouvoir ouvrir deux vidéos en même temps, pas juste la playlist.

  • [^] # Re: Flatpak

    Posté par (page perso) . En réponse à la dépêche Des nouvelles de GNOME à l’occasion de la 3.26. Évalué à 6.

    En pratique je ne connais pas beaucoup de logiciels qui maintiennent en même temps plusieurs version en parallèle. Il faut des ressources pour se permettre de développer à la fois les nouvelles fonctionnalités de la version 2 et maintenir la version 1.

  • [^] # Re: Mon expérience : la papi Louis

    Posté par (page perso) . En réponse à la dépêche Open Source Seeds : les graines de tomates libres. Évalué à 4.

    Ce qui est important effectivement c'est l'adaptation de la graine au lieu. Par sélection génétique sur des décénies, la graine est parfaitement adaptée a son jardin.

  • [^] # Re: Point de vue d'un développeur XMPP

    Posté par (page perso) . En réponse à la dépêche Matrix pour décentraliser Skype, Whatsapp, Signal, Slack et Discord. Évalué à 7.

    Vouloir comparer est normal, ils arrivent après, XMPP existe, et les gens ont besoin de comprendre pourquoi ils doivent investir dans une nouvelle techno alors qu'il y avait XMPP qui ne demandait qu'a évoluer.

    C'est un peu comme Mir vs Wayland (d'ailleurs la FAQ de Mir sur Wayland était bien pourrie).

    Pour moi, Matrix voulait refaire de la messagerie, avec un style très orienté IRC. Ils voulaient aller vite. XMPP leur donnait l'impression de stagner donc ils ont voulu s'en abstraire pour aller plus vite et par raisons marketing De toute façon, ça n'avait plus la cote… et ils ont fait un protocole fait au plus rapide avec une couche HTTP+JSON parce qu'il y a plein de libs qui marchent bien pour ça, c'est tout.

    Il doit également y avoir des raisons techniques. Je pense que l'implémentation des utilisateurs et des salons de discussion est différente de XMPP et c'est souhaité. Si ils avaient dû reprendre XMPP, ils n'auraient peut être pas pu reprendre les mêmes groupchat et auraient fait leur truc séparé sans doute.

  • [^] # Re: s/Skype/web/

    Posté par (page perso) . En réponse au journal Au revoir Skype, bonjour Matrix et Riot. Évalué à 2.

    Disclaimer : on était ensemble sur framatalk. Somme toute, c'était un des meilleurs outils qu'on ait testé. Ça nous arrivait d'avoir des problèmes d'echo avec l'autre coté de l'atlantique, mais sinon, ça marchait bien. Surtout pour quelque chose qui tourne dans un navigateur uniquement. Donc n'hésitez pas a tester également.

  • # Plugins

    Posté par (page perso) . En réponse à la dépêche Sortie de Terraform 0.9. Évalué à 3.

    D'un point de vue purement théorique sur la manière dont fonctionne terraform, il a un gros avantage par rapport a Ansible, Chef ou Puppet : il stocke son état courant.

    En pratique ça veut dire que lorsqu'on enlève une ressource du fichier terraform, au prochain lancement, il va se souvenir que la ressource existait, quelle n'existe plus, et il tentera de la supprimer. Dans les faits, ça lui permet d'être toujours au plus proche de son état.

    Des outils de gestion de conf classique, en cas de suppression d'une ressource dans les sources, ne vont pas la supprimer. Elle restera là sur les serveurs. Ce qui je trouve peut poser problème. Imagine que ce soit un serveur avec une faille de sécurité… En pratique, la solution est d'indiquer la ressource mais avec une booléen pour dire qu'elle doit être absente. Pas très propre je trouve.

    En constatant cela, j'ai immédiatement pensé a comment faire pour utiliser terraform a la place de puppet, chef ou ansible. En pratique, c'est pas faisable … dans terraform on ne gère pas des fichiers, des services ou d'autres objets existant sur la machine où on exécute terraform. Ce que fait terraform c'est gérer des ressources distantes par API Web.

    Mais en pratique, terraform permet l'écriture de plugins. En théorie rien n'empêche donc d'écrire un plugin qui au lieu de discuter avec une API Web, discutera avec une API d'appel systèmes pour provisionner une machine réelle et pas dans le cloud.

    Après, en pratique, je n'ai pas tenté cette voie parce que terraform n'est vraiment pas fait pour ça, et rien ne dit que ça marchera pour tout faire. Et il n'y aura aucune volonté de merger du code sur ces fonctionnalités upstream. Ce serait un gros hack en quelque sorte. mais si vous avez du temps a faire, ça peut être un truc cool :)

    Sachant qu'il existe un outil : mgmt (déjà discuté plus haut), tout neuf, écrit par un gars de Red Hat qui pourrait remplir ce rôle parfaitement.

  • # HAL est troué

    Posté par (page perso) . En réponse au journal La CIA offre sa première fournée de logiciels non libres gratuits. Évalué à 3.

    https://wikileaks.org/ciav7p1/cms/page_9535850.html

    BaldEagle

    Local user-to-root privilege escalation exploit within the Hardware Abstraction Layer (HAL) daemon. Exploit is available on Linux and PC-BSD platforms with the hald process running.

  • [^] # Re: UEFI

    Posté par (page perso) . En réponse au journal Libérer un Mac/Intel. Évalué à 6.

    Les macs de 2007 (Core2Duo MacBook2,1) ont un EFI (c'était pas encore UEFI a cette époque) 32 bits alors que ton OS est souvent 64bits. Du coup, si tu présentes une clé avec une code de boot 64bits, ça ne marche pas.

    Solution: faire tout en 32bits, ou avoir une distro qui te file un EFI 32bits et un kernel 64bits. Et ça, pas grand monde le fait.

  • [^] # Re: e10s

    Posté par (page perso) . En réponse à la dépêche Firefox 49 en chansons. Évalué à 2.

    J'ai comme l'impression que chromium cache la page complètement sur disque. Avec un ordinateur pas très puissant, et pas beaucoup de RAM, chromium est nettement plus réactif que Firefox. Il faut dire que j'ai une sale habitude : avoir minimum 40 onglets ouverts, si ce n'est 120.

    Sans doute que Firefox devra se mettre a faire ça, si ils décident d'activer un process par onglet (au lieu d'un process pour tous les onglets comme maintenant)

  • # Encrypted Media Extensions : est-ce que ça va vraiment marcher ?

    Posté par (page perso) . En réponse à la dépêche Firefox 49 en chansons. Évalué à 6.

    J'ai du mal a voir comment une extension binaire est capable de protéger du contenu. A mon sens, c'est complètement vulnérable a une attaque de type replay attack. Et je ne suis pas seule a le penser, il semble : EME undermines its stated purpose

    It's stated in the abstract that the EME purpose it's for "providing APIs to control playback of protected content" but a standard (open) API undermines all content protection schemes using it thereby defeating its reason for existing.

    There are a couple ways this can manifest:

    • If the protected content, CDM, license requests/responses are all written to disk by the browser then they can be packaged into a single file for later playback.
    • The CDM is architecture and OS agnostic, so it cannot make direct rendering calls. As a result, any possible output from the CDM can be recorded to disk as an unprotected media format.

    En gros, il dit qu'il y a deux manières pour récupérer le contenu quand même :

    • en interceptant les accès au serveur de DRM, et en contrôlant l'état du module DRM, il est possible de rejouer les requêtes réseau afin de redéchiffrer le contenu.
    • en interceptant les frames déchiffrées, on peut reconstituer le flux vidéo non chiffré

    En gros, cela revient, l'un comme l'autre a exécuter le module DRM dans une machine virtuelle, ou toutes les entrées sont connues, et si on peut faire ça, plus rien ne tient.

    Dans le cas contraire, le module DRM est très lié au matériel et ne peut s'exécuter dans une machine virtuelle, on va rester dans le problème classique ou ces modules vont être sous une forte pression de reverse engineering pour réussir a accéder a une interopérabilité.

  • [^] # Re: faudrait donner quelques explications.

    Posté par (page perso) . En réponse au journal Fin du monde en vue ?. Évalué à 1.

    Ça n'a rien a voir, l'injection SQL permet a un attaquant d'attaquer une application via sa base de donnée.

    Ici le cas de figure est un abonné free qui attaque directement la base de donnée pour avoir un accès privilégié sur les serveurs de free et donc faire plein de choses qu'il n'aurait pas pu faire sinon.

  • [^] # Re: Stop avec le RapberryPI

    Posté par (page perso) . En réponse à la dépêche Donnez votre avis sur la nouvelle architecture de Cozy. Évalué à 2.

    Autant sur le reste des critiques, je ne les partage pas, mais effectivement, le RaspberryPI me semble fort limité pour quelque chose comme Cozy. On a pas besoin de port HDMI !

    Par contre, on a effectivement besoin d'IO descentes, de gigabit ethernet et de SATA (voire multiple SATA pour faire du RAID).

    D'une manière générale, je regrette que tout se fasse a base de Raspberry. Il manque une alternative orientées stockage de données (pour Cozy par exemple) et une autre alternative orientée réseau pour faire son routeur maison (gigabit ethernet, switch ethernet intégré, pas besoin de SATA ni HDMI).

    Vous connaissez des alternatives spécialisées dans ce genre ressemblant dans l'esprit au Raspberry ?

  • [^] # Re: Pourquoi en C ?

    Posté par (page perso) . En réponse au journal Ulfius: framework pour faire des API Web en C. Évalué à 2.

    C'est vrai que par choix, je choisirais plutôt de l'écrire en Go, de par sa simplicité de déploiement (compilé en statique) et de par la facilité de la cross compilation. Mais le C n'est pas si mal non plus.

  • [^] # Re: Snappy vs compilation statique

    Posté par (page perso) . En réponse au journal des paquets Snaps dans Ubuntu. Évalué à 2.

    L'esprit de la LGPL veut que tu puisse modifier le code LGPL, et exécuter le même soft avec ton nouveau code. Pour cela, tu as besoin d'un link dynamique. Donc de l'extérieur, tu as bel et bien besoin d'avoir une lib séparée.