AMD #Schola
▻https://gpuopen.com/amd-schola
AMD GPUOpen - Graphics and game developer resources AMD Schola is a library for developing reinforcement learning (RL) agents in #Unreal Engine and training with your favorite python-based RL Frameworks.
AMD #Schola
▻https://gpuopen.com/amd-schola
AMD GPUOpen - Graphics and game developer resources AMD Schola is a library for developing reinforcement learning (RL) agents in #Unreal Engine and training with your favorite python-based RL Frameworks.
Dans mon #plugin #SPIP Insertion avancée d’images :
▻https://plugins.spip.net/medias_responsive_mod.html
il y a une fonction que j’utilise beaucoup : include_svg.
Elle permet d’inclure directement dans le HTML le code tiré d’un fichier SVG.
C’est-à-dire que l’image SVG n’est plus chargée comme une image - à la manière d’une image JPEG, mais directement intégrée à l’intérieur du HTML. Il y a deux intérêts :
– le chargement de l’image SVG se fait en même temps que la page HTML, donc sans attendre ; c’est intéressant pour les « petits » fichiers SVG, typiquement des éléments de l’interface, qui s’affichent ainsi instantanément dans la page ;
– c’est indispensable si on veut modifier les couleurs des éléments SVG directement dans les CSS de la page. (Je le fais beaucoup, par exemple un bouton inverse ses couleurs au survol.)
L’originalité par rapport à d’autres fonctions équivalentes que j’ai vu passer, c’est que l’insertion est ici responsive (elle occupe 100% de la largeur disponible), il faut donc soi-même indiquer les éventuelles dimensions d’affichage désirées. Pour que cela fonctionne, la fonction est capable d’extraire les valeurs de la viewBox
du fichier SVG et de fabriquer un <span>
englobant qui rend l’affichage responsive.
Ça s’utilise ainsi :
[(#CHEMIN{hamburger.svg}|include_svg)]
Dans la version 1.34 que je viens d’installer, la fonction gère une variable $alt
:
[(#CHEMIN{hamburger.svg}|include_svg{Menu})]
Si on ne renseigne pas ce texte, alors le <svg>
est passé en role='presentation'
et alt=''
. Dans l’exemple ci-dessus, le bouton qui déclenche le hamburger contient déjà la mention « MENU » à côté du hamburger, il n’est donc pas intéressant d’afficher « MENU MENU ».
Si on renseigne ce texte, alors le <svg>
est passé avec role='img'
et la valeur alt=…
est renseignée. Dans l’exemple ci-dessus, la mention « MENU » est donc directement associée à l’image du hamburger.
(Note : cette fonction était aussi présente de mon plugin Maquettes multiples. Je viens de l’en supprimer (parce que “Maquette multiples” fonctionne, idéalement, avec “Insertion avancée d’images”.)
SPIP propose déjà de base maintenant une fonction |balise_svg qui intègre directement dans le HTML, y compris avec un alt accessible. Il est aussi possible de forcer un taille.
▻https://www.spip.net/fr_article6511.html
et s’il manque des choses on peut l’améliorer :)
J’allais le dire, merci @rastapopoulos
et s’il manque des choses on peut l’améliorer :)
et s’il manque des choses on devrait l’améliorer :))
voir aussi l’indispensable plugin Z-core qui propose la balise #ICON
qui fait idem une insertion « inline » d’un fichier SVG avec une class et un alt selon la syntaxe suivante :
#ICON{repertoire/fichier.svg, class, alt}
Dernière balise qui est censée être remplacée génériquement par l’implémentation finale de ce ticket… un jour :p
▻https://git.spip.net/spip/spip/issues/4727
AMD #fidelityfx_super_resolution_3_unreal_engine_plugin_guide
▻https://gpuopen.com/learn/ue-fsr3
AMD GPUOpen - Graphics and game developer resources Our new AMD FidelityFX Super Resolution (FSR) 3 #plugin guide for #unreal_engine guides you the installation and configuration process.
#PerfGuide #Single_Blog #FSR #FSR_3
Une petite fonction rigolote pour #SPIP :
function image_reduire_aire($img, $A) {
if (!$img) return;
$a = largeur($img);
$b = hauteur($img);
$r = $b / $a;
$a = sqrt($A / $r);
$b = $a * $r;
return image_reduire_net($img, $a, $b);
}
Le but est de réduire les dimensions de l’image pour qu’elle occupe une certaine surface, et non une certaine largeur ou hauteur. L’idée c’est que dans certaines interfaces (pas les plus courantes), on affiche des images les unes à côté des autres, ces images ont des proportions très différentes (certaines sont très horizontales, d’autres presque carrées, d’autres sont plus ou moins verticales). Et avec une réduction selon la largeur, selon la hauteur, ou selon la dimension maximale, on se retrouve avec des images qui semblent plus grosses que d’autres.
D’où cette petite fonction, qui va donc produire des images qui vont sembler « de même taille », malgré leurs formes très différentes.
Utilisation par exemple :
[(#LOGO_RUBRIQUE_NORMAL|image_reduire_aire{100000})]
Bonne idée, ça pourrait être ajouté dans le plugin filtres images du core ou dans ▻https://contrib.spip.net/Plugin-fonctions-d-images-les-filtres-de-traitement
Quand le plugin Fonctions d’images est apparu, il n’était pas facile de contribuer au plugin du core, et même encore plus possiblement les fonctions d’images n’étaient même pas encore sortie dans un plugin-dist cloisonné.
Ce plugin a-t-il donc encore un intérêt ? Car du coup on a deux plugins qui ont exactement le même but : fournir une liste de fonctions d’images. Mais l’un dans la dist, l’un dans les contribs.
Et donc je penche plutôt pour l’ajouter à : ▻https://git.spip.net/spip/filtres_images
Je vous laisse faire. Notez que dans ma version, c’est avec un image_reduire_net
, dont je ne sais pas s’il existe un équivalent dans le core (c’est dans le #plugin image_responsive).
Parce que ça applique un effet de renforcement de netteté sur l’image réduite en fonction du taux de réduction : plus ça réduit plus ça renforce la netteté, parce que plus on réduit et plus on produit une image floue. Avec les écrans haute définition c’est moins perceptible, mais sur un écran standard, on perçoit très clairement que les vignettes de navigation, par exemple, deviennent beaucoup plus nettes, c’est assez classieux :-))
Bé ça aussi faut l’ajouter dans le plugins d’images de base ! :)
Surtout si c’est vraiment un truc qui est utilisable souvent et partout, et que ça profite à un très grand nombre de cas d’utilisation.
Je crois que j’avais peur à cause de l’utilisation de la fonction imageconvolution
, c’était pas totalement clair si c’était d’office présent partout.
J’avais aussi ajouté une bidouille parce que, sur certains serveurs, j’avais du bruit qui apparaissait dans les zones transparentes. (Mais je n’ai plus croisé ça depuis.)
Et surtout : je me demande s’il ne faudrait pas tout simplement ajouter ce passage par imageconvolution
de renforcement directement dans image_reduire
. Problème ça reviendrait à modifier le résultat d’un filtre. Mais d’un autre côté, je pense que ce serait le fonction « normal » d’une fonction de réduction d’image, et qu’accepter que réduire une image ça la rende moins nette, c’est pas loin d’être un bug.
Je suis plutôt d’accord avec toi @arno : si ya moyen d’améliorer directement tous les image_reduire c’est encore bien mieux qu’une nouvelle fonction, ça marchera sur tous les sites déjà en place. Donc pour ce point précis, go go PR sur la fonction d’origine !
Je viens de mettre en ligne mon #plugin_spip Hotspots (pour #SPIP évidemment) :
▻https://git.spip.net/spip-contrib-extensions/Hotspots
C’est un plugin qui permet d’installer une « grande » image de référence dans une rubrique, et cela fait, chaque article de cette rubrique pourra être positionné dans cette image sous la forme d’un « hotspot » rectangulaire, oval ou ponctuel (un point).
C’est une interface graphique particulièrement originale, et c’est redoutablement efficace à utiliser.
Alors attention : autant c’est facile à utiliser dans l’espace privé, autant pour le site public, vous aurez à sortir l’huile de coude et coder les choses vous-mêmes. J’en ai une utilisation tellement versatile que je n’ai jamais développé d’interface publique « clé-en-main » qu’on pourrait réutiliser telle quelle.
Pour comprendre la logiques des valeurs utilisées pour afficher les hotspots de manière responsive sur l’image de fond, on peut aller regarder le code du fichier :
/formulaires/modifier_hotspot.hml
Sur la page de rubrique, j’installe une grande image de référence (ici apparaissent déjà des hotspots) :
Dans chaque article de la rubrique, dans la colonne annexe, une petite vignette de cette image de référence apparaît : il suffit de cliquer dessus pour définir que cet article sera un hotspot.
À ce moment, dans la page de l’article, on peut définir précisément la forme et les limites du hotspot (ici un rectangle) :
Ensuite en fonction des besoins, je fabrique plein d’interfaces très différentes. Sur cet exemple, je l’ai utilisé pour fabriquer un « jeu » tactile demandant de replacer des bijoux au bon endroit :
Mais mon usage le plus fréquent, c’est de créer les hotspots dans des images panoramiques à 360° (évidemment, là il faut un peu bosser son javascript) :
▻https://musee.info/La-salle-Bazille
dans ce cas les hotspots sont positionnés dans l’interface du plugin sur une projection équirectangulaire de l’image panoramique :
Ou dans une image « zoomable » :
Un usage basique serait, évidemment, de gérer des « image map » (mais c’est quelque chose que je n’utilise rigoureusement jamais).
Excellent, bravo !
En ce moment justement, j’ai envie de jouer à superposer des cartes, et pouvoir agrandir certains points pour comprendre les stabilités ou les modifications urbaines … Je vais sûrement essayer ton plugin :)
Oui, pour placer des points d’intérêt sur des fonds de carte, c’est extrêmement pratique. C’est notamment ce que j’ai fait pour la tour Tanguy à Brest : dans l’interface de l’écran tactile on peut sélectionner différentes périodes, et sur chacun de ces fonds de carte, j’ai des hotspots :
« Versatile » : au sens français du terme : instable, changeant ?
Ou au sens anglais du terme : polyvalent ?
Je viens de poster sur ►https://git.spip.net mon #plugin_spip de Maquettes multiples :
▻https://git.spip.net/spip-contrib-extensions/maquettes_multiples
C’est l’élément central qui me sert à créer des « formes longues » avec SPIP, comme ici :
►https://musee.info
Le plugin propose 10 compositions pour les articles, permettant de créer des blocs à une colonne, deux, trois ou quatre colonnes, dans différentes configurations.
Alors ce n’est pas le plugin qu’on installe, et hop, vous avez un nouveau site Web public : là il faut fabriquer ses propres squelettes en allant regarder dans /squelettes/inc
.
Les CSS sont responsive, par contre c’est assez oldschool. Parce que c’est du code que j’ai fabriqué il y a longtemps, donc pas de flex
ni de grid
ni de calc()
. Mais ça a l’avantage de s’afficher sans risques sur n’importe quel machine.
Et donc je poste aussi le plugin Textes étendus :
▻https://git.spip.net/spip-contrib-extensions/textes_etendus
Initialement c’était inclus dans mon plugin Maquettes, mais j’ai préféré l’extraire pour en faire un plugin séparé.
Ce plugin se contente d’ajouter 3 champs texte (#TEXTE2, #TEXTE3 et #TEXTE4) aux articles. Ce qui est bien pratique si on veut faire des articles avec plusieurs colonnes.
#merci @arno ! Je suis en train de préparer quelques projets de livres plurilingues alors je testerai la gestion des versions de langue et annotations dans les champs supplémentaires et leur mise en forme dans les colonnes de Maquettes multiples :-)
Puisqu’il s’agit de textes de livres je pense ne pas avoir besoin des fonctions de multilinguisme de SPIP qui sont très utiles pour les sites web en développement constant par une équipe.
Tu m’a donné l’idée d’un affichage par couches superposées (layer) pour les versions de langue qu’on devrait pouvoir activer et désactiver dans une sorte de navigation verticale alors que la navigation entre chapitres et paragraphes se ferait par déplacement haut/bas du texte sur l’écran.
#SPIP
Tu peux mettre des exemples de liens où ya 2, 3 et 4 colonnes ? :)
Plutôt que des champs rajoutés en dur, et qui sont très arbitraires, peut-être qu’un découpage à l’intérieur du texte principal pourrait être fait, avec des plugins du genre de celui de @touti
►https://contrib.spip.net/Raccourci-colonne
(ou une version améliorée si on trouve qu’il manque des classes ou autre, ou qu’on veut pouvoir l’utiliser sans que ça ajoute ses propres CSS)
Sur la page d’accueil de musee.info référencée dans mon message, tu as 2, 3 et 4 colonnes, et aussi une colonne principale et une annexe à droite ou à gauche.
En fait, pour des formes longues rédactionnelles, j’utilise essentiellement une colonne et les différentes variantes de deux colonnes. Les 3 et 4 colonnes, dans tous les cas les colonnes sont étroites, donc c’est pas adapté à du texte long, mais plus à de la présentation « vitrine » (à la façon de la page d’accueil de Musee.info).
L’idée est de jouer beaucoup, aussi, avec mon plugin « Insertion avancée d’images ». Par exemple pour un « vrai » longform éditorial :
►https://musee.info/L-histoire-de-la-collection-italienne
▻https://musee.info/Soulages-a-Montpellier
▻https://musee.info/Moyen-age-et-Renaissance
Pour ce qui est de fonctionner avec une structuration des différentes colonnes avec l’unique champ #TEXTE, c’est ce que j’ai fait très longtemps. J’avais un plugin qui découpait en colonnes selon les intertitres :
{{{Première colonne}}}
{{{# Deuxième colonne}}}
{{{## Troisième }}}
{{{### Quatrième }}}}
De ce fait, à un moment j’ai recodé mon plugin pour avoir 4 champs texte différents, j’ai même une moulinette pour récupérer depuis l’ancien format.
Une remarque importante : utilisé avec le plugin Médias responsive, le plugin Maquettes multiples joue énormément avec les possibilités d’alignement hors des colonnes de texte. C’est un gros point fort, à mon goût, de ces maquettes : on peut par exemple afficher les légendes à côte de l’image, en dehors de la colonne de texte, soit avec le pile |large
, forcer l’image plus large que la colonne de texte et la légende qui vient se positionner en dessous, toujours en dehors de la colonne.
C’est particulièrement visible dans le longform sur le collection italienne :
►https://musee.info/L-histoire-de-la-collection-italienne
reBusted ! – Extension #wordpress | WordPress.org Français
▻https://fr.wordpress.org/plugins/rebusted
Saves you from asking « have you emptied your cache? ». Forked and updated for todays WordPress and PHP from the original #plugin by Paul Clark. Features :
Safe to leave running on live sites. Only refreshes browser cache for a file if it has been modified. Resolves Content Delivery Network (CDN) issues. No need to purge CDN cache. Multisite compatible. « Just works » — no configuration necessary.
— Permalien
Tiens je le connaissais pas celui là, encore un éditeur de notes, basé sur Markdown, multi-plateformes, et basé uniquement sur le système de fichier (pas de stockage propriétaire quoi), et donc synchronisable avec n’importe quel outil existant ensuite (syncthing etc). Et aussi conçu modulairement avec une base et des plugins possibles pour augmenter (660 actuellement).
Obsidian
►https://obsidian.md
Graph view
The graph is your knowledge at a glance. Explore, observe, and stay motivated. With group, filter, and display options, see things your way.
Local graph shows connections around you. Get inspired while writing.
Backlinks
Converge your thoughts.
Broaden your view to see this note in other contexts. Link relevant pages with one click.
Outgoing links
Diverge your thoughts.
See all existing and potential links from this note. Turn mentions into links with one click.
poulala Zettelkasten, Anki, faut passer 12 ans à apprendre des choses pour apprendre des choses
Un nouveau venu dans la famille des couteaux suisses : ▻https://anytype.io
We started Anytype to empower sovereignty and cooperation at scale.
More precisely: In today’s world, software has propelled us to unprecedented levels of innovation, cross-border communication and value capture.
At the same time, we noticed that participation in today’s digital reality often required sacrificing our independence, privacy, data, or information about ourselves, for purposes we weren’t comfortable with. Ultimately, we decided to put an end to our own feelings of vulnerability and disempowerment, by forging a new path towards scalable cooperation that respects user sovereignty.
By developing a tool where anyone can create and share without an intermediary, our hope is to demonstrate a system wherein cooperation can flourish without third-party intervention, oversight, and control.
By developing an ecosystem where anyone can be both a participant or a builder, our hope is to democratize who gets access to the web, and who gets their voice heard.
We’re still in the early stages of our journey, but ultimately we’re building the Internet that we want to use, one step at a time.
▻https://contrib.spip.net/http.api/ezrest/paquets?prefixe=saisies&compatible_spip=4.1
↑ exemple de requête sur l’API de spip-contrib/ezrest pour récupérer les infos d’un plugin (ici saisies) compatible avec une version précise de SPIP (ici 4.1)
Le retour est un Json dans lequel on pourra trouver (entre autre !) les versions du plugin (ici : donnees > SAISIES > paquet > 4.3.6)
Devrait permettre de pouvoir récupérer le tag correspondant (ici « v4.3.6 » si la nomenclature de création des tags a été respectée) via une commande spip dl
(en mode git) de spip-cli...
Salut @cy_altern,
De mon côté, je viens de faire un script pour lister les commandes git à faire pour cloner un site avec les même versions de plugin déjà installés par Git :
<code>
function generategitinstall() {
FILE=$PWD/$1/../paquet.xml
if [ -f “$FILE” ]; then
origin=$(git —git-dir=$1 —work-tree=$PWD/$1/.. config —get remote.origin.url)
prefix=$(xmllint —xpath “string(/paquet/@prefix)” $PWD/$1/../paquet.xml)
branch=$(git —git-dir=$1 —work-tree=$PWD/$1/.. branch —show-current)
echo “git clone $origin $prefix && cd $prefix && git checkout -b$branch && cd ..”
fi
}
function findgits() {
find ./* -type d -name “.git” -print0 | sort -z |
while IFS= read -r -d ’’ line; do
generategitinstall $line
done
}
echo “# spip”
branch=$(git branch —show-current)
echo “checkout.php spip -b$branch .”
echo “# plugins”
cd plugins
findgits
cd ..
</code>
Mise à jour de mon #plugin #SPIP : css_imbriques
▻https://git.spip.net/spip-contrib-extensions/css_imbriques
– J’ai ajouté la possibilité d’utiliser -spip-inset
ainsi :
-spip-inset: 1px 2px 3px 4px;
top: 1px;
right: 2px;
bottom: 3px;
left: 4px;
-spip-inset: 0;
Selon CanIUse, inset
est désormais compris par 88% des navigateurs. C’est bien, mais pas suffisant. Et surtout, l’affichage ne se dégrade pas du tout correctement sur les navigateurs anciens. D’où le recours à mon. -spip-inset
qui fabrique un code beaucoup plus oldschool.
– L’intégration des appels aux fichiers .htc
(compatibilité avec des vieux MSIE) est désactivé par défaut. (Si on veut on peut les réactiver, mais je pense que ça cible spécifiquement MSIE 6 et 7, alors bon…)
J’ai un souci très bizarre avec la réduction d’image avec GD, qui introduit du bruit dans les zones transparentes des images PNG. Et quand on superpose une dizaine d’images de cette façon, le bruit finit par se voir, et ça fait une zone transparente qui n’est plus vraiment transparente (et ça fait un effet assez dégueulasse).
Sur ce serveur, voici l’horreur (il y a plein de tâches sur le quadrillage du fond transparent) :
Mais la même chose sur un autre serveur, nickel :
J’ai bien trouvé des évocations de ce noise provoqué par imagecopyresampled
, mais pas de solution. Surtout que pour le coup, ça semble venir d’installations différentes des serveurs (les deux serveurs sont sur des Debian récentes, avec PHP 7.3 activé).
Est-ce que vous auriez des idées de piste ? (Si je vous dis qu’en plus, ce client, il m’a collé un service informatique totalement indigent, et que la configuration du serveur c’est un peu pour ma pomme et c’est pas du tout ma spécialité ?)
Le seul commentaire intéressant évoque des erreurs d’arrondi. Est-ce qu’il y aurait une extension (de PHP ? du serveur ?) qui augmenterait la profondeur des calculs mathématiques ?
[edit] J’ai installé les mêmes extensions PHP sur le serveur problématique, ça n’a pas corrigé mon problème.
Du coup je pousse la version 9.1.0 de mon #plugin #SPIP image_responsive. J’ai ajouté l’option que l’on active ainsi :
define("_IMAGE_CORRIGER_BRUIT_TRANSPARENT", true);
imagecopyresampled
. (Par contre ça rallonge les temps de calcul copieusement, puisque ça parcourt les images pixel par pixel…)Au passage, ça pousse aussi la version 9.0, qui désactive la réduction sur les images Gif. Parce que la réduction d’un Gif animé supprime l’animation, et qu’après tout ce temps (et un retour à la mode très surprenant), les gens utilisent uniquement le Gif pour faire des animations (si vous avez encore des gens qui font des Gif pour publier des photos, faut leur dire qu’iils sont restés bloqués en 1998).
La petite fête en mode #shameless_autopromo du jour : on lance ce soir la nouveau site de Documents d’artistes Nouvelle-Aquitaine, réalisé sous la direction artistique de Didier Lechenne :
▻https://dda-nouvelle-aquitaine.org
Évidemment c’est du #SPIP, et donc c’est mon premier site livré en #SPIP_4 parce que pourquoi pas…
Parmi les choses un peu originales…
– Il a la reprise de tous les dossiers d’artistes de l’ancien site, à partir d’une base de données en HTML, plutôt complexe, avec beaucoup de tables différentes, et j’ai remis tout ça dans la structure de SPIP.
Quand on se lance là-dedans, évidemment on ne sait jamais quand et comment on va s’en sortir, mais au final ça s’est plutôt bien passé. Pas mal de moulinettes pour reconvertir des dates au format date de mySQL, extraire le nom du département, etc. Et tant qu’à faire : récupérer les URL des anciens dossiers, pour les conserver dans le nouveau site.
– Le gros du site (et sa raison d’être, évidemment), ce sont les « dossiers d’artistes », avec les œuvres, des bio-bibliographiques, des textes critiques et parfois des entretiens filmés :
▻https://dda-nouvelle-aquitaine.org/benoit-pierre
– Plutôt que de totalement me reposer sur les Champs extra, pour les fiches des artistes, qui ont énormément d’informations spécifiques, j’ai préféré faire un plugin dédié, avec une interface beaucoup plus compacte. Il y a notamment des cases à cocher en face de chaque champ, pour décider si c’est une information privée ou publique, et avec l’interface standard des champs extra, on se retrouvait avec un formulaire très indigeste. Là c’est relativement compact.
– Mes habituels longforms, que Didier a relookés à sa sauce :
▻https://dda-nouvelle-aquitaine.org/Documents-d-Artistes-Nouvelle-Aquitaine
– L’interface repose sur un savant système de « cases », dont Didier a conçu une belle variété. Au final, le nombre de fichiers différents est limité, mais il y a pas mal de variantes directement dans les squelettes en fonction des situations et des éléments présents.
Par exemple les « textes critiques » ont cette présentation, avec l’introduction qui sert à « illustrer » la case :
▻https://dda-nouvelle-aquitaine.org/Textes-critiques-27823
alors que les entretiens ont une vignette, et l’indication d’une durée :
►https://dda-nouvelle-aquitaine.org/Entretiens-27824
etc.
– Utilisation relativement importante du #plugin Compositions, pour les rubriques. Par exemple les Cartes postales ont une maquette ajoutée récemment, pour coller à un besoin spécifique :
▻https://dda-nouvelle-aquitaine.org/Cartes-postales
alors que, par exemple, les Tirés à part sont un longform plus classique :
▻https://dda-nouvelle-aquitaine.org/Tires-a-part
et les Entretiens ont une présentation en grille menant à des articles plus classiques (ou articles virtuels) :
►https://dda-nouvelle-aquitaine.org/Entretiens-27824
– Une carte des œuvres dans l’espace public :
▻https://dda-nouvelle-aquitaine.org/OEuvres-dans-l-espace-public
– Didier m’a fait découvrir le script Swiper, très largement utilisé dans cette interface :
▻https://swiperjs.com
#SPIP : quelqu’un sait où je peux trouver un plugin qui utiliserait le nouveau SortableJS, censé remplacer la version de jqueryui ?
Sinon je vais attendre que @rastapopoulos s’attelle à la mise à jour de Sélections éditoriales pour voir comment ça se fait proprement…
En attendant, j’ai recodé le #plugin centre_image, mais avec une gestion maison du drag-drop de la petite croix :
▻https://git.spip.net/spip-contrib-extensions/centre_image
Nouveau #plugin #SPIP : obfuscation_liens
▻https://git.spip.net/spip-contrib-extensions/obfuscation_liens
C’est pour faire du SEO. Ça s’utilise via un #FILTRE{obfuscation_liens}
dans le squelette concerné : dans ce cas tous les liens trouvés dans ce squelette sont transformés en <span>
, et le lien (href
) est encodé en base64 et installé dans un data-obf
.
Il paraît que c’est la seule façon de réellement « cacher » un lien pour le crawler de Google, qui ne respecterait pas réellement les no-follow
.
Faudra penser à mettre à jour son descriptif issu d’un copier/coller ▻https://git.spip.net/spip-contrib-extensions/obfuscation_liens/src/branch/master/paquet.xml#L10 ;)
PS : c’est pas un peu une abomination si les liens ne sont plus fonctionnels sans js ?
Oui alors à la base, ce genre de chose n’est pas non plus ma tasse thé… :-)
Mais vu qu’on m’a demandé de le faire, parce qu’une spécialiste du SEO a fait un audit du site, j’ai pas trop le choix, autant partager l’outil.
Aprrrrrrèèèèèès (mais vraiment loin après) :
– l’utilisation première est restreinte à certains liens externes omniprésents (dans les footers notamment), qu’on est plus ou moins obligés d’avoir pour des raisons politiques, mais qui ne servent pas à grand chose, et qui d’après la spécialsite SEO, nuisent au référencement…
– dans une interface très graphique, j’ai un bout d’interface très visuel, totalement redondante avec la navigation traditionnelle, je me dis qu’éviter de coller des liens difficiles à comprendre là-dedans pour les gens qui ne voient pas l’interface, alors qu’on a la même information, mais proprement structurée par ailleurs, ça peut se justifier (je ne vais pas le jurer, mais p’têt ben que oui).
Au fait, il faut faire quelque chose pour que le plugin devienne accessible en installation automatique, ou bien c’est plus la peine depuis qu’on est sous Git ?
bon mais par contre le lien ne serait plus accessible sans js, si je comprend bien ?
Pour faire un tag (et autres commandes git si besoin) : ▻https://contrib.spip.net/Equivalences-des-commandes-SVN-GIT
un autre intérêt que je verrais à l’obfuscation, c’est si je veux referencer un site (car source pour un article que j’écris) sans pour autant augmenter son SEO (genre si je cite un texte d’un cite d’extreme droite ou du gouvernement)
@maieul Pour le moment, je ne suis pas allé chercher plus précisément que tous les liens dans un bout de squelette, donc là c’est pas fait pour.
Il faudrait un autre filtre qui irait taper uniquement sur des liens avec un classe précise (.spip_obf
par exemple), mais de toute façon je ne vois pas comment fabriquer des liens avec une classe spécifique dans les raccourcis SPIP.
@maieul Avec ce filtre on peut introduire une règle pour les auteurs d’un site. Par exemple en filtrant les champs #DESCRIPTIF, #TEXTE etc. SPIP n’afficherait en clair que les liens de la table spip_syndic ou contenus dans #PS , alors les auteurs devraient décider sur l’affichange ou non d’un lien en le plaçant ou dans le texte ou dans un contexte de publication en clair.
Ce filtre ajoute également un argument supplémentaire à la question des liens « interdits par la loi » dont on peut questionner l’illégalité quand les « liens » sont rendus inopérants sans javascript et exclu du référencement par les crawler .
Modif de mon script de détection de la compatibilité #WebP du navigateur dans mon #plugin #SPIP image_responsive :
►https://git.spip.net/spip-contrib-extensions/image_responsive
Jusqu’à présent, je me contentais d’un test synchrone en Javascript, avec un code assez simple. Le hic : Firefox compatible avec WebP n’était pas détecté comme compatible. Et re-hic avec les mises à jour récentes de MacOs et iOS, Safari a le même souci.
La nouvelle méthode : je fais le teste synchrone. Si le test synchrone dit que le navigateur est compatible, tant mieux, on s’arrête là, c’est oui.
Si le test synchrone échoue (peut-être Safari ou Firefox), alors je balance un test asynchrone. En attendant, pour cette première page, tant pis, les scripts considèrent que le navigateur n’est pas compatible, et on travaille avec JPEG ou PNG à la place de WebP.
Mais à la fin du teste asynchrone, je stocke le résultat (oui/non) en LocalStorage. Et ainsi, à la page suivante, je récupère directement le résultat du localstorage, et j’affiche ou non le WebP sans refaire de test de compatibilité. Et ça fonctionne nickel avec Safari et Firefox (à partir de la seconde page donc).
Et au passage, j’introduis exactement la même méthode pour le format #Avif (pour le coup, ça détecte bien Chrome, qui pourtant ne passe pas non plus le test synchrone – même bug bizarre sur le MimeType de image/avif qui est détecté comme image/png).
Sur un site #SPIP, j’ai besoin de détecter les langues des messages, mais je ne veux détecter que dans trois langues (français, anglais, allemand).
Du coup mon #plugin seenthis_detecter_langue n’est pas utilisable directement :
▻https://git.spip.net/spip-contrib-extensions/seenthis_detecter_langue
parce que je n’ai pas prévu de limiter arbitrairement le choix des langues. (Ce qui est assez logique en général.)
Du coup, dans mes_fonctions.php
, je fabrique une fonction detecter_la_langue
ainsi :
$my_ngrams = false;
function detecter_la_langue($texte) {
if (!$my_ngrams) {
$my_ngrams["fr"] = $GLOBALS["ngrams"]['fr'];
$my_ngrams["en"] = $GLOBALS["ngrams"]['en'];
$my_ngrams["de"] = $GLOBALS["ngrams"]['de'];
$GLOBALS["ngrams"] = $my_ngrams;
}
return detecter_langue($texte);
}
Du coup on ne teste les « ngrams » que sur ces trois langues, donc le plugin ne pourra plus retourner qu’une de ces trois valeurs.
Tu me dira que je pourrais coder ça proprement directement dans le plugin, mais comme je trouve que limiter arbitrairement la détection des langues n’est généralement pas une bonne idée, je préfère pas l’intégrer au plugin.
Ha ben je tombe justement sur un problème avec détecter langue qui attribue la langue ca dès que le mot « invariable » est dans le texte d’un post seenthis, et #du_coup je me dis que ça serait pas mal de pouvoir étendre ou limiter le bouzin :p
PS : j’ai fourbé comme un crado avec cet ajout dans mes_fonctions.php
:
include_spip("inc/detecter_langue");
unset($GLOBALS["ngrams"]['ca']);
Pour ce qui nous intéresse (si si), la grosse nouveauté d’iOS 14, c’est qu’il accepte désormais les images WebP.
J’ai testé avec mes sites où la version WebP est générée directement par mon #plugin #SPIP image_responsive, ça bascule sur les versions WebP de manière totalement transparente.
De ma propre expérience :
– sur les fichiers JPEG, je gagne généralement autour de 30% à 50% sur le poids des images. Avec des dessins au trait, je gagne systématiquement 50%.
– sur des fichiers PNG (quand j’ai besoin de la transparence), c’est absolument énorme, les images sont 7 à 8 fois plus légères.
Sur un site comme La Méthode Curie, où j’utilise énormément d’images au trait avec transparence, la différence est donc phénoménale :
▻https://lamethodecurie.fr/index.html
apparemment encore plus fort que webp : AVIF
▻https://reachlightspeed.com/blog/using-the-new-high-performance-avif-image-format-on-the-web-today
Un autre article à propos du format #AVIF avec des comparaisons assez bluffantes ▻https://jakearchibald.com/2020/avif-has-landed
Il y a eu pas mal de changement sur mon #plugin #SPIP Outils de base pour HTML5 et responsive :
▻https://git.spip.net/spip-contrib-extensions/html5_responsive
Il y a désormais une constante, _HTML5_RESPONSIVE_ACCESSIBLE
(par défaut à true
) qui fait que, par défaut, on ne bloque pas le comportement de zoom de l’ensemble de la page (c’était le cas auparavant).
En revanche, si on définit :
define("_HTML5_RESPONSIVE_ACCESSIBLE", false);
Au passage, dans le cas où on définit cette constante à false
, je viens en plus d’ajouter des CSS censées bloquer le swipe gauche qui provoque de retour à la page précédente (très pénible quand on fait une interface d’application), et une qui devrait bloquer correctement le zoom de l’écran (parce que les navigateurs, même sur les smartphones, ne respectent plus le meta viewport…).
On vient de livrer, avec Mosquito, la bande dessinée numérique La Méthode Curie pour le Musée Curie
▻https://lamethodecurie.fr
C’est évidemment sous #SPIP, et c’est réalisé avec mon plugin permettant de fabriquer des cases animées dans l’espace privé (#shameless_autopromo donc).
La Méthode Curie : la bande dessinée numérique du Musée Curie
▻https://curie.fr/actualite/notre-histoire/la-methode-curie-la-bande-dessinee-numerique-du-musee-curie
Le Musée Curie dévoile, ce lundi, un roman graphique au dessin soigné, qui décrit « La méthode curie », une méthode expérimentale, mise en place pour mesurer la radioactivité. Le fonctionnement des appareils utilisés par Marie et Pierre Curie est expliqué avec clarté, humour, et pédagogie. Ce document digital unique a pour vocation de rendre accessible l’histoire et le fonctionnement de la méthode Curie de façon ludique. Grâce à ces explications autour de ce dispositif, il s’agit aussi de rappeler que la recherche scientifique ne s’appuie pas seulement sur des intuitions scientifiques, mais sur la maîtrise d’outils technologiques. L’ambition est triple pour le musée : rendre le visiteur autonome lorsqu’il visite l’exposition sans guide ou animation, sortir des murs du musée et toucher un public plus large, notamment en interessant les adolescents et jeunes adultes.
Depuis leur ordinateur, smartphone ou leur tablette, les lecteurs découvrent ainsi “La méthode Curie” et plongent dans l’univers augmenté de la BD. Ils ont ainsi accès à des archives numérisées, mais aussi à des textes d’approfondissement rédigés par les experts du Musée Curie. Une bonne occasion de « visiter » le Musée Curie de manière renouvelée et virtuelle, en attendant que cette méthode Curie soit accessible « in situ » lors de la réouverture du musée en septembre 2020.
Mon outil d’animation permet d’empiler des images, et pour chaque d’indiquer une position de départ et une position d’arrivée, une durée d’animation… et tout cela est traduit en animations CSS, donc sans Javascript. Les images sont responsive pour s’adapter aux dimensions et résolutions d’écrans, et avec les nouvelles version du #plugin image_responsive, les versions WebP des images sont également fabriquées automatiquement :
Notre première réalisation avec cet outil, c’était Le Portrait d’Esther :
►http://portrait-esther.fr
Ennemi de la routine - Muzeodrome - par Omer Pesquer
▻https://muzeodrome.substack.com/p/ennemi-de-la-routine
2) La bonne méthode 💻💬👌
“A la croisée de la BD, de l’animation, du roman historique et d’une leçon de science, « la méthode Curie » tente de mettre en valeur les instruments scientifiques utilisés par les Curie et faire comprendre leurs recherches sur la radioactivité.”
Basé sur une proposition originale d’Emmanuel Rouillier (directeur de l’atelier Mosquito), ce projet a été réalisé pour le Musée Curie dans le cadre de l’appel à projet 2019 en faveur du tourisme culturel de la Direction Régionale des Affaires Culturelles de la région Île-de-France. Les cinq auteur·e·s du projet sont : Marion Augustin (spécialiste de la médiation culturelle) - Camilla Maiani (physicienne) - Guillaume Reynard (illustrateur) - Emmanuel Rouillier (designer interactif) - Arnaud Martin (développement technique).
Arnaud Martin a été un des pionniers du web français aussi bien du coté technique que du coté social. Je l’ai d’abord connu sous le nom de Arno* en 1997 à l’époque d’uZine et du "Manifeste du Web indépendant" (dont il est un des co-auteurs). A la mi-2000, dans le cadre des évolutions d’uZine, Arno* créait un nouveau gestionnaire de contenu Web (CMS), identifié plus tard sous le nom de SPIP (lire cet entretien avec David Dufresne, autre co-auteur du Manifeste du Web indépendant). Rarement dans la lumière médiatique, Arnaud Martin a continué de développer à sa façon des "choses" avec des technologies Web (comme l’outil de short-blogging SeenThis en 2009).
Arnaud Martin travaille régulièrement avec Emmanuel Rouillier. En janvier 2016, ils mettaient en ligne pour les Musées d’Angers le premier épisode du "Portrait d’Esther", une bande dessinée numérique multi-dispositifs qui utilisait SPIP avec le plugin spécifique CMS COMICS. Plus 500 scènes dessinées ont ainsi été animé pour les 5 épisodes du "Portrait d’Esther" ! Le fait qu’Arnaud Martin soit le concepteur principal de SPIP lui a permis de développer ce projet singulier. “La méthode Curie”, bande dessinée « augmentée » qui s’adresse particulièrement aux adolescents et aux jeunes adultes, a été mise en mouvement avec CMS COMICS.
« La méthode curie » : la nouvelle bd interactive et en ligne, lancée par le musée Curie – Club Innovation & Culture CLIC France
▻http://www.club-innovation-culture.fr/methode-curie-bd-interactive-musee-curie
Le lundi 22 juin 2020, le Musée Curie a publié sur son site web un contenu numérique très original pour permettre de découvrir tout en s’amusant la vie et l’œuvre de Marie et Pierre Curie. À travers une bande dessinée numérique, à la croisée entre BD et roman graphique, ce contenu en ligne offre l’opportunité de plonger au cœur de la méthode Curie, un dispositif mis en place par les époux Curie à la fin du XIX siècle pour mesurer la radioactivité.
Ce nouveau contenu web lamethodecurie.fr est disponible de manière autonome et via le site web du musée musee.curie.fr. Il donne l’occasion de découvrir ou revisiter avec cette fiction digitale l’histoire de cette méthode de mesure inédite et grâce à laquelle les Curie ont découvert deux nouveaux éléments chimiques radioactifs : le polonium et le radium.
Un après Covid-19 différent ? On a raison de ne pas y croire.
Certains rêvent de réformes d’ampleur pour contrer le dérèglement climatique, de reconversion industrielle, d’élargir les pistes cyclables à la façon allemande.
Mais il n’en sera rien. C’est le pouvoir de l’argent.
On se remettra à fumer sorti de la greffe de poumon.
Y’a bien des petites asso qui tentent des trucs, mais c’est que des pétitions.
▻https://france.attac.org/se-mobiliser/que-faire-face-au-coronavirus/article/petition-plus-jamais-ca-signons-pour-le-jour-d-apres
La mentalité du Medef ne changera pas. Les dividendes vont couler à flot.
▻https://www.lemonde.fr/economie/article/2020/04/10/coronavirus-ces-groupes-allemands-qui-veulent-payer-des-dividendes-malgre-le
C’était le chaos rêvé, mais ça n’aura pas suffit.
Relativement d’accord, mais avec une légère nuance : je pense que ce sera bien pire qu’avant.
C’est même une des premières fonctionnalités intégrées à SPIP, puisqu’il fallait gérer le « Manifeste du Web indépendant ». Mais il faudrait demander à la bande du #plugin Formidable si ça apporte des choses en plus, ou plus modernes…
Attends qu’ils rentrent de leur promenade dominicale, je pense que Rasta et la bande auront toutes les bonnes réponses. Normalement, en cette saison, ils ne passent jamais plus d’une heure dehors…
@monolecte et @arno J’ai du monter une pétition en urgence il y a un an environ, et ça donnait ce site
(le site n’est plus en ligne, la pétition a fait son job).En résumé, il faut : un SPIP avec un article dont la pétition est active, le plugin facteur pour brancher le site sur une boite mail ou un service externe afin d’être certain que les emails de validation des signatures arrivent à destination et un petit squelette qui affiche la pétition en page d’acceuil. Et optionnellement le plugin champs extras si on veut ajouter des champs persos au formulaire de pétition.
À l’époque je me disais que ça pourrait faire l’objet d’une « distribution SPIP » dédiée à ça ne serait-ce que pour proposer une alternative à tous les change.org et cie.
PS : je peux partager le squelette sur repo public si quelqu’un en a besoin.
La réponse à @monolecte est simple : oui SPIP peut parfaitement faire ça.
Après pour le détail, je vais décevoir : je n’ai pas d’avis sur le choix entre l’ancien plugin « Pétitions » (fourni de base avec SPIP) versus « Formidable ».
En théorie Formidable permet de faire tout ce que fait Pétitions en bien plus complet. Notamment en pouvant choisir plus librement les champs qu’on veut demander. Mais ça peut bien forcer l’unicité d’un champ (l’email à priori, pour avoir des réponses uniques), et interdire de répondre plusieurs fois. Et ça peut aussi bien garder les réponses en mémoire dans la base et/ou l’envoyer à diverses personnes par email.
Le tout est d’avoir un article avec le texte et de présenter ça correctement, quelque soit le formulaire utilisé comme le montre @b_b.
Ah et sinon @monolecte pour poser des questions sur SPIP, tu peux toujours aller sur l’IRC, ya quasiment toujours des gens qui pourront répondre. :p
C’est pour faire une pétition pour demander à Change.org de remettre en ligne celle sur la 5G en Belgique ?
Cela fait des mois que mon syndicat me tanne parce que je refuse (à juste titre) de signer des merdes dans chanqe.org, mais que je n’ai pas de solution libre à leur proposer à la place.
Là, je vais bouffer mon chapeau et me taper une sieste pour le digérer.
Erratum. Je viens de corriger la documentation du #plugin #SPIP microcache :
►https://contrib.spip.net/Plugin-microcache
On (je ?) avait indiqué qu’on pouvait effacer le microcache avec une fonction effacer_microcache
. Il fallait lire : supprimer_microcache
.
Tout de suite ça fonctionne beaucoup mieux…
Ah oui tout de même : l’erreur venait de mon signalement initial sur Seenthis en… 2011
▻https://seenthis.net/messages/13252
Ça doit pas être une fonction utilisée par trop de monde, donc… :-))
Huhu, seenthis => contrib => seenthis =>... belle boucle ;)
▻https://git.spip.net/explore/organizations
Récupérer les données détaillées des repos git de SPIP au format JSON :
– le core : ▻https://git.spip.net/api/v1/orgs/spip/repos
– les plugins : ▻https://git.spip.net/api/v1/orgs/spip-contrib-extensions/repos
– les squelettes : ▻https://git.spip.net/api/v1/orgs/spip-contrib-squelettes/repos
– les thèmes : ▻https://git.spip.net/api/v1/orgs/spip-contrib-themes/repos
– les outils : ▻https://git.spip.net/api/v1/orgs/spip-contrib-outils/repos
– galaxie : ▻https://git.spip.net/api/v1/orgs/spip-galaxie/repos
(source : ▻https://git.spip.net/spip-contrib-outils/git_loader/src/branch/master/git_loader.sh#L81
merci @azerttyu )
#SPIP #git.spip.net #json #plugins
@seenthis « Spam, spam, spam » (+ émoji notes de musique)
@b_b : il a quand même 2 symptômes « types » des comptes de spammeurs :
– son pseudo est identique au nom de son site (net2.com)
– ses billets n’ont référencé que son site
@cy_altern je vous laisse en débattre sur la liste seenthis et me signaler s’il est nécessaire de supprimer le compte.
/me retourne faire des cartons...
Un aperçu de WP-VCD, la plus grande opération de piratage WordPress actuelle - ZDNet
▻https://www.zdnet.fr/actualites/un-apercu-de-wp-vcd-la-plus-grande-operation-de-piratage-wordpress-actuelle-39
contrib/git_loader - git_loader.sh at master - git_loader - SPIP on GIT
▻https://git.spip.net/contrib/git_loader/src/branch/master/git_loader.sh
Ce script sh s’occupe d’installer/mettre à jour une distribution
SPIP (core + plugins-dist). Soit tout en master soit à une version SPIP (sur la base des tags spip-x.y.z pour les plugins)
#spip #loader #git #plugins-dist #bash
Toi tu ne traines pas assez sur contrib.spip.net, ou alors tu ne lis pas la gazette ►https://blog.spip.net/-Gazette-.html :p
Donc, maintenant il n’y a plus 5 ou 6 plugins pour gérer des newsletters dans SPIP, mais un seul (une collection de plugins pour être plus précis) maintenu par la communauté :
►https://contrib.spip.net/Newsletters
Et comme les choses sont bien faites, tu peux importer tes abonné⋅e⋅s depuis un ancien plugin vers le « nouveau » cf ▻https://contrib.spip.net/Mailsubscribers#Migration-depuis-un-ancien-plugin
Comme dirait @suske : « SPIP c’est bôôôôôôô » :)
Je vais tenter le coup. Je récupère un vieux site SPIP, où toutes les fonctions ont été recollées « à la main », avec du PHP en dur partout, le cache à zéro… Alors la migration vers SPIP 3, c’est fun…