15 octobre 2025

L’épicerie a un nouveau toit. Nous pensons revendre la maison qui nous coûte trop cher, trouver un appartement, peut-être dans Vienne. Pas de tristesse. Avoir un projet tient. Nous avons commencé à nous projeter. Les toiles rangées dans l’atelier. Les meubles. Les livres de mon père à l’étage et au grenier. Toutes ces choses dont il faudra se défaire. Repartir sur une nouvelle tranche de vie. Ce ne sera pas la première fois. Il me faudra une solution pour les livres. Personne ne nous aidera à déménager. A. et L. ont prévenu : « Ne comptez pas sur nous. » Sur la route, en longeant la Saône, je me suis dit qu’il y avait plus de morts que de vivants. Vertige. Puis la concession que S. a achetée à Caluire. J’essaie d’imaginer ma tombe, S. venant déposer un pot de fleurs de temps à autre. J’ai toujours pensé partir le premier. Ce serait trop triste autrement. Les silhouettes sur les trottoirs marchent vers leur fin, et moi, déjà un peu mort, je regarde sans rien dire. La route grésille. Klaxons, appels de phares, nervosité. Un 4x4 arrive par la gauche, plaque boueuse, antenne tordue, clignotant oublié, il se rabat au dernier moment sous les flèches du rétrécissement. À Feyzin, palissades et tags criards sur ciel gris. Plus haut, Arkema. À Pierre-Bénite, on évite les œufs. On dit que les femmes enceintes s’inquiètent. Produits partout : air, sols, bouffe, jusque dans le lait maternel. On continue, parce que la chaîne tourne et que certains y tiennent leur mesure. La colère baisse. À Caluire, je revois la dalle vide et, posé de travers, un pot de chrysanthèmes.


Livraison d’un toit en pièces détachées


La colline qui prie


La colline qui travaille


Sinon, en rentrant j’ai pu régler le bug de la mise à jour 4.4.6 de SPIP. J’ai crée un patch, envoyé au forum spip dev ( Patrick.B.)

Titre : [statistiques] table_objet_sql() reçoit un array dans referenceurs.php → fatal PHP 8

Contexte

SPIP : x.y.z (prod) PHP : 8.x Plugins noyau : statistiques (version livrée avec x.y.z) Plugins : statsobjets 2.1.0, referer_spam 1.2.1 Hébergeur/OS : … Reproduction

Activer Statistiques et StatsObjets. Aller dans : Activités → Statistiques → Liens entrants. Avec certains objets passés par l’interface, l’erreur survient. Résultat obtenu

table_objet_sql() : Argument #1 ($type) must be of type string, array given …/ecrire/base/objets.php:1074 appelé depuis …/plugins-dist/statistiques/inc/referenceurs.php:191 Résultat attendu Affichage normal des référents.

Analyse referenceurs.php::referes() peut recevoir $objets sous forme de tableau (extraction depuis spip_referers_objets ou appels externes). La boucle foreach ($objets as $objet) envoie ensuite un élément potentiellement tableau à table_objet_sql($objet), qui attend une chaîne.

Correctif proposé (défensif)

Extraire proprement la colonne objet depuis sql_allfetsel. Aplatir/normaliser $objets en tableau de chaînes. Passer chaque $objet par objet_type() avant table_objet_sql(). Diff minimal sur plugins-dist/statistiques/inc/referenceurs.php :

--- a/plugins-dist/statistiques/inc/referenceurs.php +++ b/plugins-dist/statistiques/inc/referenceurs.php @@ function referes(string $referermd5, $objets = null, string $serveur = ’’) : string {

  •   if ($stats_objets) {
  • if ($objets = sql_allfetsel(’DISTINCT objet’, ’spip_referers_objets’)) {

  • $objets_par_defaut = array_values($objets) ;

  • }

  • }

  •   if ($stats_objets) {
  • if ($tmp = sql_allfetsel(’DISTINCT objet’, ’spip_referers_objets’)) {

  • // extraire colonne ’objet’, nettoyer et dédupliquer

  • $liste = array_column($tmp, ’objet’) ;

  • $liste = array_filter(array_map(’strval’, $liste)) ;

  • $liste = array_values(array_unique($liste)) ;

  • $objets_par_defaut = $liste ;

  • }

  • } if (sql_fetsel(’*’, ’spip_visites_articles’, ’’, ’’, ’’, ’0,1’)) { $objets_par_defaut[] = ’article’ ;

  •           // (pas de déduplication ici)
  •           $objets_par_defaut = array_values(array_unique($objets_par_defaut)) ;
      }

    @@

  • elseif (is_array($objets)) {

  • // laisser tel quel

  • }

  • elseif (is_array($objets)) {

  • // aplatir d’éventuels sous-tableaux

  • $flat = [] ;

  • foreach ($objets as $o) {

  • $flat[] = is_array($o) ? reset($o) : $o ;

  • }

  • $objets = array_values(array_unique(array_filter(array_map(’strval’, $flat)))) ;

  • } @@

  • foreach ($objets as $objet) {

  • $table_objet_sql = table_objet_sql($objet) ;

  • foreach ($objets as $objet) {

  • if (is_array($objet)) {

  • $objet = reset($objet) ;

  • }

  • $objet = objet_type($objet) ;

  • $table_objet_sql = table_objet_sql($objet) ; $id_table_objet = id_table_objet($objet) ; Remarque front/squelettes (optionnel) Dans prive/squelettes/contenu/stats_referers.html, on peut aussi normaliser côté gabarit pour éviter de passer un tableau :

#SETobjet_norm,#ENVobjet|table_valeur0,#ENVobjet

… utiliser #GET{objet_norm} à la place de #ENV{objet} … Mais le correctif robuste est côté PHP.

Carnets | Atelier

31 octobre 2025

Impression d'accélération du rythme enthousiasme/dépression, mais je regarde ça de manière détachée, ce qui est assez inconfortable. Comme si je ne pouvais plus reprendre la main, observer seulement et patienter, attendre que ce rythme ralentisse. Ce qui procure une sensation bizarre d'être balancé contre les murs de la pièce dans laquelle je me trouve, que ce soit dans le bureau, dans l'atelier, dans la cuisine. À moins que ce texte ait besoin de débuter ainsi, par cette image. Car, dans le fond, derrière cette image, il pourrait y en avoir mille autres. J'imagine bien volontiers être battu, roué de coups, bringueballé par des gens ivres, cogné et recogné… sans pour autant broncher, les observant ainsi faire sans pouvoir agir, sachant pertinemment qu'il ne servirait à rien d'agir, sauf à envenimer encore plus les choses. Non, je regarde, je vois tout, je n'en loupe pas une seule miette. Cela pourrait se produire dans une prison, sur un champ de bataille, au pensionnat… Le point commun est quelque chose d'inscrit dans l'étroitesse de leur front. L'implantation basse de leurs cheveux, leurs regards hallucinés : ce n'est pas moi qu'ils rouent de coups, c'est eux-mêmes. Ils n'en ont aucune conscience. Et à cet instant, le silence atteint un degré extraordinaire. Aucun cri, aucune récrimination de ma part. Je m'enfonce dans ce silence comme dans un havre de paix en plein centre du cyclone. Tout le monde voudrait certainement agir. Quand je discute avec les quelques personnes que je croise, elles sont ulcérées. Il va falloir que ça change, disent-elles, puis soudain, interruption, et surgit un propos décalé comme : "Il faut vite que j'aille acheter le pain avant que ça ferme." Ou encore ça parle de sport, de tout, de rien. Puis le rictus revient, comme une ombre dans le regard. Il va falloir que ça change. Bonne journée. Ce n'est pas une critique de ma part. Je pense faire de même. Tenter de temporiser la rage, l'écœurement, le dégoût. Quand cela devient trop intense, j'entre en catalepsie, je me concentre sur une aspérité d'un mur, je m'introduis dans la moindre fissure, le moindre orifice, je m'enfouis. Bien que j'aie chargé tous les flux dans Feedly, que j'aie exporté l'OPML, que j'aie créé une page pour pouvoir déposer la liste des sites suivis en Markdown, je me refuse à la mettre en ligne. Au final, quelle intention se cache derrière cela ? Je n'en sais rien. J'ai l'URL et je peux l'entrer moi-même dans la barre de navigation. C'est plus rapide que les favoris ? Je ne sais pas. Je continue à publier sur Mastodon et Seenthis, je dépose mon post et je m'en vais, je ne cherche même plus à suivre le flux. De temps en temps, un message auquel je réponds, mais souvent via messagerie ou en privé. S'exposer à la fois entièrement et très peu est encore une sorte de paradoxe. Mais je crois que c'est surtout la peur de perdre du temps qui me fait agir ainsi. Et aussi le déjà-vu. La peur d'un certain ennui. Ce soir, tandis que je m'assoupissais devant un article de blog, j'ai eu une vision de rats serrés les uns contre les autres dans une presque obscurité. Je n'avais pas peur, j'étais seulement étonné d'être là, rat parmi les rats. Je pense que la chaleur humaine, si je puis dire, n'est pas l'apanage de sapiens.|couper{180}

Autofiction et Introspection

Carnets | Atelier

30 octobre 2025

J’ouvre les yeux. Quelques secondes durant, le monde est neuf, propre, étincelant comme au premier jour. Puis quelqu’un ricane de ce que j’écris, et tout redevient terne, sale, puant. La petite vengeance de l’ordinaire sur l’intact. Le sacré. Se lever avant que l’une des trois gunas ne décide de sa victoire. Direction le café. J’ai pris un somnifère, au radar, pause, et je croise les doigts. Effectivement, il fait gris. Mais ça peut ne pas durer. La chatte réclame. Plaisir du rythme indéfectible des estomacs. Sinon, peu de choses à dire qui puissent intéresser « le monde ». Il est même possible que, bientôt, très bientôt, tous les carnets rejoignent leur anonymat primordial. En parcourant de nombreux sites hier : personne n’étale ses états d’âme comme moi. Je dois être une sorte de monstruosité, une anomalie littéraire. Je suis même étonné qu’on ne soit pas encore venu me tuer. À mort le boomer ! Tout ce que j'espère, c'est que l'autre côté ne soit pas exactement semblable à celui-ci. Parfois j'y pense. Je pense même qu'on peut mourir sans même s'en rendre compte. Pas tout de suite. Et puis, au bout d'un certain laps de temps, on assiste à une sorte d'absurdité généralisée, de plus en plus d'anomalies surgissent, et l'on comprend que quelque chose s'est produit. Difficile alors de géolocaliser notre position... Enfer, purgatoire. Tout ce que l'on peut dire, c'est que ça n'a pas l'air d'être paradisiaque.|couper{180}

Autofiction et Introspection

Carnets | Atelier

29 octobre 2025

Je ne dors toujours pas. Il est bientôt trois heures. J’ai pu ôter mon pansement. Toujours aucune douleur, ça cicatrise bien. Néanmoins il faut s’abstenir de porter des charges lourdes. J’ai lu, une bonne partie de la soirée et de la nuit, quelques livres de Gustave Le Rouge. Je pense à FB, plongé de son côté, probablement au même moment, dans la vie de Lovecraft, 1925, à moins qu’il ne soit dans celle de Balzac, de Rabelais. Chacun faisant comme il peut pour échapper à l’imminence d’une catastrophe que nous pressentons tous. Et, à côté de tout cela, le rouleau compresseur du quotidien. Cette réalité implacable du temps qui passe. Sur les cinq cent quatre-vingt-dix euros gagnés au cours des trois derniers mois, cent vingt-six iront à l’URSSAF. Regarder froidement les faits. Information lue par hasard — qu’au mois de novembre deux mille vingt-six — les découverts autorisés seront soumis au même régime que les crédits à la consommation. C’est-à-dire que de nombreuses personnes, ne gagnant guère plus que le salaire minimum, se verront refuser ce pseudo-crédit : un pas de plus vers la paupérisation en France. Ce chaos, ces peurs que l’on ne cesse de nous brandir, ces sempiternelles diversions : quelles fonctions ont-elles, vraiment ? Tout cela, apparemment, ne semble avoir aucun sens. Pour ma part, je crois que cet immense théâtre de guignol montre à quel point le système est malade ; à cet instant il devient véritablement plus dangereux, réellement prêt à tout, à tous nous tuer au besoin pour se survivre à lui-même. Ce qui fait que j’ai retardé le moment de remonter au grenier pour descendre les cartons de livres paternels ; en fin de compte, j’ai décidé de scanner un par un les ISBN et de les refourguer sur des plateformes de vente d’occasion. Je n’ai plus le temps de lire des policiers, j’ai tellement d’autres livres à lire encore. Et puis j’ai peur qu’à la fin tout cela s’abîme. Le froid s’est déjà logé là-haut et j’ai bien peur que l’humidité n’arrive d’ici peu. S. s’est fait vacciner contre la grippe. Ses analyses reçues hier sont bonnes. C’est de mon côté que ça se corse. J’ai envoyé celles-ci à M. par l’entremise de l’espace Santé. Qu’on sache tout de moi à travers ces divers espaces — finance, santé, littérature — quelle importance. Je n’ai pas, de moi-même, une si haute idée d’importance pour que la peur me vienne d’être à découvert, pas en très bonne santé, vieux et un peu plus mauvais qu’hier. En cela, ce que je pense ou dis n’a guère d’importance dans l’immédiat, c’est juste un témoignage comme un autre de la vie de notre temps. Pansement d’urgence pour remplacer les flipbooks défaillants. Mais il faudra revenir dans les boucles SPIP, car les compilations, si elles restituent bien les articles par rubrique et mots-clés, conservent toujours le titre « carnet / mois ». Ce qui ne va pas pour les rubriques Lectures, Fictions, etc. Création d'un .htaccess spécial dans le dossier JS pour débloquer turn.js. Étudié le lecteur de flux RSS Feedly et commencé à créer ma liste de sites suivis, en fait celle qui existe déjà dans les favoris du navigateur. J’ai réussi à bricoler un outil de conversion via les fichiers de TC récupérés sur son Git. Reste à étudier le problème des fréquences, qui semble dépendre de mon usage. En fait, je ne me pose pas la question de combien de fois je vais visiter tel ou tel site dans une journée, une semaine, un mois. Ce sont de nouvelles questions inédites. Et, comme telles, certainement plus intéressantes en soi que toute réponse à leur apporter. Repris aussi deux textes sur la littérature de SF en Chine et en Inde dans Histoire de l’imaginaire. Ajouté une réflexion dans la rubrique Fictions/archives/Instituteur. En tirant parti de ma lecture de Le Rouge. C’est après coup, en me demandant soudain pourquoi Le Rouge, que j’ai compris ce lien avec mon arrière-grand-père. illustration île de la Platière, Saint-Pierre-de-Boeuf|couper{180}

Auteurs littéraires Autofiction et Introspection