GaMa a écrit 447 commentaires

  • [^] # Re: Zim

    Posté par  (site web personnel) . En réponse au message Est-ce faisable en .epub ? ou dans un autre format ?. Évalué à 3.

    Tu peux directement télécharger les binaires précompilés de zim-tools (http://download.openzim.org/release/zim-tools/) et kiwix-tools (https://download.kiwix.org/release/kiwix-tools/) si tu veux pas t'embêter à compiler.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Zim

    Posté par  (site web personnel) . En réponse au message Est-ce faisable en .epub ? ou dans un autre format ?. Évalué à 3.

    Ce que je veux, c'est pouvoir reproduire dans un fichier, Quel que soit le format, le résultat qui s'affiche sur le lien que j'ai donné (http://jocelynaznar.eu/lexique_nisvai/form_visualisation.php?histoire=T50).

    De mon point de vue, c'est une page web avec un audio en plus. Mais je clique peut-être pas au bon endroit.

    Oui, j'ai accès à tout, vu que j'ai développé les données et le site web.

    Dans ce cas, c'est assez simple. Tu mets tous tes fichiers dans un dossier (et tu t'assure que tout les liens son relatifs) et tu lances zimwriterfs avec les bonnes options.

    Pour lire l'archive, il te faut n'importe quel lecteur kiwix (desktop, android, ios,…) ou kiwix-serve qui te fait un mini site web local (ou non) que tu ouvres avec ton navigateur.

    Pour javascript ça devrait être relativement transparent, c'est l'équivalent d'un site statique. Ton navigateur va télécharger le js et l'exécuter comme d'habitude.

    Matthieu Gautier|irc:starmad

  • # Zim

    Posté par  (site web personnel) . En réponse au message Est-ce faisable en .epub ? ou dans un autre format ?. Évalué à 5. Dernière modification le 05 novembre 2022 à 08:52.

    Je suis pas sûr d'avoir bien compris le besoin, mais si tu veux juste empackager une page web (ou plusieurs) et ses ressources en un fichier unique, tu peux aller voir du côté de zim qui est le format utilisé par kiwix.

    Si t'as accès aux sources du contenu, tu devrais y arriver facilement avec 'zimwriterfs' (https://github.com/openzim/zim-tools). Si t'as pas accès aux sources tu peux utiliser https://youzim.it/ qui va te scrapper ton url (mais j'aime pas le "sous format" qu'il crée, donc privilégie zimwriterfs si possible)


    Ou alors tu attends de jubako soit un peu stabilisé et tu crées un format basé dessus 😜

    Matthieu Gautier|irc:starmad

  • [^] # Re: GNU Guix / The Shepherd

    Posté par  (site web personnel) . En réponse au journal Les problèmes d’un desktop sans systemd ?. Évalué à 7.

    Les services et leurs dépendances sont décrits en Scheme. Tout est de ce fait décrit en texte et est donc "grepable", et comme ce sont aussi des objets Scheme, l'arbre des dépendances est également requêtable.

    Les services de systemd et leurs dépendances sont aussi décrits avec du texte, c'est donc "grepable". C'est aussi requêtable (et modifiable), il y a même un outil pour ça : systemctl

    Matthieu Gautier|irc:starmad

  • [^] # Re: Je pose la question dans l'autre sens

    Posté par  (site web personnel) . En réponse au journal Les problèmes d’un desktop sans systemd ?. Évalué à 10.

    Il y’a d’une part ma faute (je n’arrive pas/n’ai pas envie de me plonger dans systemd/je lis les scripts bash assez intuitivement) et d’une part systemd (je peux pas juste lancer un grep dans le répertoire init pour voir ce qui est censé tourner, je peux pas simplement limiter la horde de process qui tournent sur mon ordi dès le démarrage).

    Je pense que c'est surtout le premier point le problème. Si on veut, on peut très facilement comprendre comment fonctionne systemd. (Par exemple avec ça https://wiki.archlinux.org/title/Systemd)

    je peux pas juste lancer un grep dans le répertoire init pour voir ce qui est censé tourner

    Tout est dans /etc/systemd/system/ (configuration "admin", des liens symboliques) et /usr/lib/systemd/system/ (configuration "développeur", des fichiers)

    ls -l /etc/systemd/system/default.target me dit que par défaut on lance /usr/lib/systemd/system/graphical.target (chez moi, Fedora 36)

    Un cat /usr/lib/systemd/system/graphical.target (ou directement grep -E "(Wants|Requires)" /etc/systemd/system/default.target te dit qu'on a besoin de multi-user.target et display-manager.service (si possible).

    Un ls /etc/systemd/system/graphical.target.wants me dit que mon admin a aussi rajouté 6 autres services voulu par graphical.target. (Je te laisse voir lesquels)

    Et tu peux continuer comme ça a descendre l'arbre de dépendances. Alors oui, c'est un peu plus compliqué qu'un dossier avec des scripts 10_foo.sh, 50_bar.sh… où tu peux voir rapidement ce qui sera lancé et dans quel ordre. Alors oui, c'est plus facile de configurer son système. Il suffit de rajouter un lien symbolique dans /etc/systemd/system/foo.target.wants vers un service pour que le service soit lancé. T'as pas besoins de gérer les dépendances et de renommer tes fichiers avec des nombres pour garder un système globalement cohérent pour être sur que tout se lance dans l'ordre.

    Toute les commandes à base de systemctl, c'est des outils "user-friendly" pour faire les liens et parcourir l'arbre des dépendances à ta place. Mais t'en a pas besoin.

    Si tu veux l'arbre de dépendances : systemctl list-dependencies
    Rajouter un lien symbolique pour mettre un service en dépendance d'une target : systemctl add-requires TARGET UNIT

    je peux pas simplement limiter la horde de process qui tournent sur mon ordi dès le démarrage).

    Tu vires des liens symboliques et c'est bon.
    C'est pas vraiment plus compliquer que virer tout les scripts dans un dossier pour sysVinit. C'est juste que sysVinit tu connais et que systemd non.

    mais j’explore justement le contraire "qu’est-ce qui casse si je touche à le truc".

    Tu te crées une nouvelle target à toi, sans dépendance et tu fais pointer /etc/systemd/system/default.target dessus. Tu devrais vite voir ce qui casse :)

    Matthieu Gautier|irc:starmad

  • [^] # Re: Autres...

    Posté par  (site web personnel) . En réponse au message Inkscape : dessins précis. Évalué à 6.

    Je pense que le problème c'est pas Inkscape, mais svg.

    D'après le svg, un rectangle c'est un chemin (path) fermé en forme de rectangle. Et quand on dessine un chemin, le chemin est au milieu de "l'épaisseur du trait".

    Tu peux aller voir de la CAO comme suggéré dans les autres commentaires mais aussi du coté de la PAO (Publication Assistée par Ordinateur) tel que Scribus.
    Il y a peut-être plus d'options pour du positionnement précis.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Parce que

    Posté par  (site web personnel) . En réponse au journal Sobriété, j'écris ton nom. Évalué à 7. Dernière modification le 08 septembre 2022 à 14:18.

    Si la crèche ne sait pas faire, elle peut payer un prestataire: elle le fait déjà le ménage, la plomberie, l'électricité…

    C'est exactement ce qu'elle a fait. Et on a eu droit à un parent qui à fait un article sur linuxfr parce que l'appli est trop grosse, elle marche pas avec son téléphone et qu'ils auraient pu faire un simple site web.

    Article dans lequel on explique que le mail/sms c'est mieux qu'une appli.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Parce que

    Posté par  (site web personnel) . En réponse au journal Sobriété, j'écris ton nom. Évalué à 8.

    On est bien d'accord. C'est probablement la meilleure solution pour les besoins que tu as spécifié. Il y a pas de discussion.

    Là où je suis moins en accord, c'est que les besoins ne sont probablement pas correctement cernés. Bien souvent la partie "sociale" de pourquoi les gens choisissent une solution plutôt qu'une autre est exclue de l'expression des besoins.
    Et du coup, naturellement, ça se termine souvent en "Les gens sont cons/fainéants/pas éduqués, ils ont choisi une solution moins bien. Mais c'est leur fautes, pas la faute de la solution."

    Après on peut assumer le discours "on s'en fout des pauvres, des handicapés, écolos, libristes, hipsters : C'est plus simple de faire une crèche à 70k€ sans accès fauteuil roulant, sans arrêt de bus, avec inscription via Whatsapp"…

    Je suis évidemment pas pour une crèche de ce type. Mais comprendre pourquoi les gens font ça, ce n'est pas accepter qu'ils le fassent. Mais plutôt mieux comprendre et mieux concevoir des solutions pour qu'ils arrêtent.

    Parce qu'un des besoins primaire pour une solution d'échange pour une crèche, c'est que des gens qui n'y connaissent rien en info puisse la mettre en place.

    Un site web, c'est bien. Mais il faut un hébergeur, lequel ? Une solution technique, laquelle ? Un mainteneur, qui ?
    Une mailling list aussi c'est bien. Comment on la fait ?
    Le sms… Comment qu'on fait pour envoyer N sms à N parents ? Je copie/colle ? J'utilise un service externe qui fait de l'envoie en masse ? Ça marche vraiment les discussions de groupe en sms ? (Réponse: non)

    Il y a parent machin, qui "s'y connait en informatique" qui me dit qu'il peut faire un site. Très bien. Comment je sais qu'il va me faire un site super bien avec peu de maintenance et pas un truc inutilisable ? On en voit des cador de l'ordinateur qui font des sites dégueulasse à base de wix hébergé sur un truc captif au possible. On se fait avoir une fois, on laisse le site mourir pour pas vexé Roger sans lui dire qu'il a fait de la merde et on recommence pas. Même un site statique super propre, il faut le maintenir. Et le markdown c'est facile… pour les devs. Les gens n'ont pas envie du try/error de je fais du markdown, je publie/test, à merde j'ai oublié de sauter une ligne là, je modifie, je republie, je …

    En face, t'as WhatsApp. 90% des gens l'ont (ça me désole, mais c'est vrai). Je clique sur le bouton plus, je mets un nom de groupe (et je me pose pas de question, il a pas besoin d'être unique, ça peut même être le même que l'année dernière). Je passe une demi-heure à rajouter les gens. C'est terminé.
    Et le jour où un parent aveugle arrive dans la crèche on verra à ce moment là comment on fait avec son lecteur d'écran qui marche pas avec WhatsApp. (En fait ils se disent même pas ça, il y pense pas)
    Et oui, je trouve ça nul aussi. (Et c'est même pas pour rien qu'il y a des lois qui obligent à mettre en place des choses avant que des handicapés se pointent)

    Le site/mail/sms c'est mieux… si tu prends pas en compte la mise en place par des gens lambda.
    Et tant que les techos qui font des solutions ne mettront pas les gens lambda dans leurs specs, leur solutions ne fonctionneront pas, aussi bien soient-elles. (Et c'est ça mon point, pas que WhatsApp est mieux que le mail)


    Et pour revenir sur le sujet de base. Pour une fois la crèche a essayé de faire un truc "bien". Ils se sont probablement dit que tout mettre sur google/gmail/whatsapp c'est pas bien (c'est mon neveu "libriste" qui m'a dit ça). Du coup ils ont cherché une solution "propre", à eux, qui demande pas de compte chez un GAFAM qui vole les données des gens. Sauf qu'ils y connaissent rien, alors ils se sont "planté". Ils ont une appli 10 fois trop lourde (c'est quoi des Mo déjà ?), publié sur google store (oups, les GAFAM sont là). Mais au moins il faut leur reconnaitre l'effort de sortir de la cage dorée.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Parce que

    Posté par  (site web personnel) . En réponse au journal Sobriété, j'écris ton nom. Évalué à 4.

    J'ai déjà proposé l'alternative site+mail/sms: aucune application/service aujourd'hui ne fait mieux.

    D'un point de vue technique, peut-être (et encore c'est à vérifier).
    Par contre, ça fait clairement pas mieux que les autres pour convaincre le commun des mortels par rapport aux autres solutions.

    Je parle pas obligatoirement pour toi (@devnewton). Mais de manière général (et pas qu'en informatique), les "inventeurs de solutions" (ingénieur, dev, militant, politique, …) ont tendance à prendre les contraintes techniques en compte, pondre une solution parfaite et attendent que les gens l'adopte (par qu'elle est (réellement) parfaite) et finissent en "les gens sont cons".

    Sauf que les gens, ils font parti des contraintes. C'est en les intégrants dans le problème qu'on trouve des solutions adaptées. Des fois moins efficaces d'un point de vue technique mais utilisées (et c'est toujours mieux que rien).

    Les solutions qui ont marché ne sont pas forcement les meilleures, c'est celles qui ont su convaincre. C'est pas pour rien que les boîtes mettent des milliers dans la pub.

    Donc non, l'alternative site+mail/sms, ça fait pas mieux. Ça fait mieux dans un domaine éventuellement. Mais au global non, les autres applis font mieux. (Ça me désole autant que vous, mais il faut regarder les choses en face)

    Matthieu Gautier|irc:starmad

  • # Tkinter canvas

    Posté par  (site web personnel) . En réponse au message Un démineur pour apprendre.... Évalué à 6.

    Les canvas tkinter c'est bien. Mangez en !
    Franchement tkinter est un peu vieillissant niveau graphique mais c'est ultra puissant.
    Le canvas ne fais pas exception.

    cv.create_text(...) (ainsi que tous les create_foo) retourne l'id de l'objet créé.
    Si tu utilises des classes comme proposé dans le commentaire précédent, tu peux stocker l'id et modifier le texte (avec cv.itemconfigure(id, ...)) plutôt que supprimer tous les éléments et recréer les lignes et textes.

    Tu peux associer des tags à des items dans un canvas. Ça te permet ensuite de retrouver tes petits et de les modifier d'un seul coup.
    Par exemple, si tu tags correctement tes éléments, tu peux les modifier très facilement :

    # On crée la grille
    for ligne in range(De.hauteur):
        for colonne in range(De.largeur):
            cv.create_text(X, Y, text=..., tags=("case", f"l:{ligne}", f"c:{colonne}"))
    
    # On change le texte d'une case x,y:
    cv.configureitem(f"l:{x} && c:{y}", text=...)
    # Oui, on peut faire des requêtes "complexes" sur les tags
    
    # Il existe deux tags magiques : "all" pour tous les éléments et "current" pour .... l'item sous le curseur de la souris. Du coup, tu peux trouver l'élément à modifier avec :
    cv.find_withtag("current")

    Et puis tu peux binder des événements directement aux tags plutôt qu'au canvas:

    cv.tag_bind("case", "<Button-1>", on_click)
    def on_click(event):
        item = cv.find_withtag("current")
        ....

    Par contre il n'est pas possible d'associer une valeur arbitraire à un item.
    Du coup, difficile de retrouver les coordonnées d'un item à partir de l'item lui même.
    Soit en utilisant un dict qui map l'id de l'item à ses coordonnée (ou l'objet python qui va bien)
    Soit en scannant les tags de l'item:

    def get_line(tagOrId):
        for tag in cv.gettags(tagOrId):
            if tag.startswith("l:"):
                return int(tag[2:])

    Bien sûr, du coup, ta fonction resize doit modifier les items existant au lieu de les recréer.

    LA doc qui va bien c'est l'officielle de tlc/tk : https://www.tcl.tk/man/tcl8.5/TkCmd/contents.html
    C'est un peu brut puisque c'est en tcl mais le mapping tcl=>python est assez simple, en se basant sur tkdocs (https://tkdocs.com/tutorial/canvas.html) qui affiche des exemples dans plusieurs langages on retrouver facilement ses petits.

    Et bien sûr, ce mode de fonctionnement se retrouve dans tout tk, des widgets de base qui peuvent être tagués et avec possibilité de rebinder tout les widgets au widget text qui permet de grande configuration du texte.
    Le tout en rajoutant la possibilité de mettre n'importe quel widget dans un canvas ou du text.
    C'est parfois un peu bas niveau ancien, il faut parfois écrire un peu (beaucoup) plus de code que pour d'autre toolkit pour des trucs un peu complexe, mais tkinter est le seul toolkit graphique qui soit si configurable (à l'exception peut-être des kivy et QtQML que je n'ai pas testé, mais on est dans un autre domaine de toolkit)
    Je me languis d'une mise à jour majeur de tk ou d'un nouveau toolkit un peu plus moderne mais qui reprenne les même principe de fonctionnement que tk.

    Matthieu Gautier|irc:starmad

  • # Adage

    Posté par  (site web personnel) . En réponse au journal Software architecture considered harmful. Évalué à 10.

    Comme dirait un de mes premiers collègues:

    Au début on fait simple parce qu'on ne sait pas faire autrement ;
    Ensuite on fait compliqué parce qu'on peut ;
    Après on fait simple parce qu'on a compris que ça servait à rien de faire compliqué.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Enfumage

    Posté par  (site web personnel) . En réponse au journal GitHub supprime les issues et pull requests de comptes russes suspendus ... puis les restaure. Évalué à 2.

    C'est un chouia plus compliqué, il faut un 3eme dépôt. Vu que chaque dev a son clone et utilise une copie de travail, on ne doit pas pousser dessus.

    Du coup, si tu as un dépôt partagé, je suis pas sur de voir l'avantage d'en avoir un 2eme (pour un total de 4), surtout que tout le monde a déjà une copie en local.

    En même temps c'est un peu la base de tirer d'un repo git.
    Ça a même donner la terminologie Pull Request (Svp, tirez mes patch de tel repos/tel branch, ça corrige tel bug).
    Je sais pas si c'est le standard principal pour envoyer des patches sur le kernel mais c'est standard

    Après, oui, il faut que tu ais un dépôt accessible publiquement pour que des gens puissent tirer de celui-ci. Et donc oui, les gens ont en général un dépôt publique en plus de leur dépôt "de travail". Mais ce dépôt n'a pas à être le même pour tout le monde. Même sur github, on fait des clones des dépôts des projets auxquels on veut contribuer. (C'est sur le même serveur certes, mais c'est des dépôts différents)

    Et est ce qu'on a parlé aussi des histoires de droits d’accès unix ? Parce qu'en général, c'est le truc un peu chiant a mettre correctement pour un dépôt "bare".

    T'as l'option core.sharedRepository pour avoir un dépôt accessible en écriture au niveau du groupe unix.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Le bout de papier inutile.

    Posté par  (site web personnel) . En réponse au journal Un scrutin vital. Évalué à 10.

    C'est pas idiot quand on a compris la finalité.

    Le but c'est de garantir que personne ne soit obligé de voté pour quelqu'un contre sa volonté (typiquement, un proche qui te forcerait à voter pour machin).
    En forçant tout le monde à passer par l'isoloir, potentiellement contre leur propre (réelle) volonté, on s'assure que tous on un moment seul sans regard extérieur pour mettre ce que tu veux réellement dans l'enveloppe.

    Si tu te pointes avec une enveloppe déjà remplie, rien ne garantie que c'est pas ton mari qui a mis le bulletin dedans et qu'il est pas en train de regarder que tu changes pas. On te forçant à aller dans l'isoloir, ça te laisse la possibilité de voter comme TU veux. Et même si c'est bien toi qui choisi, être obligée aller dans l'isoloir protège celle/ceux qui subissent des pressions.

    De même pour obliger les gens à prendre au moins deux bulletins différents. Quand tu forces le passage à l'isoloir tu empêches que des gens vérifient ce que tu votes.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Belle liste

    Posté par  (site web personnel) . En réponse au journal Des faits saillants pour une plus que centenaire. Évalué à 3.

    PS. Je viens de comprendre : de la même façon que le pirate pouvait inventer que la prisonnière était consentante alors qu'il l'avait en réalité violée, une prisonnière aurait pu faire semblant d'être consentante puis ensuite prétendre avoir été violée afin que le pirate soit exécuté. En exécutant les deux, on éliminait le risque de se tromper. Brillant.

    Ben justement non.
    Si un pirate viole une prisonnière, il est tué mais si en plus il avance qu'elle était consentante, la prisonnière est jetée à la mer. Et il y a peu de chance que la prisonnière admette qu'elle était consentante d'elle même.

    J'ai plutôt l'impression que c'est une règle pour "simplement" pénaliser les prisonnières qui souhaitent avoir des relations sexuelles.

    Matthieu Gautier|irc:starmad

  • # Tout n'est pas fichier

    Posté par  (site web personnel) . En réponse au message Pourquoi mount (le syscall) n'accepte pas un fichier ordinaire. Évalué à 10.

    Je pense qu'il y a une confusion entre ce que dit unix "Tout est fichier" et ce que fait le kernel.

    "Tout est fichier" c'est pour l'user space. Le kernel doit représenter l'ensemble du système sous la forme de fichiers. Ça permet d'avoir un user space qui accède à tout, toujours de la même façons : Des fichiers dans une arborescence, j'ouvre les fichiers, j'ai un fd, ….

    Mais le kernel, en interne, ne suis pas cette convention (et encore heureux). Un disque dur se comporte fondamentalement différemment d'un clavier, d'un écran (carte graphique) ou d'un périphérique réseau. (Et c'est bien pour ça qu'on a différent sous-système/drivers dans le kernel).

    Quand tu fais un mount /dev/foo /tmp/mount, tu demandes au kernel de :
    - prendre le périphérique block /dev/foo (le fait que tu puisses l'identifier comme un fichier dans une arborescence est sympa mais est sans rapport ici et rajoute de la confusion)
    - trouver le bon système de fichier (FS)
    - associer le contenu du périphérique block (exploité par le FS) au dossier /tmp/mount.
    Ce qui est dans /tmp/mount est le "résultat" de FS(/dev/foo)

    Mais quand tu lui passes un fichier standard en entrée, c'est peut-être la même chose pour toi (c'est accessible par un path, ton iso contient effectivement un FS,…) mais pour le kernel c'est complètement différent. Il n'a "rien" à passer au driver/FS, ton fichier standard est le "résultat" d'un autre FS dans un point de montage. Tu dois donc créer un autre couche d'abstraction qui "crée" un truc block à partir d'un fichier standard, et là ça marche.

    cp, dd et cat fonctionne au niveau userspace, donc tout est fichier. Donc c'est effectivement transparent pour eux.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Utilité ?

    Posté par  (site web personnel) . En réponse au journal Le dictionnaire des francophones : un dictionnaire francophone structuré libre. Évalué à 4.

  • # Delta vs Omicron vs Vaccin

    Posté par  (site web personnel) . En réponse au journal Comment je suis devenu un vacciné antivaxx.... Évalué à 10.

    • A cause d'Omicron qui contamine tout le monde, et contre lequel le vaccin n'est pas très efficace
    • Parce que j'en ai quand même bien bavé avec les deux premières doses

    Perso, j'ai été contaminé avec le Delta+ fin janvier, une semaine avant ma troisième dose alors que Omicron contamine "tout le monde".

    Et bien j'ai beau eu en baver avec les deux premières doses de vaccin, j'en est carrément chier avec le Delta+.
    À choisir, je préférerai me faire une troisième dose de vaccin et en baver pendant une journée que me refaire la semaine passée cloîtré au lit à être fatigué juste de me lever pour aller chercher à boire (sans parler de ma fatigue résiduelle encore aujourd'hui)

    Matthieu Gautier|irc:starmad

  • [^] # Re: Kiwix

    Posté par  (site web personnel) . En réponse au journal Wikipédia en mode offline. Évalué à 9.

    Elle est pas documentée parce qu'elle marche pas :)

    wget -c fais "simplement" un diff sur la taille du fichier distant - taille du fichier local et télécharge la fin pour la rajouter au fichier local.

    Du coup, wget rajoute juste la fin d'un zim récent à un zim ancien.
    Et comme la libzim sait lire une archive zim embarquée dans un fichier plus gros, t'as l'impression que ça marche, mais t'es toujours en train de lire l'ancienne archive.

    Les 5% "manquant" que tu as téléchargé ne servent à rien.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Temps de recherche sur Kiwix

    Posté par  (site web personnel) . En réponse au journal Wikipédia en mode offline. Évalué à 7.

    Nous indexons les articles dans une base xapian, qui est embarqué dans le fichier zim.

    C'est xapian qui fait la recherche elle-même. Mais la base peut être relativement grosse. De mémoire, la base pour wikipedia en anglais fait plus de 4Go).
    Sur un téléphone (ou ailleurs), il faut un peu de temps, pour que le kernel monte ce qui est nécéssaire en mémoire vive. D’ailleurs, en générale, une deuxième recherche avec des mots similaire est bien plus rapide.

    Un plan d'action qu'on a serait d'ouvrir les bases à l'avance avant que l'utilisateur lance une recherche. Mais comme pour tout… c'est à faire :)

    Matthieu Gautier|irc:starmad

  • [^] # Re: Nous utilisons beaucoup kiwix !

    Posté par  (site web personnel) . En réponse au journal Wikipédia en mode offline. Évalué à 5.

    Je t'invite à ouvrir des issues sur le projet : https://github.com/openzim/zim-requests

    Il y a probablement quelque chose à faire à niveau des scrapper si on arrive à identifier les schémas des illustration.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Nous utilisons beaucoup kiwix !

    Posté par  (site web personnel) . En réponse au journal Wikipédia en mode offline. Évalué à 6.

    Il faut veiller à avoir les index en plus des données. C’est cela qui permet de faire des recherches.

    Cela fait un bout de temps que les index sont inclus dans les zims au moment de la création de ceux-ci. Il n'est plus nécessaire d'indexé les zims soi-même.

    Dans la zone de saisi, oui, les suggestions reposent sur le titre des articles. Dès lors que le texte saisi ne correspond plus à aucun début de titre d’article, il s‘agira d’une recherche sur base de mot clé dans l’ensemble des articles. C’est très différent. Il faut se dire que chaque mot clé se trouvera dans l’ensemble du texte d’un article, alors proposé dans les résultats, mais il pourront se trouver éparpillés dans le texte, éloignés les uns des autres et pas dans le même ordre.

    Dans les zims récents, on index les titres dans une base xapian à part, la recherche pour les suggestions ce fait sur cette base, donc les mots peuvent se trouver n'importe où dans le titre.
    On ne fait plus de recherche fulltext pour les suggestions.
    Si les zims sont trop vieux (pas d'index des titres) on se reporte effectivement sur les titre commençant par le texte cherché.

    Matthieu Gautier|irc:starmad

  • # Kiwix

    Posté par  (site web personnel) . En réponse au journal Wikipédia en mode offline. Évalué à 10.

    Disclamer : Je suis le développeur principal et mainteneur du projet kiwix depuis quelques années (sans en être le créateur).

    La recherche dans les zim est clairement un point à améliorer.
    Et ça tombe bien on y travaille.

    On a fait pas mal d'améliorations sur le projet libzim qui est la bibliothèque bas-niveau pour lire et créer des zim (et donc indexer et rechercher dans les zims).

    Il y a une nouvelle version de libzim sortie il y a peu qui devrait pas mal améliorer la situation. Malheureusement, on est un peu bloqué avec la release de libkiwix qui prend un peu plus de temps. Du coup il n'y a pas eu de release des outils haut-niveau et les améliorations ne sont pas visible.
    Je vous invite à tester avec les nightlies : https://download.kiwix.org/nightly/ et remonter vous problèmes en ouvrant des bugs sur github.

    Au passage, WebArchive utilise des zim et la libzim pour les lire. Si il s'en sort mieux avec la recherche, on kiwix-desktop devrait y arriver aussi puisqu'il utilise les même données et algo.

    Si c’est utilisable, on est encore loin de l’ergonomie du site web (par exemple, je n’ai pas trouvé comment afficher une image en plus grand, ce dont souffrait également Kiwix).
    C’est un peu dommage d’avoir "moins bien que le site web" mais ça remplit son office.

    Tu peux utiliser l'outil kiwix-serve (dans https://github.com/kiwix/kiwix-tools) pour lancer un serveur local. En utilisant ton navigateur préféré, tu devrait arriver à afficher une image en grand (avec une résolution limitée toutefois, tu es limité à ce qui est dans le zim).

    Par contre, je n’ai toujours pas trouvé comment mettre à jour mon fichier .zim régulièrement sans tout retélécharger. Peut-être qu’un wget -C avec l’URL ad-hoc pourrait le faire mais je n’ai pas encore trouvé.

    Autre point noir du projet.
    Ça fait longtemps qu'on en parle mais on s'y est pas encore attelé. Et c'est un sujet pas si simple que ça. Ne serait-ce parce qu'on veut que ça soit transparent pour l'utilisateur (à l'exception du temps de téléchargement), que ça fonctionne avec tout nos outils (kiwix-desktop utilise aria2 en interne pour télécharger mais kiwix-android et kiwix-ios/macos utilisent leur propre solution) et que ça se déploie assez facilement sur nos miroirs et sans exploser nos disques (on en est à plus de 7To et on ne garde que les deux dernières versions de chaque zim)


    Enfin, pour donner un peu de contexte. Je suis pas loin d'être la seule personne payée pour travailler sur le projet kiwix (en tous cas la partie C++ et client) et je travaille pour le projet que 2 jours par semaine. On prend occasionnellement des prestas (dont un régulièrement depuis peu (hourra!)) pour des projets en particulier mais en moyenne sur les dernière années, on doit être à un mi-temps payé pour travailler sur l'ensemble des projets. Le reste des développements est fait pas des contributeurs bénévoles (un grand merci à eux!)
    Du coup vous êtes les bienvenus pour contribuer si vous avez du temps libre. Je me ferai un plaisir de reviewer votre code :D

    Matthieu Gautier|irc:starmad

  • [^] # Re: Perf

    Posté par  (site web personnel) . En réponse au journal la rouille et la comtesse. Évalué à 4.

    À noter qu'on peut demander à cargo de ne PAS compiler justement :
    cargo check

    Ça compile pas, c'est plus rapide et comme le nom l'indique ça permet quand même de vérifier son code.

    Matthieu Gautier|irc:starmad

  • [^] # Re: Thonny

    Posté par  (site web personnel) . En réponse au message EDI pour initiation Python ?. Évalué à 4. Dernière modification le 04 octobre 2021 à 16:12.

    Je plusois pour Thonny.
    De plus il est disponible sur toutes les plateformes et l'installateur Windows installe aussi python. Ce qui simplifie l'installation par les élèves sur leur ordi perso.

    Et le débugueur est très puissant pour faire du pas à pas. Ça explicite très bien les étapes que fait python pour exécuter le programme (même pour les lignes "complexes")

    Matthieu Gautier|irc:starmad

  • [^] # Re: À propos de ton changement d'avis sur le sujet

    Posté par  (site web personnel) . En réponse au journal [HS] Quand quelqu'un vous parle de liberté.... Évalué à 6.

    Wikipedia nous dit qu'il y a 1450 membres. https://fr.wikipedia.org/wiki/HMS_Queen_Elizabeth_(R08)

    Soit 6,8%

    En comparaison, le Charles de Gaulle a vu 1046 membres sur 1760 contaminés (soit 60%)

    Remarque, il parait qu'il y a des catapultes sur les porte-avions… peut être qu'ils ont catapultés les malades sur les autres navires ?

    Je sais pas comment ils ont fait, mais la deuxième ligne de l'article c'est :

    Several other warships in the fleet accompanying it are also affected.

    Matthieu Gautier|irc:starmad