Il s’agit juste d’un lieu de partage et de réflexion écrit/géré, au départ, par Groink2369.
Il est ouvert à d’éventuelles collaborations à d’autres penseurs sous conditions d’être au moins
plusieurs dans sa tête.
Le nom du blog vient de l’allemand et signifie Source des idées. Il s’agit également d’un jeu
de mot Quelle idée.
Pensée du jour
2026-09-04, groink2369 -
une notification m’a renvoyée au journal d’il y a quatre ans, à la même période. en août 2022 j’écrivais: il faudrait que je m’invente une manière d’écrire à la lisière du pour soi/pour l’extérieur, s’autoriser à osciller, renoncer à l’explication sans abandonner l’intelligible, que les journaux soient l’outil qui creuse auprès de la main, plutôt que le trou dont on ne sait quoi faire. — journaux brésiliens – juillet 2026. camille ruiz. 5 août 2026.
Cela ressemble assez fort à ce que je veux pour cet espace : une zone entre deux : pour moi et pour l’extérieur. C’est une frontière tout en sachant qu’en réalité, je suis chez moi.
Cela explique/conforte l’idée de ne pas avoir de commentaire. Peut-être des webmentions car l’avis de l’autre reste chez lui et propre à lui. Mon espace reste le mien. Je ne suis pas obligé de devoir gérer son avis.
Non pas que je n’aime pas les autres. Bien au contraire. Dans une certaine limite, oui.
Je vous aime bien. Et en même temps, moins je vous vois, mieux je me porte. Cela veut dire qu’il n’y a pas de problème. Et, comment dire ? je préfère les éviter les problèmes. Je ne sais pas vous.
C’est exactement ce que je pense. C’est d’ailleurs de moi cette expression.
La celèbre émission de TV franco-allemande.
Je l’aime bien; même si avec les années, ils se sont ouverts à d’autres pays dont l’Espagne et la Pologne.
Dommage qu’ils ne diffusent pas la totalité des émissions sur Youtube ou via un fil RSS maison. Ils pourraient peut-être envisager de recycler les anciennes émisions.
Personnellement, je ne les ai pas tous vu.
Pour l’occassion, voici quelques liens vers des saisons de Karambolage :
Il m’a fallu du temps pour comprendre le titre. HERBIER TYPOGRAPHIQUE
Les deux mots séparés ne posent aucun problème mais ensemble, cela ne m’est pas paru évident.
J’aime ce côté monomanique/geek/fan voir de l’ordre, peut-être, du trouble obessionnel sur un sujet qui semble anodin.
En réalité, l’herbier traite de l’histoire, histoire de l’écriture mais aussi d’histoire de perception et donc de soi, enfin d’eux.
via Je-ne-sais-plus-qui.
Faire tourner une pompe 3V
2023-08-29, groink2369 -
J’ai trouvé deux petites pompes à eau alimentable en 3V3.
La première ne fonctionne pas. Dommage. J’attends le retour du vendeur.
La deuxième fonctionne parfaitement.
J’ai mis un peu de temps à trouver le bon circuit.
La plupart des schéma partent du principe d’une alimentation externe en 12V étant donné que la pompe tourne en 12V également.
Personnellement, je n’ai pas besoin d’une grosse pompe dans mon cas. Je veux donc trouver un circuit qui fonctionne en 3V3.
Le soucis est que les GPIO ne fournissent moins de 100 mA. Or une pompe cela nécessite plus.
J’aurais pu utiliser un relai (voir ESP32IO - ESP32 controls pump).
Un relai, c’est pratique et cela a ses limites. Et comme j’aime me pourrir la vie (et que j’ai vu plein de schéma sans relai), je me suis dit : “Fais un circuit avec un MOFSET !”
Sauf comme je l’ai dit, ils sont prévus avec du 12V.
Après deux heures de tests, j’ai enfin trouvé le circuit qui convient.
Le Mofset utilisé est DMT6009LCT car sin V_GS(TH) est compris entre 0.7 et 2V; autrement dit, le MOFSET laissera passer le courant entièrement dès qu’il recevra plus de 2V via son GATE, piloté donc par un GPIO qui sort du 3.3V en position HIGH.
Aucun courant ne passer quand le Gate sera alimenté sous les 0.7 V. Dans ce cas, il suffit de couper le GPIO pour obtenir 0V.
Le MOFSET est à canal N ce qui explique pourquoi il est mis près du GND (ici le Source).
Etape suivante :
ajouter le senseur capacitif d’humidité du sol (facile)
écrire le programme pour contenter la plante en eau (plus long).
nginx ou nginx Proxy Manager
2025-10-20, groink2369 -
J’ai tenté d’installer nginx. J’y suis bien arrivé. C’est simple et facile.
** A condition que votre port 80/443 ne soit pas déjà utilisé par un autre service**
Sauf que … je souhaitais une interface graphique (parce que, même si je suis Geek, je me connais : je ne le suis que par phase).
Donc j’ai repéré nginx Proxy Manager (NPM de son petit nom à ne pas confondre avec NPM, le gestionnaire de paquets Node.js).
Pour cela, il faut Docker.
La méthode proposée est la suivante :
Créer un folder /opt/stacks/nginxproxymanager
Rentrer dedans (avec cd)
Créer *compose.yml avec le contenu suivant :
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
#environment:
# Uncomment this if you want to change the location of
# the SQLite DB file within the container
# DB_SQLITE_FILE: "/data/database.sqlite"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Lancer le compose : docker compose up -d
Il se peut que nginx Proxy Manager ne se lance pas car quelqu’un occupe déjà certains ports (80 ou 443). Modifier cela pour que NPM se lance.
Si vous oubliez votre mot de passe (oui, cela arrive aux plus distraits et vu le nombre de mot de passe, c’est possible)
1. Ouvrir le terminal du l’instance nginx : docker exec -it nginx* sh
1. Installer sqlite3 pour modifier la base de données : apt install sqlite3 -y
1. Accéder à la base de données : sqlite3 /data/database.sqlite
1. Supprimer tous les utilisateurs : UPDATE user sets is_deleted=1;
1. Sortir de sqlite : exit;
1. Sortir de l’instance nginx : exit
1. Redémarrer l’instance nginx : docker restart nginx*
`
#Update 2025-10-21
Et oui, déjà un update. Nginx Proxy Manager, c’est bien … pour gérer des proxy.
Sauf que mon idée, c’est de faire plus que cela, notamment d’héberger des services différents dont du web classique.
Donc retour à nginx :)
Installation rapide avec apt-get install nginx
Lancement systemctl start nginx
Installation de php (sait-on jamais) : apt-get install php8.4-fpm php8.4-mysql php8.4-curl php8.4-gd php8.4-zip php8.4-xml; Il y a plus que simplement PHP. Veillez à vérifier la dernière version encore et adapter dans la commande.
Ajouter PHP dans nginx en éditant /etc/nginx/sites-enabled/default en remplacant :
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
A nouveau, il faut vérifier la version de PHP (en 2025-10, c’est la 8.4).
Recharger nginx avec systemctl reload nginx
C’est la base.
Tous les sites actifs sont dans /etc/nginx/sites-enabled. Les sites disponibles sont dans /etc/nginx/sites-available.
Idéalement, on prépare puis on rend disponible.
Une manière de faire (ou contourner l’esprit) est de faire des liens symobliques : ln -s /etc/nginx/sites-available/monsite.com /etc/nginx/sites-enabled/.
Avant de relanger nginx (avec un systemctl restart nginx), on peut vérifier la configuration avec nginx -t. Plutôt utile !
Et pour le reverse proxy ?
Il suffit de créer un fichier dans /etc/nginx/sites-enabled contenant :
Cela permet dont de rediriger discrètement pdf.home.lan vers http://192.168.1.2:3000.
Si je dois rediriger vers un port et un sous-dossier explicitement ?
Pour une raison que j’ignore (et j’ignore beaucoup de choses), la fonction proxy_pass ne fonctionne pas.
J’utilise return 301 http://MON_IP:MON_PORT/MON_DOSSIER :
J’utilise le moteur hexo pour mon blog statique.
Je n’ai pas d’avis sur le côté NPM (si ce n’est que c’est encore un truc à maintenir à jour). Je ne l’utilise pas ailleurs.
hexo propose une ligne de commande pour déployer le blog sur Git, Heroku, Netlify, via Rsync, … et FTP.
Mon hébergeur propose cette solution (oui, c’est un module de base que j’ai actuellement).
La documention présente comment faire.
Les données doivent bien être rajoutées dans votre _config.yml. A priori, c’est tout en bas).
Vous pouvez après générer et déployer en une commande : hexo generate --deploy ou hexo deploy --generate.
Si vous êtes un gros flemmard (comme moi), vous pouvez également rajouter une ligne dans votre crontab (pour rappel, crontab -e pour le modifier):
Il est peu probable qu’il soit le dernier Premier ministre du Royaume-Uni vu que les prochaines élections
générales auront lieu en août 2029.
Il faut encore réaliser les référendums. J’en doute donc.
Par contre, cela pose question sur les mouvements séparatistes qui risquent de prendre de l’ampleur dans
les années à venir au sein de l’Europe (et de l’Union Européenne).
Pensée du jour
2026-02-15, groink2369 -
Aujourd’hui, le modèle de père pour nos enfants est encore mal défini et illustré.
Oui, il y a milles et une façon d’être père.
Même si quelques (timides ?) nouveaux modèles sont à l’écran, le changement se fera lentement.
Magasin de plantes, graines, … situé à Halle.
Pas encore testé
Pensée du jour
2026-09-29, groink2369 -
J’ai commencé à me questionner et à écrire sur les réseaux sociaux.
Est-ce que la démarche d’écrire chacun de nous dans notre coin en permettant parfois d’avoir des commentaires et/ou des backlinks, fait de cette démarche un réseau social ?
Certes, il n’y a pas de programme/site web centralisé.
Certes, il n’y a pas d’algorithme, bien que je doute que ce soit réellement une obligation d’en avoir un.
Certes, nous ne partegeons pas directement un même centre d’intérêt. On pourrait encore
discuter d’un point commun : celui de diffuser chez soi.
Mais finalement, le réseau social est un réseau, une interconnexion entre différents éléments
qui crée un lien social entre les différentes composantes.
Même si je ne vous connais pas, je vous lis. J’ai des émotions. Je partage vos aventures.
Chez moi, cela crée un lien. Vous viendrez à mourir, j’en serai triste. Je regretterai vos
écrits.
Même si, au final, cela n’a pas d’importance que nous créons un réseau social, la question
m’est venue.
Je suis persuadé que mon explication n’est pas claire.
Peu importe.
Si vous souhaitez, vous pouvez partager de votre côté votre vision.
Si vous souhaitez vraiement être lu, envoyez-moi un message sur
info@ideenquelle.be.
qBittorent
2025-10-20, groink2369 -
Installer qBittorent
Il existe deux versions : une version GUI local (qbittorrent) et une version Web GUI (qbittorrent-nox).
Pour installer, il faut invoquer sudo apt-get install qbittorrent ou sudo apt-get qbittorrent-nox
Lancer qBittorrent
Cela se fait en utilisant une des commandes : qbittorent ou qbittorrent-nox
Lancement de qBittorent à chaque redémarrage
Pour permettre le lancement de qBittorent à chaque (re-)démarrage du système, il faut le renseigner comme un service.
Dans les explications que j’ai suivies, il préconise de créer un nouvel utilisateur. J’avoue ne pas avoir compris pourquoi.
sudo useradd -r -m qbittorrent
L’argument -r est utilisé pour signaler que nous voulons un utilisateur système.
L’argument -m est utilisé pour créer son répertoire parent/propre.
Il faut rajouter l’utilisateur au groupe qbittorrent juste créé : sudo usermod -a -g qbittorrent $USER
L’argument -a est utilisé pour ajouter un attribut à l’utilisateur.
L’argument -G est utilisé pour signaler que c’est sur un groupe que l’on travaille.
Maintenant, nous pouvons créer le service en créant le fichier suivant /etc/systemd/system/qbittorrent.service (il faut le créer en tant que sudo) :
Personnellement, j'ai d'abord lancé `qbittorrent-nox` et configuré tout dans l'interface via mon utilisateur. J'ai donc modifié l'user pour mettre le mien.
1. Il faut démarrer le service nouvellement créé : `sudo systemctl start qbittorrent`
1. Il est possible de vérifier le status du service : `sudo systemctl status qbittorrent`
1. Pour permettre que le service s'active à chaque démarrage, il faut activer le service : `sudo systemctl enable qbittorrent`
Modifier le port pour accéder
Si besoin, modifier le port auquel accéder à GUI Web (utile si vous avez de multiples services).
Personnellement, je l’ai mis sur 49152.
Ignorer l’authentification pour les clients avec une adresse IP spécifique
Dans Options/IU Web > Nécessite une authentification, cocher les deux options commençant par “Ignorer […]” et rajouter les lignes suivantes dans l’encadré :
127.0.0.1/32
192.168.1.0/24
Rediriger l’adresse via nginx
J’utilise personnellement nginx Proxy Manager.
Aller dans Hosts > Proxy Hosts > Add Proxy Host.
Domain Names : qbit.lan
Scheme : http
IP : 192.168.1.2
Forward port : 49152
Cela fonctionne très bien … sauf avec le point précédent.
Pour éviter l’authentification, il faut configurer un Redirection Host
Domaine Names : qbit.lan
Scheme: http # en laissant à 'auto', une erreur est générée
Forward domain: 192.168.1.2:49152
HTTP Code : 308 Permanent redirect
Preserve Path : OK
Je viens d’effectuer quelques changements sur le blog, propulsé par hexo.
J’avoue que cela m’a pris un peu la tête.
Nouveau layout
Par défaut, hexo prévoit trois layouts.
post sont tous les posts déjà prêts et publiables;
draft sont les brouillons. Ils ne sont donc pas diffusés. Il faut passer par la commande hexo publish pour qu’ils soient diffusés.
page sont les pages.
Ces trois éléments ont un comportement fixe. Graphiquement, ils sont paramétrables/modifiables via le template.
Il est possible de prévoir de nouveaux layouts.
Pour cela, il faut créer un fichier .md dans le dossier /scaffolds. Pour faire simple, un copier/coller de post.md vers link.md permet d’avoir un bon départ :
draft = false
+++
title = '{{ title }}'
date = '{{ date }}'
tags = []
draft = false
+++
Je l’ai modifié pour avoir un champs supplémentaire :
draft = false
+++
title = '{{ title }}'
date = '{{ date }}
layout : {{ layout }}
link =
draft = false
+++
Rien de bien sorcier en somme.
Maintenant, j’ai modifié mon template /themes/mon-template/layout/_partial/article-excerpt.ejs pour que, lors de la génération de mon résumé d’article, il fasse apparaitre clairement au lecteur qu’il s’agisse d’un lien au moyen d’une icone.
Le code n’est pas complet. Il manque la fin de la page. Mais l’idée n’est pas de recréer un tutorial pour créer un thème. L’idée est juste de partager des tips&tricks que je n’ai pas trouvé facilement/simplement.
Article avec une fin de vie
J’ai également créé des posts liés à mon humeur.
Toutefois, l’idée n’est pas que ces posts soient éternelles. J’ai envie de leur donner une date limite d’utilisation.
J’avoue que j’ai galéré à mettre cela en place. La documentation n’est pas bien faite et il y a peu d’exemples sur ce type de modification. J’ai péché : j’ai fini par utiliser Gemini qui, à mon grand étonnement, a très bien répondu (mieux que ChatGPT sur un autre projet).
Ma première idée était de mettre une variable dans ma configuration indiquant la date limite de vie (30 jours).
Lors de la génération des pages, si le layout est d’un type spécifique et si la date est passée, je ne l’affiche pas. Cela se fait dans le template.
Il faut gérer la date (et là, j’ai sué, même si c’est affreusement simple rétrospectivement mais la documentation de hexo est trop faible sur ce point-là pour des néophytes) :
Ce qui m’a entravé l’esprit, c’est que hexo permet d’utiliser les dates via moment.js mais que dans le template, la plupart des méthodes ne fonctionnent pas. Bref, j’ai trouvé une solution.
L’idée est plaisante. Toutefois, le post existe toujours en direct.
Donc je veux restreindre la création même. Pour cela, il faut intervenir au niveau de la génération.
Cool ! Et je fais comment ?
J’ai donc créé un dossier /scripts à la racine du projet puis un fichier unpublish_expired_post.js :
const moment = require('moment')
const fs = require('hexo-fs')
const path = require('path');
'use strict';
function deleteFolderRecursive(folderPath) {
if (fs.existsSync(folderPath)) {
fs.readdirSync(folderPath).forEach((file) => {
const curPath = path.join(folderPath, file);
if (fs.lstatSync(curPath).isDirectory()) {
deleteFolderRecursive(curPath);
} else {
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(folderPath);
}
}
// If a Post is expired,
// - set the parameter punlished to false
// - delete the public file
// - remove the Post from the actual generating list
hexo.extend.filter.register('before_generate', function () {
const Post = hexo.model('Post');
if (!Post) return;
const now = new Date();
// Identify the expired Posts
const expiredPosts = Post.find({
end_date = '{ $lt: now } // Warehouse allows the use of query operators.
});
if (expiredPosts.length === 0) return;
expiredPosts.forEach(post => {
// Safety check for the date
const endDate = new Date(post.end_date);
if (isNaN(endDate)) return;
// Disable the post for the actual generating process.
post.published = false;
// Remove it from the model .
Post.removeById(post._id);
hexo.log.info(`Post expiré masqué : ${post.title} (expiré le ${moment(post.end_date).format('YYYY-MM-DD')})`);
// Remove the published file
try {
const postFolder = path.join(hexo.public_dir, post.path);
deleteFolderRecursive(postFolder);
hexo.log.info(`Post expiré supprimé: ${post.title} `);
} catch (err) {
hexo.log.warn(`Impossible de supprimer ${post.path}: ${err.message}`);
}
// Full path to the source file (.md)
const fullPath = path.join(hexo.source_dir, post.source);
// Set the status to unpublished
if (fs.existsSync(fullPath)) {
let content = fs.readFileSync(fullPath);
// Remplace published: true to false, or add the line if missing
if (content.includes('published: true')) {
content = content.replace('published: true', 'published: false');
} else if (!content.includes('published:')) {
// Insert after the first "+++"
content = content.replace('+++', '+++\npublished: false');
}
fs.writeFileSync(fullPath, content, 'utf8');
hexo.log.info(`Fichier source mis à jour (Draft) : ${post.source}`);
}
});
});
J’ai sorti l’artillerie lourde :
non génération du post pour ce cycle
suppression du fichier dans le dossier public
mettre le status published à false
J’ai également rajouté un autre script (set_endDate.js) pour que certains types d’articles aient automatiquement une date de fin ajustée selon la configuration de hexo:
'use strict';
const moment = require('moment')
const fs = require('hexo-fs')
hexo.on('new', function(data){
// Retrieve the parameter from _config.yml (or set a default value).
const settings = hexo.config.lifespan_settings || {}
const layoutMatch = data.content.match(/layout:\s*(\w+)/);
const currentLayout = layoutMatch ? layoutMatch[1] : 'post';
// Verify if the actual layout has a specific lifespan
if (!settings.hasOwnProperty(currentLayout)) {
return;
}
// Retrieve the lifespan for the layout used for the new post
const lifespan = settings[currentLayout]
// calculate the end date of the post
const endDate = moment().add(lifespan,'days').format('YYYY-MM-DD HH:mm:ss');
// replace 'end_date' default by the calculated one
const newContent = data.content.replace(/end_date = '2400-12-31 01\:00\:00/g, 'end_date = ''+endDate);
// write the change in the file
fs.writeFile(data.path, newContent, function(err){
if (err) {
console.log("Error when writing 'endDate' variable");
} else {
console.log("'endDate' variable added");
}
});
});
Site pratique pour faire des cartes du monde.
La version gratuite est assez complète (carte du monde, d’Europe, d’Europe lors du WW I et WWII, …).
Possibilité de mettre des couleurs, des légendes, de zoomer, … et sauvegarder dans le format maison (ce qui est pratique pour pouvoir modifier une carte par après).
Outil pour designer, planifier (et générer une configuration) pour un homelab.
Je dois d’ailleurs finaliser la configuration du mien.
L'homme et l'oiseau
2026-01-31, groink2369 -
Il s’agit du magazine édité par la Ligue Royale Belge pour la Protection des Oiseaux (LRBPO).
J’ai reçu un exemplaire lors d’un achat chez eux.
Je ne suis pas assez fan ni convaincu pour m’abonner.
Par contre !
Par contre, c’est agréable à lire. Il y a de l’espace, du vide. Les photos sont là pour être vues (en même temps, quand on parle animaux, il vaut mieux avoir de jolies photos).
Le texte n’est pas spécialement aéré. La typographie est assez commune.
Ce qu’il y a, c’est du vide. Les marges sont énormes, de l’ordre de 4 à 5 cm. C’est reposant.
Vraiment reposant.
Vous avez un Raspberry ou Arduino/ESP32 ?
Vous manquez d’idée ? Vous avez déjà réalisé tous vos projets personnels et aimé le défi ?
Voici mes idées de projets :
Suivi de consommation d’énergie (eau, gaz, électricité) que ce soit en général dans la maison ou même sur certaines utilisations précises (par exemple, suivre la consommation de la cuisine par rapport au reste)
Citerne d’eau de pluie (niveau d’eau) + arrosage (semi-)automatique du potager
MediaCenter pour enfants approuvés par des parents pas encore totalement désabusés; autrement dit, qui permet de suivre quand le MediaCenter a été utilisé et pour combien de temps et ce qui a été fait
“Tu rentres, tu ranges tes chaussures !”. Pas de chaussures au premier étage. Donc si quelqu’un vient de l’extérieur, il doit enlever ses chaussures. Il suffit d’avoir un détecteur sur l’armoire à chaussures et sur la porte d’entrée.
“Ah. fiston est rentré.” Puce RFID ou Caméra avec reconnaissance des visages pour savoir qui et quand est à la maison.
“Il fait chaud ici.” Détecteur de température, d’humidité et de CO2 qui guidera (partiellement) la ventilation double flux.
“Il y a du soleil.” Augmentation de l’auto-consommation de production d’électricité via panneaux photovolotaiques. Celui-là, il faut déjà les panneaux.
D’autres projets sans que ce soit spécifiques à un Raspberry/Arduino :
Agrégateur de posts Linkedin avec statistiques des posts qui ont été lus/approuvés. Cela permet de trier les personnes suivies sans intérêt et d’éviter d’avoir recours à l’algorithme LinkedIn pas toujours au top.
Signature de PDF (par image) en point&click.
Dossier de location/emprunt (3 fiches de paies, pièce d’identité, avis d’imposition, …). Source.
Backup automatisé (je sais, cela devrait être une priorité).
Les projets peuvent paraitre assez confus. Je vous rassure : dans ma tête, c’est assez clair (enfin, j’aime le penser).
Un ensemble de fonctions pour manipuler des images (crop, resize, …) qui s’exécute dans le browser.
Auto-hébergeable, open-source, … dans la même ligne que bentopdf ou stirling (mais eux, ce sont les PDF).
Un défaut : pas de possibilité de modifier les layouts (pour que cela s’intè parfaitement avec le reste du site en cas d’auto-hébergement)
Sauvegardez, sauvegardez, pauvre fou !
2026-09-06, groink2369 -
Si vous publiez du contenu en ligne
Ayez une copie locale de tout le contenu.
Autant que possible, publiez de votre machine vers l’extérieur, le service, le serveur. Considérez que l’original est local et que le public n’accède qu’à une copie.
Si 2 ne rentre pas dans votre démarche de publication, que vous publiez sur un serveur distant, créez un système automatisé de sauvegarde locale de tout le contenu (ainsi que les métadonnées) disponible sur le serveur.
Si vous avez la possibilité, créez une 3ème copie de sauvegarde automatique sur un disque externe local.
Si vous avez la possibilité, créez une copie automatique sur un serveur distant (qui n’est pas celle du contenu publié sur le serveur accessible au public).
Avoir son nom de domaine est un atout bien qu’il entraîne un coût supplémentaire de location. Il vous permet une mobilité, une flexibilité pour l’accès public de votre contenu.
Pensées amicales à une personne qui a perdu tout son contenu soudainement bloqué par le service distant. (Mise à jour : le service a redonné accès au contenu).
Je n’ai pas encore fait entièrement le nécessaire.
C’est en cours mais c’est lent car les idées fusent dans la tête et parfois, je ne reste pas concentré; je fais face à un manque de clarté; je suis interrompu.
J’avance, petit à petit.