mat2, version Web

Posté par  (site web personnel) . Édité par Davy Defaud, Ontologia, Julien Jorge, palm123 et Bruno Michel. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
31
4
fév.
2019
Technologie

mat2, dont on a déjà parlé ici, est un outil permettant de supprimer les métadonnées de tout un tas de formats de fichiers, comme des photos, des vidéos, des documents Office, des fichiers torrents…

Votre serviteur, l’auteur de mat2 étant notoirement mauvais en accessibilité et interface utilisateur, a fait le choix d’intégrer l’outil directement dans Nautilus Fichiers, l’explorateur de fichiers de GNOME. Après avoir bataillé avec Python 2 et Python 3 ainsi qu’avec la documentation des extensions, l’intégration était là !

Mais tout le monde n’utilise pas forcément Fichiers, ou même GNOME. Hors de question de retenter l’expérience d’écrire une interface en GTK. Que faire, que faire…

Il semble que la manière moderne de produire des logiciels multi‐plates‐formes soit d’écrire une application en Electron, ce qui n’est pas grand‐chose d’autre qu’un site Web local, et ça, Python sait très bien faire. Donc, mat2-web, avec flask pour la partie serveur et Skeleton pour le frontal. Ce n’est pas très beau, mais le code est court, ça marche, et ça ressemble à ça :

Page d’accueil
Après nettoyage

Un site en local, c’est chouette, mais ça veut tout de même dire qu’il faut porter mat2 sur d’autres plates‐formes, non ? Pas forcément, parce qu’il est possible de servir un site Web ailleurs qu’en local ! Il est possible d’utiliser des instances d’autres personnes, comme le montre par exemple la démo qui est ici. Mais évidement, ça veut dire faire confiance aux gens qui l’ont déployée, ce qui ne semble a priori pas être une bonne idée : « Voici mes documents top-secrets, merci de les nettoyer, et de ne pas en garder une copie. »

Alors pourquoi avoir fait une version Web si personne ne devrait l’utiliser ?

Parce qu’il existe des collectifs sur Internet auxquels les gens accordent déjà une confiance relative, comme Riseup, Autistici, systemli.org, Aquilenet, Toile Libre, Framasoft… Ces collectifs pourraient sûrement déployer des instances de mat2-web, ou alors des cercles d’amis comprenant une personne technophile, ou encore des rédactions de site d’actualité ou de journaux — c’est déjà le cas dans celle d’un journal francophone, m’a‐t‐on dit —, voire dans votre squat. Bref, des cas d’usage existent.

Comme d’habitude, avec les projets libres, toute aide est la bienvenue, surtout si vous parlez JavaScript et HTML.

Aller plus loin

  • # Wuy

    Posté par  (site web personnel) . Évalué à -2.

    Wuy aurait fait l'affaire très bien
    https://github.com/manatlan/wuy

    • [^] # Re: Wuy

      Posté par  (site web personnel) . Évalué à 10.

      Aurait fait l'affaire pour quoi ?

      Si c'est pour un client lourd:
      - Ça ne résoudrait pas les soucis de dépendances (cairo, poppler, ffmpeg, …)
      - Ça introduirait une dépendance sur Chrome, ce qui est un poil overkill pour faire une bête interface graphique.
      - Ça n'aurait pas résolu les soucis d’accessibilité/ergonomie.
      - Et visiblement, wuy lance un Chrome "par défaut", qui va baver tout un tas de choses à Google™ à son lancement.

      Si c'est pour la partie serveur:
      - Pourquoi Wuy plutôt que Flask, sachant que ça dernier fourni un moteur de template, du routage, des fonctionnalités de sécurité (vérification des chemins de fichiers par exemple), … et est packagé un peu partout.

      De plus, wuy manque de documentation (c'est dans sa TODO), a un tout petit bus factor , ne semble pas vraiment activement maintenu, expose des primitive dangereuses (sérieusement, contournement de CORS en tant que fonctionnalité ‽), n'a pas de release stable, semble impossible à sandboxer, fourni des exemples de code avec des XSS, n'a pas d'intégration continue, ne spécifie par ses versions supportées de Python (en fouinant un peu, on s’aperçoit que certaines dépendances ne fonctionnent pas sur la version utilisée par Debian Jessie, qui est la cible principale de mat2-web), …

      Bref, ça ressemble plus a un framework perso développé par la personne qui a écrit le commentaire qu'à une vraie réponse à une problématique, testée et éprouvée pour de la production.

  • # pywebview

    Posté par  . Évalué à -2.

    Il existe pywebview qui permet de faire la même chose qu'electron et qui est compatible Flask.

    • [^] # Re: pywebview

      Posté par  . Évalué à 8.

      Est-il vraiment souhaitable de faire la même chose qu'Electron.JS (j'ai toujours envie de virer la moitié de ce mot quand je pense à cette «techno»… traumatisme des galères liées à une appli du taf j'imagine)?

      Je veux dire, embarquer Chromium, ne pas avoir d'API stable qui permette de s'interfacer avec le système, bouffer une mégachiée de mémoire vive et poncer le disque dur au lancement à chaud, sans parler d'une intégration déplorable au système (ben oui, obligé d'avoir N instances de chromium sur le disque, puisque l'API n'est pas stable…). Ah, et je sais que l'espace disque c'est «pas cher» (même si perso je préfère avoir de la place pour mes VMs, qui elles ont une raison valide d'être lourdes), mais la bande passante à chaque MàJ par contre si: tout le monde n'a pas la fibre hein, mes parents sont encore à moins de 250 Kio/s de download par exemple.

      Du coup, ça fait vraiment la même chose? Ça embarque vraiment chromium en mode sale? Est-ce une bonne chose si c'est le cas?

      • [^] # Re: pywebview

        Posté par  . Évalué à 2. Dernière modification le 08 février 2019 à 23:23.

        Normalement non ça utilise les moteur de rendu web des framework graphique comme gtk ou Qt.
        Après là il parle d'electron et dit que python sait faire. Je donne un exemple d'une techno qui fait tourner Flask et affiche avec gtk. Mais personne n'a regardé la techno à juste vu electron et je me prend -3. Je pense que je vais arrêter de donner des technos qui peuvent rendre service.

        Édit: moi non plus j'ai pas la fibre et ça demande que les mise à jour de Qt/gtk qui arrivent avec la distro.

        • [^] # Re: pywebview

          Posté par  . Évalué à 1.

          Mais personne n'a regardé la techno à juste vu electron et je me prend -3.

          Je t'avoue que j'ai aussi failli, hein, et même pour le journal, j'ai failli lire trop vite et taper à la mention d'Etron.JS. Faut dire aussi, ce truc, quand on doit en faire une application qui doit interagir avec le système, c'est la croix et la bannière… Pour info, il s'agit du seul framework pour lequel j'éprouve presque de la haine (et certainement un très profond mépris). Je ne sais pas pour les autres, par contre.

  • # Outil très sympa mais...

    Posté par  . Évalué à 2.

    L'outil me semble vraiment cool et c'est vrai que les méta-données peuvent représenter un sacré fléau niveau confidentialité !

    Par contre concernant la version web de l'outil autant pour l'héberger je trouve ça cool mais pourquoi ne pas avoir créé une interface simple en ligne de commande (mat2 picture1 [… picture2]) ?

    Je ne comprend pas aussi le message "there is no way that you could be certain about this" ?

    • [^] # Re: Outil très sympa mais...

      Posté par  (site web personnel, Mastodon) . Évalué à 8.

      Je ne comprend pas aussi le message "there is no way that you could be certain about this" ?

      Même si tu as un source code, tu ne peux jamais être certain que le code qui tourne sur le serveur est celui dont tu as le source code… hormis la parole de celui qui a installé. Mais les promesses n'engagent que ceux qui y croient.

      Si toi par contre, tu installes le logiciel sur ton serveur, alors bien sûr, tu peux (techniquement, ça ne veut pas nécessairement dire que tu vas le faire, mais au moins c'est possible) être sûr qu'il n'y a aucune porte dérobée… hormis si tu en rajoutes une toi-même bien sûr! Et dans ce cas, la situation se renverse.
      C'est le principe de "Software as a Service".

      La conclusion est que ce message s'adresse aux gens qui utilisent le service web (qui n'ont pas de preuve autre que la parole de l'admin), pas à ceux qui l'installent (lesquels peuvent savoir si les photos sont gardées). Et ce logiciel dit donc aux gens de rester critique et de ne pas croire aveuglément n'importe qui. C'est pas parce qu'on vous dit une chose que c'est nécessairement vrai. Donc évitons de balancer nos photos de nu si on veut être sûr qu'elles se retrouvent pas n'importe où.

      Je trouve un tel message plutôt une bonne idée. Mais comme tu le montres, il faut peut-être un peu de background pour en comprendre tout le sens.

      Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

    • [^] # Re: Outil très sympa mais...

      Posté par  (site web personnel) . Évalué à 5. Dernière modification le 05 février 2019 à 21:32.

      mat2-web repose sur mat2, comme expliqué dans les deux premiers paragraphes de l'article. Il y a un même un lien vers le précédent article sur DLFP à son sujet, qui explique que mat2 est une bibliothèque, accessible au travers d'une interface en ligne de commande :)

      Le reste de l'article explique pourquoi l'interface web a été écrite, principalement pour répondre à des problématiques d'expérience utilisateur.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.