SPIP

SPIP un jour, SPIP toujours ... Une part de manuel, une part de totomatique sur ce compte de short-blogging.

  • DMS to Decimal
    https://www.apsalin.com/dms-to-decimal

    Convertisseur de coordonnées géographiques DMS vers décimale

    DMS and Decimal are geographic coordinate (Latidude, Longitude). Decimal uses a signle decimal number. For example: (35.745547, -120.725044). DMS stands for Degrees, Minutes and Seconds and uses single natutal numbers for the degrees and the minutes, and a natural or decimal number for the seconds. For example: (35 44 43.97 N, 120 43 30.16 W) or (35° 44’ 43.97" N, 120° 43’ 30.16" W).

    #coordonnées #DMS #décimal #géolocalisation #convertisseur

  • Ça fait une petite semaine que je joue avec Stable Diffusion (avec DiffusionBee sur Mac). Quelques idées :

    – il faut vraiment se rendre compte à quel point ça commence déjà à être exploitable dans un cadre professionnel ; je ne suis pas certain que ça puisse déjà remplacer un·e illustrateur·ice dans les situations où, réellement, on paie un·e illustrateur·ice (réaliser la production finale) ; mais pour tous ces moments du boulot où de toute façon on « bidouillait » pour faire des scénarios, des proof of concept, sans passer par un·e pro du dessin (perso je faisais parfois moi-même des petits croquis aquarellés, juste pour donner une idée au client ; cette semaine j’ai monté quelques images réalisées avec Stable Diffusion, ça m’a pris dix fois moins de temps et ça rend vachement mieux)… ;

    – les progrès sont juste fulgurants ; ça faisait très longtemps que je n’avais pas été confronté à une évolution technologique tellement rapide qu’elle semble « magique » (je parle de ces moments, très rares, où je vois réellement quelque chose se produire sur mon ordinateur, que je n’imaginais même pas techniquement possible avant).

    – ce que je veux dire ici, c’est que les productions AI sont déjà souvent exploitables dans les situations où, de toute façon, il n’y avait pas réellement un marché professionnel pour ces productions. Mais qu’à la vitesse où ça va, très bientôt ce sera largement exploitable pour un produit final, en concurrence directe avec la production qui, normalement, demande un travail spécifiquement rémunéré.

    – les illustrateur·ices vont prendre très cher, et très vite : il faut vraiment envisager tout de suite la reconversion, parce que c’est pas en dessinant des personnages et des scénettes qu’il va encore y avoir moyen de vivre : même les gens avec une identité graphique identifiée, je pense que ça va être difficile. Pour les autres (pour qui c’est déjà pas facile), je crains que là c’est mort. Après quelques heures avec Stable Diffusion, j’ai déjà produit en quelques minutes une dizaine de personnages illustrés totalement crédibles et parfaitement utilisables pour un jeu en ligne, par exemple : alors certes de mon côté je n’en ai pas l’utilité (pour l’instant), mais ça veut dire que ça c’est quasiment plus un marché pour les vrais gens qui font des vrais dessins. À quel moment l’édition jeunesse va basculer ? Ben à mon avis ça va arriver très très vite, sans doute en commençant par l’entrée de gamme (mais la disparition du « tout venant » finit par assécher la possibilité de survie du qualitatif).

    – je lis que non, c’est pas la disparition du métier, c’est juste une évolution : il faudra travailler autrement, car maîtriser ces outils avec goût et savoir-faire restera un métier. Certainement, mais ce métier existe déjà, il est déjà largement saturé, c’est le métier de graphiste (les graphistes ne sont pas des illustrateur·ices, il·elles ne dessinent pas), qui désormais pourra se passer des illustrateur·ices et largement réaliser le poduit final en dictant ses ordres à une AI plutôt qu’en payant quelqu’un.

    – c’est pas la peine d’en faire une question morale (« ah oui mais il suffit de refuser ») : c’est un marché déjà difficile, les gens y sont largement des prestataires indépendants, ça va être terrible, on a une technologie qui progresse à une vitesse sidérante, et qui va percuter de plein fouet un milieu de travailleurs indépendants déjà souvent en limite de paupérisation ;

    – ne pas compter sur le droit pour protéger le métier traditionnel. Je vois bien qu’il y a des histoires de propriété intellectuelle en ce moment, ça joue sur les illustrateur·ices déjà établis dont on utilise la production pour entraîner les modèles, mais c’est temporaire, à mon avis ça va se résoudre rapidement, et il n’y aura aucun moyen de poursuivre des productions par AI sur la base du plagiat (il est très difficile de poursuivre quelqu’un qui produit dans « le même style que » s’il n’y a pas plagiat direct). Et comme c’est un milieu de petits producteurs indépendants, il n’y aura même pas d’outils de financements « socialisés » façon racket des ayants-droits de la musique.

    • Oui, c’est pour ça que je parle d’abord de l’« entrée de gamme », le « tout venant ». Mais ces « boulots alimentaires » sont ceux qui font (sur)vivre l’immense majorité des professionnels dans l’illustration.

      Et même les gens reconnus, je ne suis pas certain qu’ils y seraient parvenus sans passer par ces boulots alimentaires avant de devenir des noms, ni même s’ils n’ont pas encore besoin des boulots alimentaires en plus de la création plus créative… Si tu assèches le « tout venant », l’alimentaire, je crains même que ça devienne compliqué de faire émerger des noms reconnus, parce qu’il n’y aura plus vraiment moyen d’« entrer » dans la profession.

      Et pour préciser : je ne vois pas le problème arriver « dans quelques années ». Je le vois arriver maintenant. D’ici un an, les « boulots alimentaires » des illustrateurs, je pense que ça va déjà être compliqué. (En plus je suis déjà pessimiste en jouant avec Stable Diffusion : les progrès d’une version à l’autre de Midjourney sont encore plus invraisemblables.)

    • Alors pour qu’on se comprenne bien, « tout venant » et « entrée de gamme », je parle tout de même pas de « persos à la con » non plus : je parle d’un type de maison d’édition, qui ne tiendrait pas particulièrement à continuer à travailler avec des êtres humains (par conviction, pour son modèle économique, pour son image…) ; mais la qualité des images produites est déjà difficilement qualifiable de « tout venant ». Quelques images Midjourney trouvées sur Prompthero par exemple :
      https://prompthero.com/midjourney-prompts

      Je veux dire : si ta pratique professionnelle reposes sur le fait que tu parviens à produire quelque chose de ce niveau en peinture numérique, voilà : il y a déjà une IA qui produit ça en quelques secondes.

    • Oui mais pour moi ça c’est des « persos à la con », je veux dire par là que une personne qui saurait faire ça à la main, bah oui ya une qualité de réalisation, mais il n’y a à peu près aucune originalité, aucune création, c’est le type de choses qu’on voit depuis 40 ans dans les jeux de rôles etc puis dans des millions de posts de deviantart ya 15 ans. Donc bah oui ya clairement des éditeurs, des domaines qui n’utilisent que ce genre d’illustrations (les jeux de société aussi tiens) et qui peuvent/vont se « contenter » de ça.

    • Parce que ces modèles sont largement entraînés sur les bibliothèques en ligne à la DeviantArt (je suspecte que les « problèmes légaux » évoqués avec la version 2.0 de Stable Diffusion viennent de là), et parce que les gens qui postent sur ces sites d’AI pensent que c’est ça qui plaît (puisque c’est ce qui leur plaît).

      Mais franchement, faire le pari de l’originalité et de l’intention, alors que cela reste des outils eux-mêmes manipulés par des humains, je n’y crois pas. On aura des êtres humains qui vont se mettre à produire des images originales avec ces outils. Mais ce n’est plus des « illustrateurs », ça me semble plus proche du métier de graphiste (avoir des idées, du goût, une culture visuelle, justement une originalité, mais sans forcément savoir dessiner/illustrer).

      Et encore une fois, si tu retires le tout-venant, les boulots alimentaires et les illustrations pas-super-originales, ça devient très difficile d’en vivre pour la plupart des gens dont c’est actuellement le métier. Si tu regardes les images qui t’entourent, dans les journaux, dans le journal de la mairie, les bouquins scolaires, la « communication visuelle » (d’entreprise, publique, humanitaire…), etc., c’est pas super-glorieux (ni honteux, hein), mais surtout c’est énormément de travail en permanence qui fait vivre énormément de monde, dans chaque coin du pays, et franchement, l’essentiel est faisable avec une AI en quelques lignes de texte. Je pense que ça va devenir très difficile pour tous ces types de boulots.

    • Les traducteurs et traductrices ont-elles souffert avec DeepL ? Question honnête car je n’ai pas idée de la réponse.

    • @fil un client m’a dit qu’à priori il prévoyait de traduire en anglais ses articles (qui peuvent être longs) avec deepl à recoller dans des vrais articles SPIP ensuite, car c’était largement exploitable, donc sans traduire lui-même ou par des gens payés pour ça… du coup je suppose que oui une partie des traductions passent par là maintenant… (mais un peu comme pour les illustrations on parle là de trucs « rapidos »)

    • Il y a une caractéristique différente avec les illustrations par AI : il n’est pas nécessaire de savoir faire le job (illustrer) pour juger de la qualité. Je peux sortir 10 illustrations en quelques poignées de secondes, choisir celle qui va bien, celle qui n’a pas trois bras, etc., et je peux juger que c’est exploitable. Je suis en situation de juger de la qualité du résultat.

      Avec une traduction automatique, je suis à poil : je lance la traduction et je n’ai pas de moyen de vérifier que c’est correct. Donc le seul moyen de garantir la qualité du résultat, c’est de passer par une traduction humaine. Ce sont deux situations automatisées totalement différentes : dans un cas je suis parfaitement capable de juger que le résultat est satisfaisant, dans l’autre je n’en ai aucun. Et dans un cadre professionnel, c’est un critère particulièrement important.

      Après, je pense que ça joue tout de même, parce qu’il y a des situations où certes je ne peux pas garantir la qualité fine de la traduction (est-ce que c’est élégant, est-ce que c’est le meilleur choix…), mais où, si je ne peux traduire moi-même, je peux quand même juger que ce n’est pas en train de raconter strictement n’importe quoi. Ça doit être le cas de l’anglais pour pas mal de gens (en gros ce que dit Rasta). (Et sinon, est-ce que j’ai déjà vu des institutions culturelles ajouter un bouton « Google Translate » sur leur site Web au lieu de proposer de véritables versions multilingues de leur site ? Hum je voudrais pas cafter…)

      Mais cette histoire d’enjeu est important à considérer, parce que ça rend la comparaison avec d’autres automatisations très injuste. Je peux beaucoup m’amuser à produire des dizaines d’images avec des gens à trois bras, les yeux qui déconnent, les mains qui ne ressemblent à rien, les épaules au niveau du nombril… Mais je m’en fous des erreurs, parce que dans le lot je vais choisir l’image qui n’a pas de problème, et les image ratées n’ont aucun impact sur ce que je vais sortir au final. Alors qu’une erreur dans une traduction, elle restera dans la version finale publiée. Mais surtout : une voiture qui se conduit toute seul va tuer des gens. Un algorithme qui envoie les gens en prison est très problématique, et les « erreurs » sont (devraient être) des injustices insupportables. Et une AI qui devrait détecter des maladies graves qui se tromperait, ben c’est un peu chiant aussi… Alors que les erreurs et les fautes de goût d’une AI de dessin n’ont aucun impact dans le résultat final, même dans un cadre professionnel.

    • Tant qu’à faire, l’interview de David Holz chez Forbes:

      Midjourney Founder David Holz On The Impact Of AI On Art, Imagination And The Creative Economy

      Did you seek consent from living artists or work still under copyright?

      No. There isn’t really a way to get a hundred million images and know where they’re coming from. It would be cool if images had metadata embedded in them about the copyright owner or something. But that’s not a thing; there’s not a registry. There’s no way to find a picture on the Internet, and then automatically trace it to an owner and then have any way of doing anything to authenticate it.

      Can artists opt out of being including in your data training model?

      We’re looking at that. The challenge now is finding out what the rules are, and how to figure out if a person is really the artist of a particular work or just putting their name on it. We haven’t encountered anyone who wants their name taken out of the data set that we could actually find in the data set.

      Can artists opt out of being named in prompts?

      Not right now. We’re looking at that. Again, we’d have to find a way to authenticate those requests, which can get complicated.

      What do you say to commercial artists concerned this will destroy their livelihood? At a certain point, why would an art director hire an illustrator to produce work like concept art, production design, backgrounds – those sorts of things – when they can just enter prompts and get useful output much more quickly and at much lower cost?

      It’s a lot of work still. It’s not just like “make me a background.” It might be ten times less work, but it is way more work than than a manager is going to do.

      I think there’s kind of two ways this could go. One way is to try to provide the same level of content that people consume at a lower price, right? And the other way to go about it is to build wildly better content at the prices that we’re already willing to spend. I find that most people, if they’re already spending money, and you have the choice between wildly better content or cheaper content, actually choose wildly better content. The market has already established a price that people are willing to pay.

      I think that some people will try to cut artists out. They will try to make something similar at a lower cost, and I think they will fail in the market. I think the market will go towards higher quality, more creativity, and vastly more sophisticated, diverse and deep content. And the people who actually are able to use like the artists and use the tools to do that are the ones who are going to win.

      These technologies actually create a much deeper appreciation and literacy in the visual medium. You might actually have the demand, outstrip the ability to produce at that level, and then maybe you’ll actually be raising the salaries of artists. It could be weird, but that’s what’s going to happen. The pace of that demand increase for both quality and diversity will lead to some wonderful and unexpected projects getting made.

      A generation of students graduated art schools, many of them heavily in debt, counting on relatively well-paid jobs in entertainment production, videogame production, commercial art and so on. How does the emergence of AI text-to-image platforms impact their future?

      I think some people will try to cut costs, and some people will try to expand ambitions. I think the people who expand ambitions will still be paying all those same salaries, and the people who try to cut costs, I think will fail.

      Ai is typically used at scale for stuff like call centers or checking bags at airports and the sort of the jobs that people don’t really care to do. And the value proposition is that it frees people up to do more rewarding, more interesting kinds of jobs. But art jobs are rewarding and interesting. People work their entire lives and develop their skills to get these kind of jobs. Why would you point this technology at that at that level of the economy as a as kind of a business focus and priority for the stuff that you’re doing?

      Personally, I’m not. My stuff is not made for professional artists. If they like to use it, then that is great. My stuff is made for like people who, like, there’s this woman in Hong Kong, and she came to me, and she goes, “The one thing in Hong Kong that your parents never want you to be is an artist, and I’m a banker now. I’m living a good banker life. But with Midjourney now I’m actually starting to get a taste of this experience of being the person I actually wanted to be.” Or a guy at the truck stop who’s making his own baseball cards with wild Japanese styles, just for fun. It’s made for those people, because, like most people, they don’t ever get to do these things.

      It’s important to emphasize that this is not about art. This is about imagination. Imagination is sometimes used for art but it’s often not. Most of the images created on Midjourney aren’t being used professionally. They aren’t even being shared. They’re just being used for these other purposes, these very human needs.

      Nevertheless, the output of your product is imagery, which has commercial value in professional context in addition to all of those other properties. And this is very disruptive of that economy.

      I think it’s like we’re making a boat, and somebody can race with the boat, but it doesn’t mean that the boat’s about racing. If you use the boat to race then maybe like, yeah, sure. In that moment it is. But the human side really matters, and I think that we’re not… We want to make pictures look pretty. Like how flowers try to be beautiful for the bees. It’s the beauty of nature, not the beauty of art. There’s no intention in the machine. And our intention has nothing to do with art. We want the world to be more imaginative and we would rather make beautiful things than ugly things.

      Do you believe that any government body has jurisdiction or authority to regulate this technology? And if so, do you think they should?

      I don’t know. Regulation is interesting. You have to balance the freedom to do something with the freedom to be protected. The technology itself isn’t the problem. It’s like water. Water can be dangerous, you can drown in it. But it’s also essential. We don’t want to ban water just to avoid the dangerous parts.

      Well, we do want to be sure our water is clean.

      Yes, that’s true.

  • GitHub - ovh/venom : 🐍 Manage and run your integration tests with efficiency - Venom run executors (script, HTTP Request, web, imap, etc... ) and assertions
    https://github.com/ovh/venom

    Un outil CLI qui permet de faire des « tests utilisateurs » pour une application web avec gestion des retours selon différents protocoles (http, imap, readfile...), de les enchaîner en récupérant les résultats d’une étape pour les utiliser comme input de l’étape suivante...
    Les tests sont écrits sous forme de fichiers yaml, peuvent être lancés en parallèles.
    Open source (langage principal : GO) : binaire fourni pour Linux / Windows / Mac + Docker

    Qui n’a pas eu le besoin d’exécuter un VRAI test d’intégration ?
    1 - Inscription sur une application
    2 - Vérifier le mail envoyé par l’application
    3 - Le mail contient une URL, ouvrir cette URL pour valider l’inscription
    4 - S’authentifier avec le nouveau compte créé
    5 - Naviguer sur l’application Web
    6 - Vérifier en DB, ou sur votre API que les données sont cohérentes

    Venom répond à 5 problématiques :
    – lisibilité des scénarios de tests
    – multi-protocoles
    – résultats xUnit compréhensibles
    – « as-code », les tests sont sur vos dépôts git
    – extensibilité via les exécuteurs (mail, rest, web, kafka, redis, ...)

    Voir la présentation (simple mais bluffante !) sur https://www.youtube.com/watch?v=RGy-xbTs8_s

    #venom #test_utilisateur #unit_test #SPIP #yaml

  • Performance #web : l’intégrateur, ce héros

    J’ai envie de pousser un concept absolument nouveau : l’amélioration progressive (ah pardon on me dit que ça date de 2003). Au minimum c’est la clé d’un premier affichage éclair car on peut se passer de #JavaScript quelques secondes.
    Puis abordons le gros sujet des images : comment les charger rapidement, sans toucher aux fichiers eux-même ? Il y a eu quelques nouveautés ces deux dernières années, mais on va voir que même sur des choses que l’on peut croire acquises comme le lazy loading, il y a quelques pièges qui peuvent être contre-productifs.
    Enfin terminons avec un petit résumé sur les polices : elles tapent dans l’œil mais il faut en garder le contrôle si l’on veut un bon CLS (une des métriques Google dont on va reparler).

    Article intéressant sur les optimisations au moment de l’#intégration web. Ça parle (un peu) performance mais surtout #UX, #ergonomie, #HTML, #CSS, #javascript...

    https://www.24joursdeweb.fr/2021/performance-web-lintegrateur-ce-heros

    • Ya des gens qui trouvent ça enthousiasmant, comme plein de techniciens qui sont à fond dans leur petite spécialité technique, mais moi ça me terrifie, ça devrait pas exister du temps à passer sur ça :D

      Et surtout encore moins devoir s’en préoccuper à chaque intégration (plutôt que ce soit les gens qui font le CMS, langage de template, plugins de lazy, etc, et qu’ensuite pour un site précis à intégrer on n’y pense presque plus).

    • Oui, l’article est intéressant en tant que ressources, pour choisir les plugins qu’on utilise (par ex Adaptive images qui gère le WebP et le lazy loading nativement), faire ses boilerplates persos (préchargement des polices et font-display: swap;), les optimisations côté CMS (chargement JS en asynchrone)... etc, évidemment dans l’idée d’automatiser au maximum.

      Et aussi, se rendre compte que #SPIP gère une bonne partie de tout ça <3

  • voilà plus d’un an que je n’ai pas écrit sur @seenthis
    Alors que plein de gens migrent de twitter à Mastodon, je me demande quelle a été la dynamique de cet autre site de microblogging, pionnier, qui a un moment donné jouait pour moi un rôle de source d’information très utile. Et que d’une certaine manière on peut bien comparer à Mastodon, sf que c’est moins gros.
    Mais beaucoup moins maintenant, puisque je ne reçois plus de notification à part de @gonzo signe que les comptes que je suivais doivent être tombés en léthargie. Le fait est que twitter est devenu pour moi un espace plus riche, beaucoup plus que FB d’ailleurs.
    Quant au stockage/partage de mes signets ou articles repérés, ce que Seenthis faisait très bien, en fait aujourd’hui je le gère directement dans zotero.
    Donc, d’un côté, des flux moins importants et moins riches, de l’autre une fonction de partage que je gère ailleurs.
    Je me demande si d’autres usagers ont le même sentiment que moi ? Est-ce que @Seenthis a des stats sur l’évolution des usages ?

    • Sur les sujets qui t’intéressent plus particulièrement, je te suggère de suivre :
      @loutre, qui est particulièrement active sur la Palestine,
      @kassem, plus « multisujets », mais avec une expertise naturelle sur la Palestine et le Liban notamment,
      @simplicissimus sur tous les sujets, et qui s’intéresse et documente avec précision les questions internationales…

      Avec ces trois-là, via leurs messages propres et leurs re-partages, tu retrouveras une activité riche, et toujours qualitative, sur Seenthis.

    • Sur la question de pourquoi Seenthis plutôt qu’un autre réseau :

      – d’abord la qualité des participants, et la (quasi) absence de tarés racistes, masculinistes, etc. Sur Mastodon je ne sais pas, par contre sur Twitter, l’omniprésence des tarés sur absolument tous les sujets, leur façon de balancer des shitposts sur absolument tous les threads progressistes, c’est insupportable.

      – la qualité/possibilité de construire des savoirs collectivement. Pour moi c’est le cœur de Seenthis, et ça reste une caractéristique qui existe. Sur Twitter c’est proprement impossible, parce que les « threads » ne sont intéressants que sur les messages du posteur d’origine, dès qu’on passe aux « réponses » c’est totalement mort. Sur Seenthis, les réponses des autres participant·es enrichissent toujours le message initial, avec plus d’infos, une contribution à la thématisation…

      – dans la logique du premier : encore une certaine capacité à la contradiction et à la discussion. C’est forcément imparfait, on a perdu pas mal de monde qui ont mal pris la contradiction, mais en général on arrive à échanger assez longuement avant de se foutre sur la gueule (sur le Covid, on a commencé à sérieusement bloquer, mais je pense que ça n’a pas été immédiat, on a tenu un assez long moment à échanger de manière constructive).

      – la possibilité de poster des messages sans limite de longueur. Sur Mastodon je ne sais pas comment ça se passe, mais sur Twitter on est obligés de passer par un service externe à chaque fois qu’on veut lire un truc intéressant, c’est un non-sens total.

      – la modération qui est chez nous. Et comme on a un nombre d’actifs limité, c’est assez cosy comme ambiance. Sur Twitter c’était déjà totalement merdique bien avant l’arrivée de Musk. Sur Mastodon, j’ai lu ce matin le fait que le système décentralisé posait de grosses difficultés, rendant la question de la modération problématique et peu lisible pour les auteur·ices.

    • Je n’y ai pas pensé parce qu’initialement ce n’est pas directement ton sujet de prédilection, mais puisque tu t’intéresses à une question concernant la vie sociale des réseaux, tu peux aussi suivre @hlc, dont c’est ici l’activité centrale.

      Sur les questions migratoires et les réfugiés, @cdb_77 fait une veille invraisembable (attention : avec elle tu vas avoir énormément à lire…).

      Si tu veux avoir une sorte de « best of » chaque matin des posts qui ont bien été partagés, il faut suivre le compte de notre automate @7h36.

    • Retour à ce jour, de mon côté aussi, à SeenThis, avec les mêmes interrogations, mais l’envie de revenir sur ce microblogging que j’ai trouvé très riche dans sa forme, mais pour lequel les partages de ressources pédagogiques m’avaient semblé moins prendre.

      Pour l’heure, la migration de Twitter à Mastodon ne réussit pas à me convaincre totalement, si ce n’est la différence entre « accueil », « fil public local » et « fil public global », qui peut apporter un réel plus, à condition d’être sur une instance qui regroupe réellement des gens au même centre d’intérêt que celui qu’on suit. La crainte que si réellement migration il y a, le bruit reste très important. Ce qui me semble être le « plus » de SeenThis, car les posts à créer étant plus chronophages, le bruit est très réduit.

    • Je vois que ça discute beaucoup sur moi et mes posts :-)
      Eh oui, désolée si c’est beaucoup pour certain·es, mais je continue à utiliser (et c’est peut-être un peu la réponse à la question de @rumor à laquelle je réponds ici) :
      – twitter plutôt pour prendre et ce qui m’intéresse et je veux archiver, je balance sur seenthis —> mais bientôt Mastodon, je n’ai pas encore fait le pas...
      – seenthis = mon archive personnel, mais public d’articles de presse ou autres sources disons non forcément académiques. J’utilise pour partager des fois des fils de discussion avec des personnes qui me demandent des infos, pour moi même et notamment pour préparer mes cours et/ou conférences. Je sais, souvent indirectement, que des personnes savent qu’il y a des ressources (notamment sur migrations/frontières, en effet @arno) qui peuvent consulter
      – zotero surtout pour des articles et autres documents plutôt académiques (pour la petite histoire, ma base de données « migrations/frontières » sur zotero a 4355 entrées (à bon entendeur...)

      Et super le retour de @ville_en sur seenthis !! Tu m’avais manqué :-)

    • J’ai crée mon compte sur Seenthis en 2021 après avoir testé différents réseaux. C’est celui qui me correspond le mieux par sa facilité d’utilisation, la possibilité de partager très aisément ses lectures est très agréable.
      C’est un outil qui m’est devenu indispensable pour la veille documentaire, le flux rss me permet de proposer à mes collègues de me suivre sans pour autant avoir un compte eux-mêmes et c’est un atout considérable.

      Je reconnais que je néglige un peu l’aspect « social » en ne commentant que très peu les publications que je lis mais j’apprécie la richesse et la qualité des échanges.

      En tant que professeur documentaliste, le système de recherche par mots-clés est très naturel, c’est assez formidable de pouvoir suivre des thèmes et des sites aussi facilement.

      C’est aussi un moyen d’éviter la surcharge informationnelle que peuvent générer d’autres types de réseaux.

      C’est l’occasion pour moi de remercier tous ceux et celles qui gèrent cette plateforme qui mérite d’être davantage connue et reconnue !

    • (voilà plusieurs jours que je me pose la question de créer une instance mastodon, mais Swami m’a rappelé opportunément la seconde raison pour laquelle je n’avais pas sauté le pas il y a quelques années ; de plus, je me dis qu’il serait sans doute préférable d’améliorer SeenThis... mais j’avoue avoir pris goût à la lecture de Twitter... alors pourquoi ne pas essayer Mastodon... mais... bref... à suivre... dans l’immédiat je continue sur la piste de « comment mieux publier nos images d’accompagnement sur SeenThis »...)

    • Il y a quelques comptes problématiques sur seenthis aussi, comme en atteste la mésaventure qu’a récemment connue @7h36, cf. https://seenthis.net/messages/977427. Certes, il y en a peu, mais c’est uniquement parce que seenthis est petit. Pas parce qu’il faut écrire long et argumenter ; ça, ils savent faire.

      En tout cas, ne faisons pas comme si seenthis avait une solution.

      (Pas plus que mastodon… pour l’anecdote, j’ai supprimé mon petit compte mastodon perso il y a quelques années, quand une instance sur laquelle je me trouvais a décidé de bloquer une autre instance sur laquelle j’avais des contacts, pour une raison tout à fait étrangère à la fois à mon activité et à celle de mes contacts.)

    • Un aspect qui me semble important : je vois beaucoup de gens qui prétendent que « ce que veulent les gens » sur Twitter et Mastodon, c’est de l’horizontalité. Et que ce que ferait Musk, justement, c’est de ne pas comprendre cette demande d’horizontalité.

      Or je pense que c’est faux : les gens vont sur Twitter parce que c’est là que tout le monde est. Ils n’iront sur Mastodon que s’il s’y trouve suffisamment de monde. Or à partir du moment où l’on a un réseau hyper-fréquenté, on a forcément les tarés qui débarquent en nombre suffisant pour pouvoir poster un shitpost dans chaque message, et interdire ainsi toute possibilité de discussion. De ce fait, Twitter n’est pas du tout un réseau horizontal, au sens où il n’y a pas de discussions : il y a des gens qui postent des threads tout à fait passionnants, et c’est suivi de « forums » insupportables à lire. La seule chance d’avoir une visibilité en répondant à un thread, c’est que l’auteur initial décide de repartager cette réponse à son propre thread.

      C’est comme les forums sur les sites Web : j’ai toujours été partisan de ces forums sous les articles, dès qu’on a conçu SPIP pour uZine, la présence de forums publics sous tous les articles était une des fonctionnalités « de base ». Et on a eu de très beaux échanges dans ces forums. Par contre, dès que les forums passent sur des sites qui atteignent un public conséquent, c’est mort : c’est shitpost sur shitpost, des macronards et des fachos qui viennent pourrir absolument tout, partout et tout le temps, ou des braves abrutis qui ont appris que « discuter » en public, c’était reproduire la merdasse à la Hanouna. Je suis toujours admiratif de voir Plenel défendre non seulement les blogs adhérents, mais aussi les forums sous les articles, avec les mêmes arguments que nous avions à l’époque pour uZine et pour SPIP, tout en reconnaissant que c’est très problématique.

      J’ai lu récemment un thread de quelqu’un qui faisait remarquer que les fachos étaient sur Twitter non pas pour la « liberté d’expression », mais parce que c’est le principal endroit où ils peuvent aller pourrir les gens de gauche. Des réseaux de fachos fréquentés par les fachos, il y en a déjà, c’est pas un problème. Ce qui les attire sur Twitter, c’est pas d’y être lu par d’autres fachos, c’est avant tout qu’ils vont pouvoir aller poster des shitpost pour faire chier les progressistes (« to own the libs »).

      De fait, je sais bien que Seenthis est avant tout protégé par sa faible participation (même s’il a, aussi quelques caractéristiques intéressantes, comme le fait que les réponses sont présentées au même niveau que le message d’origine, ou encore que le système de « petits triangles » avant les URL favorise l’agrégation des discussions, et tente de décourager l’auto-promo qui pique les référencements des autres…). La faible participation, l’audience limitée (mais pas nulle), font qu’on n’est pas une cible intéressante pour les fafs et les macronards, puisque ce n’est pas le bon endroit pour aller « faire chier du gaucho ».

      Et à l’inverse : les gens qui veulent aller sur un réseau avec pour critère qu’il y ait un maximum de monde, se condamnent à renoncer à toute forme d’horizontalité dans les échanges, parce que la seule façon de rendre la lecture de ces trucs supportables, c’est de cacher les forums sous le tapis (ce que fait Twitter) en rendant les « réponses » extrêmement moins visibles que le post d’origine (c’est-à-dire en réduisant les possibilités de construction d’intelligence collective).

      C’est contre-intuitif, mais : plus la fréquentation sera importante, et moins un réseau social sera « horizontal ». Plus il sera nécessaire de planquer les shitposts en planquant les forums. Et plus il sera nécessaire d’avoir des algorithmes pour hiérarchiser les messages.

      (Une autre façon de dire la même chose, c’est de constater que les gens vont sur des gros réseaux pour prétendre échapper aux bulles de filtre, dénoncent ces bulles de filtres, alors que justement plus un réseau est gros et plus il y a besoin de créer des bulles de filtre. Les gens qui dénoncent les bulles de filtre, si réellement ils étaient sur Twitter et Youtube sans ces bulles de filtres, ils seraient horrifiés et n’y retourneraient pas.)

    • @cdb_77 du coup j’ai une question « méthodologiqie » puisque tu utilises twitter comme outil de repérage de ressources avant de les signaler ici pour mémoire. Tu travailles sur téléphone pour twitter ou tu es sur ordi dès tes repérages ? Perso, qd j’identifie des ressources intéressantes je me les partage vers mon email avant de les intégrer dans zotero (où je mets tout, académiques et autres ressources doc). Mais s’il y avait un moyen de faire ces signalements directement dans @seenthis Seenthis via le téléphone, comme le permet la petite extension qui existe pour les navigateurs, ce serait génial.
      Parce que le matin je lis twitter comme l’autre lisait le journal, c’est ma prière du petit déjeuner qui ne peut s’encombrer d’un ordinateur...

    • Vous devez aussi l’avoir lu/vu :

      Le Mastodon(te) et l’oiseau bleu. – affordance.info
      https://affordance.framasoft.org/2022/11/le-mastodonte-et-loiseau-bleu

      Je crois qu’aujourd’hui la valeur d’un réseau social est non seulement définie par celles et ceux qui sont dedans, par celles et ceux qui en sont exclus … mais aussi et par toutes celles et ceux qui refusent d’y être et disposent des ressources pour s’efforcer de socialiser ailleurs et ce faisant, d’espérer amorcer quelque chose de neuf avec la responsabilité leur incombant d’au moins montrer que cela est … possible.

    • @rumor : j’utilise twitter sur ordi et tél et je fais comme toi : je me partage les ressources que j’identifie vers mon email et je mets sur seenthis et/ou zotero (mais la majorité du temps sur seenthis ce que je trouve sur twitter quand même)

    • Salut Salut,

      je me permets de ramener ma fraise sur la base d’observations que j’ai fait sur plusieurs réseaux.

      De mon expérience :
      Facebook/linkedin (et je crois insta, tik tok...mais pas sur j’ai pas vraiment essayé, c’est juste une opinion vu de loin) : la majorité des posts c’est matte mon style de vie comme il est ouf. Il n’y a pas vraiment de débat d’idées, un post, même pas forcément sérieux fait très vite (sur facebook, moins sur linkedin) l’objet de commentaires haineux, sexistes, fascistes...bref les gens se lâchent à coup de « bon sens » façon cnews...c’est délicieux (bon ok linkedin c’est différent c’est moins du bon sens que des posts de motivation à 2 balles...mais basé sur ton style de vie de ouf...et les commentaires sont généralement plus softs).

      Twitter : Beaucoup de débats. L’énorme majorité sont finalement peu documentés et/ou fouillés. En plus les règles sont bafouées (enfin je trouve). Sur l’autel du débat d’idées tu te dois d’accepter la pure liberté d’expression de l’autre...et effectivement les promoteurs d’extrême droite (mais pas que) en profite un max pour tirer la fenêtre d’overtom hyper à droite pour mieux imposer leurs idées dans la sphère journalistique et politique (qui adorent ce réseau).
      Les experts sont malheureusement noyés dans la masse...quand ils ne sont pas harcelés de commentaires dégueulassent également.

      Mastodon : Je pense aussi que tu peux vite te retrouver comme dans twitter si les utilisateurs augmentent. Cela dit la fenetre d’overtom actuelle est très anar, anticapitaliste, antinuke, et féministe (en tout cas si tu es sur une instance comme mamot et que tu te limites à quelques comptes bien choisis comme https://mamot.fr/web/@Khrys). L’avantage c’est que t’as pas de suggestions...donc tu peux rester dans ta bulle...mais j’ai déjà eu quelques interactions qui m’ont rappelé twitter mais c’est très rare...et tu peux les bloquer facilement (et j’espère que ça va pas augmenter avec l’arrivée massive de fugueurs d’Elon).

      Seenthis : Pendant longtemps je n’ai suivi que @rezo et @7h36 et rien qu’avec ces 2 comptes...tu prends cher en infos de qualité. Je me suis mis à suivre d’autres comptes au fil des échanges mais j’atteins mes limites de temps disponible pour tout consulter. L’énorme différence avec Masto c’est la qualité des échanges de débats...qui sont effectivement sans concessions et beaucoup plus fournis. Sans parler de l’archivage des dossiers etc...

      Je crains beaucoup l’arrivée de flopées de vénères trop à droite qui viendraient dégueuler des commentaires inintéressants pour tirer les fenêtres d’overtom de ces 2 derniers réseaux.

    • A vrai dire aucun 😉

      Mais si ta question est un tant soit peu sérieuse...😁 (suspense...)
      La pépite du net français pour les films de Kung Fu (mais pas que), se trouve ici :
      http://hkcinemagic.com/fr/main.asp ?
      et un forum
      http://forum.hkcinemagic.com/index.php ?
       !!!
      (que j’ai découvert que trop tard pour participer) (d’ailleurs ça compte comme réseau social un forum ?)

      Ce qui est un peu nul c’est que les gars ont plus vraiment le temps ni l’envie d’animer...

      Une grande perte pour cette passion 😔

  • Concepts de base des propriétés et valeurs logiques - CSS : Feuilles de style en cascade | MDN
    https://developer.mozilla.org/fr/docs/Web/CSS/CSS_Logical_Properties/Basic_concepts

    CSS Logical Properties (les propriétés logiques CSS) est un module CSS qui définit une correspondance logique vers les propriétés physiques de contrôle de la mise en page selon le sens de lecture et l’orientation du texte.

    Historiquement, CSS permettait de dimensionner des objets selon les dimensions physiques de l’écran. On pouvait alors décrire des boîtes avec une certaine largeur (width) et une certaine hauteur (height), positionner les éléments à partir du haut (top) et de la gauche (left), faire flotter les objets, créer des bordures, des marges, du remplissage (padding) en haut, à droite, en bas et à gauche (resp. top, right, bottom, left, etc.). La spécification sur les propriétés et valeurs logiques définit des correspondances entres ces valeurs physiques et des valeurs logiques, relatives au flux : start et end plutôt que left et right ou top et bottom.

    Voir aussi :
    – la page de la propriété writing-mode qui définit si les lignes d’un texte sont écrites horizontalement ou verticalement et la direction selon laquelle le bloc grandit
    – la page de référence des propriétés et valeurs : https://developer.mozilla.org/fr/docs/Web/CSS/CSS_Logical_Properties

    #CSS #logical_properties #rtl #sens_ecriture #propriétés_logiques_CSS #SPIP #multilinguisme

  • Ça va “brancher” chez Leaflet...

    Leaflet 1.9 released - Leaflet - a JavaScript library for interactive maps

    The v1.9 release is setting the stage for the first major version bump of Leaflet since 2016! A lot has changed since then, and it’s time for Leaflet to grow together with the web platform.

    After this release, we are branching off the 1.x code and putting it in maintenance mode — reserving potential 1.x releases only for critical bugfixes. Although version 2.0 is still far away and will take some time to take shape, we plan to make the following changes:

    – Dropping support for Internet Explorer.
    – Embracing modern JavaScript.
    – Standardized modules
    – Removing the Leaflet global

    https://leafletjs.com/2022/09/21/leaflet-1.9.0.html

    #leaflet #map

  • Commits Conventionnels
    https://www.conventionalcommits.org

    « Normer » le contenu des commits pour faciliter la relecture de l’historique d’un dev

    Le commit contient les éléments structurels suivants, permettant de communiquer à l’intention des utilisateurs de votre bibliothèque :
    fix: un commit de type fix corrige un bogue dans le code (cela est en corrélation avec PATCH en versioning sémantique).
    feat: un commit de type feat introduit une nouvelle fonctionnalité dans le code (cela est en corrélation avec MINOR en versioning sémantique).
    BREAKING CHANGE: un commit qui a dans le pied de page le mot clef BREAKING CHANGE :, ou ajoute un ! après le type/scope, introduit un changement cassant l’API (cela est en corrélation avec MAJOR en versioning sémantique). Un BREAKING CHANGE peut faire partie des commits de n’importe quel type.
    – Les types autre que fix: et feat: sont autorisés, par exemple @commitlint/config-conventional recommande build:, chore:, ci:, docs:, style:, refactor:, perf:, test:

    #git #commit #semver #feat #fix

  • Je viens de livrer un mini-site dont je suis super-content : 1622, Montpellier assiégé - Les 50 jours qui ont changé l’histoire de la ville
    https://musee.info/1622-Montpellier-assiege

    Je l’ai réalisé à la demande des Archives municipales de Montpellier, pour commémorer les 400 ans du siège de Montpellier par les troupes de Louis XIII. Sujet drôlement intéressant, et le mini-site regorge d’informations et des documents. (Tu peux y aller, c’est moult instructif.)

    Pour répondre à cette demande, j’ai donc proposé de réaliser cela avec ma propre plateforme « musee.info », initialement développée pour le site Fabre dans mon canapé du musée Fabre, le tout sous #SPIP :
    https://musee.info/Musee-Fabre
    et que j’ai désormais transformé en plateforme ouverte à d’autres clients.

    Le mini-site 1622, Montpellier assiégé est découpé en 7 séquences, largement constituées de formes longues. Parmi les formats plus originaux, il y a :
    – une visite guidée dans Montpellier vers 1550 au travers d’une gravure d’époque :
    https://musee.info/Montpellier-vers-1550
    – une carte animée des campagnes de Louis XIII contre les insurrections protestantes :
    https://musee.info/Les-campagnes-de-Louis-XIII-619
    – un plan interactif de Montpellier pendant le siège :
    https://musee.info/Plan-au-vray-de-la-ville-de-Montpellier
    – un plan interactif des armées en présence :
    https://musee.info/La-vraye-representation-du-siege
    – une chronologie du siège (jusqu’à 1100 coups de canon en une seule journée) :
    https://musee.info/Les-50-jours-du-siege

    Il y a aussi quelques gravures animées dans les formes longues. Le Harlan ou pourquoi on a de si belles places pour les terrasses des restaus dans le centre-ville. Et des gens avec leur tête dans un rond qui tourne sur lui-même, parce que pourquoi pas :
    https://musee.info/Les-acteurs-du-siege

    #shameless_autopromo #protestantisme #histoire #Montpellier

    • Y-a deux hébergeurs que j’ai réussi à éviter jusqu’alors, c’est AWS et AZURE. Et j’avoue que j’en suis bêtement fier.
      Ça héberge du Linux à priori, même si « quelle drôle d’idée ». Donc ça héberge aussi du SPIP.
      Mais à ma connaissance, ça coûte plus cher que chez les autres.
      (note que je suis tellement obtus, si ça s’trouve, il y a des appliances toutes prêtes pour héberger du LAMP administré sans s’enquiquiner avec la couche système... et je ne le sais pas... mais... j’ai même pas envie d’aller voir comment ils auraient pu concevoir ça...)

  • Ah, je sens que dans les prochains appels d’offre pour réaliser le moindre petit site Web ou table tactile, on va me demander de détailler le « plan de sobriété énergétique » de mon entreprise. (J’éteins le ventilateur quand je sors de mon bureau.)

    Note qu’il y a déjà régulièrement besoin de faire un petit topo sur comment que tu vas t’y prendre pour faire la chasse au gaspi, avec une tournure bien floue et vaguement foireuse (ce à quoi mon argument premier c’est que c’est du SPIP alors tu peux y aller ça y va les économies d’énergie à chaque hit). Mais le coup du « plan de sobriété énergétique » complet certifié sur contrat, je le sens bien, là.

    • Note 2 : dans le genre « demande à la mode mais en vrai on s’en cogne », il y a aussi déjà un paragraphe où tu dois expliquer comment tu vas respecter le RGPD (tout en posant un Google Tag Manager réclamé par la comm’), et un autre comme quoi ton site il va être accessible à 100% des gens ayant un handicap existant ou non encore répertorié (tout en répondant positivement à toute demande de slider animé en page d’accueil, voir de vidéo plein écran dès que les gens arrivent sur le site, et évidemment le popup « Acceptez-vous qu’on refile vos données de connexion à Google, Amazon et Pepsi ? », le petit jeu rigolo « cochez toutes les cases avec des montagnes » avant de pouvoir envoyer un mail, toutes joyeusetés exigées par le service comm’ et destinées à se débarasser des aveugles).

  • {par_ordre_liste...} - SPIP
    https://www.spip.net/fr_article6646.html#par_ordre_liste

    le critère de tri SPIP par_ordre_liste a un gros défaut : si on l’applique sur un ensemble d’éléments qui ne sont pas tous dans la #LISTE passée en 2ème paramètre, il affiche d’abord les éléments hors de la #LISTE puis ceux qui sont dedans.
    Exemple si on a 16 sites syndiqués dans la BDD :

    <BOUCLE_t(SYNDIC){par_ordre_liste id_syndic, #LISTE{14,16,13}}{id_syndic > 10}>

    retourne les sites dans l’ordre suivant : 11, 12, 15, 14, 16, 13
    La requête SQL passée est :
    SELECT * FROM spip_syndic AS syndic
    WHERE syndic.id_rubrique > 10
    ORDER BY FIELD (syndic.id_syndic, 14,16,13);

    Pour obtenir le résultat « naturellement attendu » (i.e. d’abord ceux de la liste puis les autres) il faut utiliser la requête SQL suivante :

    SELECT * FROM spip_syndic AS syndic
    WHERE syndic.id_rubrique > 10
    ORDER BY IF (FIELD(syndic.id_syndic, 14,16,13)=0,1,0), FIELD(syndic.id_syndic,14,16,13);

    D’après https://dba.stackexchange.com/questions/109120/how-does-order-by-field-in-mysql-work-internally pour la très astucieuse utilisation du IF (FIELD ... en premier critère de la requète

    #ORDER_BY_FIELD #ORDER #SPIP #par_ordre_liste #MySQL

  • Toute ma reconnaissance à la communauté SPIP, grâce à laquelle j’ai animé mon site d’accompagnement d’activités informatiques, lilapuce.net, depuis 2005, alors que je n’ai jamais été, je ne suis pas et je ne serai jamais un geek ! Ces derniers jours, depuis que je suis en retraite et que les objectifs de ce site ne sont plus exactement les mêmes, j’ai réorganisé tout le contenu, sans trop de difficulté.

    Je viens de refaire un tuto qui me tient particulièrement à cœur, notamment parce que je garde en mémoire, au printemps dernier, le plaisir de ce groupe de gamines, que j’ai eu l’honneur d’accompagner, sur Kdenlive à bidouiller des bouts de vidéo et de musique autours de Whitey’s Lindy Hoppers/Motörhead et Sheila/Michael Jackson :

    https://www.lilapuce.net/Changer-la-piste-audio-d-une-video#lecture_video

  • Comme on vient de me poser deux fois la question dans la semaine : quelle est votre politique, du point de vue des usages, quand un client vous demande si on peut installer un « player » de fichiers PDF dans une page Web ?

    Perso je déconseille absolument, je pense que rien ne remplace l’affichage par défaut du fichier PDF lui-même dans chaque système. Du coup je n’ai jamais eu besoin d’installer un plugin dans SPIP ou quoi ou qu’est-ce pour gérer des affichages de PDF.

    Mais p’têt que j’ai tort et que vous avez des meilleures idées sur le sujet.

  • On the Dangers of Cryptocurrencies and the Uselessness of Blockchain - Schneier on Security
    https://www.schneier.com/blog/archives/2022/06/on-the-dangers-of-cryptocurrencies-and-the-uselessness-of-blockchain.html

    More specifically, I can’t find a blockchain application whose value has anything to do with the blockchain part, that wouldn’t be made safer, more secure, more reliable, and just plain better by removing the blockchain part. I postulate that no one has ever said “Here is a problem that I have. Oh look, blockchain is a good solution.” In every case, the order has been: “I have a blockchain. Oh look, there is a problem I can apply it to.” And in no cases does it actually help.

    (À lire : Schneier qui critique frontalement les cryptomonnaies et blockchain, ce n’est pas rien.)

    • Rappelle-toi que Bruce Schneier sera toujours plus fort que blockchain…
      https://www.schneierfacts.com

      Bruce Schneier can program python without indentation.

      If Bruce Schneier were a protocol, he’d be complex, but not unnecessarily so.

      The universe exists because Bruce needed a reference platform

      Bruce Schneier can reuse his printer cartridges.

      Bruce Schneier knows Chuck Norris’ private key.

      Bruce Schneier doesn’t mine bitcoins; he compresses random data into them with his bare hands

    • @ktche Je ne partage pas cet avis : je n’ai jamais été proche des néo-luddites. (C’est assez transparent d’ailleurs : je n’aurais pas contribué au Manifeste du Web indépendant et uZine, ni à SPIP, ni monté Seenthis, si je partageais une telle position.)

  • Refonte du site de la librairie Quilombo
    https://librairie-quilombo.org

    On fête les quinze ans du site SPIP de la Librairie Quilombo avec une refonte douce en profitant au passage de la dernière version SPIP4. Les changements ne vous sauteront pas aux yeux, mais les améliorations sont bien là !

    L’équipe voulait garder l’esprit de départ du site.

    Je suis contente de l’astuce pour garder cette simplicité et signaler la mise au panier puisque le bouton commander qui est rouge passe au clic en gris et permet alors d’accéder directement au panier. Il n’était pas utile de faire un gros popup pour dire que l’ouvrage avait été choisi. La boutique permet désormais de reprendre une commande en cours ou de choisir son mode de paiement même après avoir cliqué sur « payer par chèque ». Comme d’habitude, ce fut laborieux, mais tout le monde est content !

    Ah, et évidemment toutes les pages sont responsives, vous pouvez donc accéder au site avec un petit écran.

    Merci @SPIP

    Bonne visite !

    #shameless_autopromo

    • 15 ans, mais non, c’est plutôt 17 dans quelques mois !
      J’avais des doutes, le premier article daté est le bien nommé De « la joie par les livres » ...

      https://librairie-quilombo.org/de-la-joie-par-les-livres

      Publié le vendredi 4 novembre 2005

      Le Ministère de la culture a décidé de la fermeture de la Bibliothèque pour enfant, « La joie par les livres », située dans un quartier populaire de Clamart (92). Cette bibliothèque, îlot de résistance culturelle, propose par exemple des scéances de lecture au pied des tours de brique rouge de la cité ou encore réalise du porte-à-porte pour aller à la rencontre des familles. Créée en 1965, son fonds de livre de jeunesse d’une rare richesse fait le bonheur de 600 petits lecteurs. …

      Attends, 2005, on était sous Chirac2, élu suite à un « vote utile » ? Oui, déjà. Et pour fermer ensuite les lieux culturels des quartiers ? Oui, il leur fallait la guerre.

    • Ce que tu pointes là est un commentaire sur les solutions possibles, qui n’a jamais été implémenté. C’est la première méthode, qui ne vaut donc que pour les formulaires (lors d’un POST donc) qui a été faite.

      Du coup quand le contenu n’est pas un formulaire mais qu’on veut quand même pas de cache, ya pas de méthode pour l’instant.

      M’est-avis que tu devrais rouvrir le ticket en disant que c’est super que ça marche par défaut pour les cas avec formulaires, MAIS qu’il faudrait aussi le data-truc pour le désactiver explicitement quand on en veut pas.

  • La diversité de genre — Émission « Libre à vous ! » du 7 juin 2022 — Podcasts et références
    https://linuxfr.org/news/la-diversite-de-genre-emission-libre-a-vous-du-7-juin-2022-podcasts-et-refe

    146ᵉ émission « Libre à vous ! » de l’April. Podcast et programme : - sujet principal : la diversité de genre dans les projets libres avec Agnès Crepet, responsable de l’équipe informatique et de la longévité logicielle de Fairphone, Anne-lise Martenot du projet Spip et Zineb Bendhiba, ingénieure logiciel libre chez RedHat — soupçons de favoritisme dans l’attribution d’un marché de l’éducation nationale : Anticor saisit le PNF — chronique de Luk “Errare humanum est, perseverare diabolicum”

    lien nᵒ 1 : Radio Cause Communelien nᵒ 2 : Libre à vous  !lien nᵒ 3 : Podcast de la 146ᵉ émissionlien nᵒ 4 : Les références pour la 146ᵉ émission et les podcasts par sujetslien nᵒ 5 : S’abonner au podcastlien nᵒ 6 : S’abonner à la lettre d’actusRendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 MHz en Île‐de‐France. (...)

    • Un truc sympa pour l’accessibilité : tu peux désactiver le « smooth scrolling » directement dans les CSS pour les gens qui désactivent les animations dans leurs options de smartphone (en tout cas sur iOS) :

      html {
       scroll-behavior: smooth;
      }

      @media (prefers-reduced-motion: reduce) {
       html {
         scroll-behavior: auto;
       }
      }
    • 2 bémols :

      Can I use indique un peu plus de 80% : https://caniuse.com/?search=scroll-behavior
      Mais le défilement se fait dans tous les cas, donc pas grave.

      Ça évite d’ajouter du js mais, dans le cas de liens de retour en haut de page par exemple, on n’a pas forcément envie que l’url soit changée (avec une ancre #haut et même juste #) et je ne sais pas s’il y a une autre solution que du js. Mais là encore, c’est pas bien grave :)

  • GitHub - mebjas/html5-qrcode : A cross platform HTML5 QR code reader. See end to end implementation at : https://scanapp.org
    https://github.com/mebjas/html5-qrcode

    La lib de référence pour lire des QR Code en HTML 5.
    Supporte également une grande variété de codes barres (EAN_13, AZTEC, CODE_128...)

    A cross-platform HTML5 QR code & barcode reader.
    Use this lightweight library to easily / quickly integrate QR code, bar code, and other common code scanning capabilities to your web application.
    Supports easy scanning using an integrated webcam or camera in smartphones (Android / IOS).
    Supports scanning codes from files or default cameras on smartphones.
    Recently Added Supports bar code scanning in various formats.
    Supports two kinds of APIs :
    – Html5QrcodeScanner — End-to-end scanner with UI, integrate with less than ten lines of code.
    – Html5Qrcode — Powerful set of APIs you can use to build your UI without worrying about camera setup, handling permissions, reading codes, etc.
    Support for scanning local files on the device is a new addition and helpful for the web browser which does not support inline web-camera access in smartphones. Note: This doesn’t upload files to any server — everything is done locally.

    #QR_code #lib #lecteur_QR_code #saisie #SPIP

  • Voici un squelette que je viens de me bidouiller pour récupérer le contenu d’un blog #Wordpress dans #SPIP. Pas envie d’y passer ma vie, accès limités aux serveurs… bref j’ai fait ça rapidement et ça m’a suffit. Je viens de récupérer 800 billets d’un Wordpress (hébergé chez Wordpress, d’ailleurs) à partir de l’export en XML, aspiré le logo de chacun et ça fonctionne.

    Comme je n’ai rigoureusement aucune expérience de Wordpress, je ne sais pas si c’est générique, je sais que ça ne reprend aucune structure (ni mots-clés, ni « rubriques ») mais bon : #çamsuffit et je te file le code si ça peut te servir.

    Le mode d’emploi est dans le début du code. Principalement : il faut installer le plugin « sale » de SPIP :
    http://plugins.spip.net/sale.html
    dans lequel il faut modifier le fichier plugin.xml pour lui dire qu’il fonctionne avec SPIP 3. Et dans le fichier « wordpress.date.xml », il faut faire deux chercher-remplacer rudimentaires, parce que je ne sais pas comment accéder à des nœuds XML nommés avec des deux-points.

    #CACHE{0}
    [(#REM)
      # Convertir une sauvegarde Wordpress vers SPIP
      #
      # activer le plugin «sale» de SPIP (si nécessaire, modifier les limites dans plugin.xml pour l'activer)
      #
      # dans "wordpress.xml"
      # remplacer "content:encoded" par "contentencoded"
      # et "wp:post_date" par "wp_post_date"
      #
      # renseigner #SET{fichier}
      # renseigner #SET{id_rubrique} (la rubrique SPIP qui accueille les billets Wordpress)
      #
      # parcourir une première fois (via les liens de pagination)
      # ce qui provoque le chargement des images distantes
      # puis passer #SET{mysql,oui}
      # et reparcourir la pagination - cette fois tout est en base et les images sont copiées
    ]


    #SET{fichier,wordpress.2013-12-28.xml}
    #SET{id_rubrique,48}
    #SET{mysql,non}



    #SET{reg_img, src=\"(.*)(\?w=[0-9]+)?\"}
    #SET{reg_caption, caption=\"(.*)(\?w=[0-9]+)?\"}
    #SET{reg_vides,\\[\-\>.*\\]}


    <B_cite>
    #PAGINATION

    <ul>
    <BOUCLE_cite(DATA)
    {source xml, #GET{fichier}}
    {datapath channel/0}
    {cle==item}
    {pagination 50}
    >
            <li>
                    <h2>[(#VALEUR{0/title/0}|typo)]</h2>
                    <h4>[(#VALEUR{0/wp_post_date/0}|affdate)]</h4>

                    [(#SET{logo,[(#VALEUR{0/contentencoded/0}|sale|match{#GET{reg_img}, Uims, 1}|copie_locale)]})]
                    [(#SET{term,[(#GET{logo}|match{(jpg|png|gif)$, "",1}]})]
                   
                   
                    <br>
                    [(#VALEUR{0/contentencoded/0}|sale|match{#GET{reg_caption}, Uims, 1})]



                    [(#VALEUR{0/contentencoded/0}
                            |replace{"<span .*>", "", Uims}
                            |replace{"</span>", "", Uims}
                            |replace{"<(strong|em)><(strong|em)>","<\1> <\2>"}
                            |replace{"<(strong|em)><(strong|em)>","<\1> <\2>"}
                            |replace{"</(strong|em)></(strong|em)>","</\1> </\2>"}
                            |replace{"</(strong|em)></(strong|em)>","</\1> </\2>"}
                            |sale
                            |replace{"<img.*>","", Uims}|strip_tags
                            |replace{#GET{reg_vides},""}
                            |replace{\\[caption.*\\],"",Uims}
                            |replace{\\[\/caption\\],""}
                            |propre
                            )]

                    [(#GET{mysql}|=={oui}|oui)
                    <?php
                            $id_article = sql_insertq("spip_articles",
                                    array(
                                            "titre" => "[(#VALEUR{0/title/0}|replace{'"','\"'})]",
                                            "id_rubrique" => #GET{id_rubrique},
                                            "texte" => "[(#VALEUR{0/contentencoded/0}
                                                    |replace{"<span .*>", "", Uims}
                                                    |replace{"</span>", "", Uims}
                                                    |replace{"<(strong|em)><(strong|em)>","<\1> <\2>"}
                                                    |replace{"<(strong|em)><(strong|em)>","<\1> <\2>"}
                                                    |replace{"</(strong|em)></(strong|em)>","</\1> </\2>"}
                                                    |replace{"</(strong|em)></(strong|em)>","</\1> </\2>"}
                                                    |sale
                                                    |replace{"<img.*>","", Uims}|strip_tags
                                                    |replace{#GET{reg_vides},""}
                                                    |replace{\\[caption.*\\],"",Uims}
                                                    |replace{\\[\/caption\\],""}
                                                    |replace{'"','\"'}
                                                    )]",
                                    "statut" => "publie",
                                    "date" => "[(#VALEUR{0/wp_post_date/0})]"
                                    )
                            );
                           
                            copy("#GET{logo}", "IMG/arton$id_article.#GET{term}");
                           
                    ?>               
                    ]               
            </li>

    </BOUCLE_cite>
    </ul>