Org Blog de Sys4
06-06-2021

Migration avec LVM de mon serveur Minetest « NALC » vers un disque SSD

Je viens de rajouter un disque SSD en SATA 3 dans mon PC qui héberge le serveur Minetest « Notre Ami Le Cube » ou NALC pour les intîmes. Cette machine héberge également la machine virtuelle qui contient tous mes services internet auto-hebergés du domaine sys4.fr.

Le but était d'améliorer les performances du serveur en y déplaçant toutes ses partitions système et home sur ce SSD d'une capacité de 480Go.

Cette migration me semblait indispensable car la cohabitation du serveur NALC avec la VM sys4.fr sur des disques mécanique n'était pas idéale. Les accès disque générés par la VM ou même simplement de faire quelques opérations de maintenance faisaient lagguer le serveur de jeux Minetest au point que ça en devenait insupportable. Et à côté de ça le processeur se roulait joyeusement les pouces !

Et bien cette migration c'est super bien déroulée et beaucoup plus facilement et rapidement que ce que j'avais imaginé au départ. Tout cela grâce à la gestion de mes disques au travers de la couche LVM. Et en prime j'ai quasiment éliminé tous les lags en jeux. Il en reste tout de même encore quelques uns que j'éxaminerai plus tard en détail mais en attendant le serveur a bien retrouvé une seconde jeunesse !

Du coup cela m'a donné envie de vous relâter cette expérience.

Composition matérielle du serveur

Tout d'abord voici les caractéristiques principales de cette machine qui il est vrai commence un peu à dater mais qui je l'espère, a encore de beaux jours devant elle :

  • Processeur AMD FX (8370) 8 cœurs/threads cadencés à 4Ghz et boost à 4.3Ghz.
  • 8Go de mémoire DDR 3 en dual channel.
  • 2×4To de disques durs Seagate sur interface SATA3.
  • Système d'exploitation : Gentoo Linux

Je ne m'étendrai pas sur le reste des composants de cette machine car cela n'aurait aucun interêt.

Schéma de partitions

Nous voici donc au cœur du sujet où tout va se jouer.

Avant l'ajout du disque SSD, toutes les données étaient contenues sur un disque dur de 4To contenant six partitions. Ces partitions étaient dupliquées sur un second disque identique dont quatres d'entre elles formaient des grappes en RAID 1 :

Disque 1 Disque 2 Utilisation
/dev/sda1 /dev/sdb1 Partitions EFI
/dev/sda2 /dev/sdb2 swap
/dev/sda3 /dev/sdb3 raid1 en /dev/md127
/dev/sda4 /dev/sdb4 raid1 en /dev/md126
/dev/sda5 /dev/sdb5 raid1 en /dev/md124
/dev/sda6 /dev/sdb6 raid1 en /dev/md125

Je vous avais parlé de LVM au début de cet article. Voici donc la représentation de la couche LVM qui utilisait les grappes raid comme volumes physiques :

Volumes Physiques (PV) Groupes de Volumes (VG) Volumes Logiques (LV)
/dev/md124 vg-backup backup, holding
/dev/md125 vg-partage partage
/dev/md126 vg-home home
/dev/md127 vg-system root, boot, opt, tmp, var, vartmp, usr, portage, distfiles

Je souhaite aboutir au schéma suivant avec l'ajout du disque SSD :

Volumes Physiques (PV) Groupes de Volumes (VG) Volumes Logiques (LV)
/dev/md124 vg-backup backup, holding
/dev/md125 vg-partage partage
/dev/sde3 vg-system root, boot, opt, tmp, var, vartmp, usr, portage, distfiles, home

Je vais donc devoir déplacer entièrement le groupe de volumes « vg-system » vers /dev/sde3 puis déplacer le volume logique « home » vers « vg-system » et enfin supprimer « vg-home ».

Le disque SSD aura le schéma de partitionnement suivant :

Partitions Usage
/dev/sde1 EFI
/dev/sde2 swap
/dev/sde3 LVM (contiendra le VG vg-system)

Comme vous pouvez le deviner, ce disque deviendra également le disque de démarrage du système. C'est pour cela que j'y ai inclut la partition EFI. En option j'ai également rajouté une partition de swap juste par acquis de conscience car il est peu probable qu'elle soit utilisée (oui j'utilise zram aussi… Bref c'est un autre sujet).

Ajout du disque SSD

Me voilà parti pour mettre les mains dans le camboui.

Je ne l'ai pas essayé mais je pense qu'il aurait été tout à fait possible de brancher le disque SSD à chaud et qu'il soit détecté par le système sans devoir redémarrer. Je n'ai pas choisis cette option car le branchement du disque dans ma tour était assez périlleux et risqué à faire sous tension.

Le disque est maintenant branché et reconnu par le système. Un petit coup de fdisk et j'obtiens le schéma de partitions déjà montré juste au-dessus :

Partitions Type
/dev/sde1 EFI
/dev/sde2 swap
/dev/sde3 LVM

Maintenant j'indique à LVM que la partition /dev/sde3 est un volume physique :

pvcreate /dev/sde3

Déplacer les données

Le moment fatidique approche et je dois avouer que je ne suis pas serein à ce moment là mais je me rassure en lisant le man des commandes LVM et quelques docs sur le web.

La première chose à faire est de sauvegarder ce qui est important. De ce côté là je suis plutôt tranquille car mes sauvegardes sont automatisées.

Ça y est je me sens prêt à démarrer, c'est parti mon kiki !

  1. Déplacer les volumes logiques contenues dans vg-system de /dev/md127 vers /dev/sde3 :
    Pour réaliser cette opération il faut d'abord étendre le groupe de volumes vg-system sur le volume physique /dev/sde3 avec la commande suivante :

    vgextend vg-system /dev/sde3 -A y
    

    Le groupe de volumes vg-system repose ainsi sur deux volumes physiques que sont /dev/md127 et /dev/sde3.
    Ensuite je peux déplacer tous les volumes logiques pour qu'ils occupent physiquement le volume /dev/sde3. La commande suivante permet de le faire :

    pvmove /dev/md127 -A y /dev/sde3
    

    Cela prend quelques minutes et un compteur de progression m'indique l'avancement de l'opération.
    Ce que je trouve génial avec ça, c'est que le système est toujours utilisable pendant ce temps là ! Je peux me faire une petite partie de Minetest pour patienter ;-)
    Cinq minutes plus tard, l'opération a réussie et je sens déjà une meilleure réactivité du système \O/ !

    Il ne me reste plus qu'a détacher du groupe le volume physique /dev/md127 devenu inutile :

    vgreduce -a -A y vg-system
    
  2. Déplacer le volume logique home vers le groupe de volumes vg-system :
    L'opération va être différente car le déplacement ne se fait pas au sein du même groupe de volumes mais entre deux groupes distincts. En vrai l'opération consiste à déplacer le volume physique contenant le volume logique home vers le groupe de volume vg-system. La commande vgsplit sera notre amie :

    vgsplit -n home vg-home vg-system -A y
    

    Mais ça ne marche pas car j'obtiens le message suivant à l'exécution de la commande :
    Logical volumes in "vg-home" must be inactive.
    Pas de problèmes ! Pour désactiver le volume logique je dois stopper le serveur NALC et la VM sys4.fr qui résident dans la partition /home, démonter tous les points de montage situés sous /home puis la partition /home elle-même, désactiver le volume logique home, relancer la commande vgsplit, réactiver le volume logique home, remonter la partition /home et enfin relancer le serveur NALC et la VM sys4.fr. Voici les commandes correspondantes :

    # Arrêt du serveur NALC
    su -c "/home/minetest/nalc-stable/shutdown.sh" - minetest
    
    # Arrêt de la VM sys4.fr
    virsh shutdown yunohost
    
    # Démonter /home et tout ce qui se trouve dessous
    umount /home/partage
    umount /home/amanda/backup
    umount /home/ananda/holding
    umount /home
    
    # Désactiver les volumes logiques de vg-home
    vgchange -an vg-home
    
    # Commande vgsplit
    vgsplit -n home vg-home vg-system -A y
    
    # Activer les volumes inactifs de vg-system (home est maintenant dans vg-system)
    vgchange -ay vg-system
    
    # Remonter /home
    mount /home
    mount /home/partage
    mount /home/amanda/backup
    mount /home/ananda/holding
    
    # Relancer la VM sys4.fr
    virsh start yunohost
    
    # Relancer le serveur NALC
    su -c "/home/minetest/nalc-stable/shutdown.sh -r" - minetest
    

    Cette opération a rendu innaccessibles le serveur NALC et le domaine sys4.fr pour à peine 5 minutes ! Le plus long a été d'écrire les commandes sur la console du serveur :-))
    Pour autant l'opération n'est pas tout à fait terminée car les données du volume logique home se trouvent encore dans leur volume physique d'origine /dev/md126 et je souhaite les déplacer vers le volume physique /dev/sde3 du SSD :

    # pvs
    PV         VG         Fmt  Attr PSize    PFree
    /dev/md124 vg-backup  lvm2 a--    <1,50t    1,21t
    /dev/md125 vg-partage lvm2 a--     1,86t       0
    /dev/md126 vg-system  lvm2 a--   199,87g   89,87g
    /dev/md127            lvm2 ---   <79,94g  <79,94g
    /dev/sde3  vg-system  lvm2 a--  <442,88g <385,48g
    

    Facile ! Il s'agit d'adapter la même commande qui m'a servie dans l'étape 1 :

    pvmove /dev/md126 -A y /dev/sde3
    

    Vingt minutes plus tard l'opération se termine sans accrocs. Soulagement !
    Ne reste plus qu'à détacher le volume physique devenu inutile :

    # vgreduce -a -A y vg-system
      Physical volume "/dev/sde3" still in use
      Removed "/dev/md126" from volume group "vg-system"
    
    # pvs
      PV         VG         Fmt  Attr PSize    PFree
      /dev/md124 vg-backup  lvm2 a--    <1,50t    1,21t
      /dev/md125 vg-partage lvm2 a--     1,86t       0
      /dev/md126            lvm2 ---  <199,88g <199,88g
      /dev/md127            lvm2 ---   <79,94g  <79,94g
      /dev/sde3  vg-system  lvm2 a--  <442,88g <275,48g
    

    À noter que le groupe de volume vg-home n'existe plus depuis la commande vgsplit car plus aucun volume physique n'y était rattaché.

    La migration vers le SSD est terminé et ce fut un succès total. J'aime LVM :-)

Étapes résiduelles

Je n'évoquerai ici que les grandes lignes des dernières étapes à réaliser sans entrer dans le détail car ce n'est pas le cœur de cet article.

Comme dit plus haut ce disque SSD sera le disque de démarrage du système. Pour cela je dois formater la partition EFI en vfat et la peupler avec le gestionnaire de démarrage grub. Je dois également modifier le fichier /etc/fstab pour le montage de cette partition au démarrage. J'en profite pour ajouter la partition swap du SSD.

Enfin, ne pas oublier de placer le disque SSD comme premier périphérique de démarrage depuis le BIOS de la carte mère.

En option il me reste à configurer le système pour optimiser l'utilisation du SSD et augmenter la taille de mes partitions de sauvegarde et de partage de données qui occuperont l'espace libéré sur les disques durs. Ce sera peut-être le sujet d'un prochain article.

Tags: minetest ssd lvm

Correction bizeaux (bezels) multi-écrans avec xrandr

Sous GNU/Linux, quand sont utilisés plusieurs écrans pour étendre le bureau, se pose souvent le problème pour afficher une image, un film ou un jeux vidéo s'étendant sur tous les écrans de manière «réaliste». J'entends par là que nous nous attendons à ce que les écrans affichent une image comme nous la verrions à travers les carreaux d'une fenêtre d'habitation. À moins d'avoir des écrans sans aucune bordure, ce n'est pas du tout ce que nous constatons.

Voici un petit dessin pour illustrer le problème :

 ____________________ ____________________
||⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻|||⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻||
||                  |||  *               ||
||                  ||| ***              ||
||                  |||*****             ||
||                 *|||******            ||
||                **|||*******           ||
||_______________***|||********__________||
 ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻ ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻

Cet article va détailler comment modifier notre affichage à l'aide de la commande xrandr pour corriger cet effet de bizeaux induit par les bordures des écrans.

Le résultat final devra ressembler à cela :

 ____________________ ____________________
||⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻|||⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻||
||                  |||*                 ||
||                  |||**                ||
||                  |||***               ||
||                 *|||****              ||
||                **|||*****             ||
||_______________***|||******____________||
 ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻ ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻

Disposition et taille des écrans

Voici un schéma simple pour mieux comprendre la disposition et les dimensions de nos écrans. Ils seront au nombre de trois et de modèles différents :

       Gauche                   Centre                   Droit
 _________________        _________________        _________________
|   ___________   |      |   ___________   |      |   ___________   |
|  |           |  |      |  |           |  |      |  |           |  |
|  |<--477mm-->|  |      |  |<--478mm-->|  |      |  |<--475mm-->|  |
|  |           |  |      |  |           |  |      |  |           |  |
|   ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻   |      |   ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻   |      |   ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻   |
 ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻        ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻        ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻
<------520mm------>      <------510mm------>      <------515mm------>
   DisplayPort-1              HDMI-A-0               DisplayPort-2

Les écrans sont alignés horizontalement collés les uns aux autres, mais vous pourrez très bien appliquer les principes décrits ci-après pour des alignements verticaux ou un mix des deux.

Vous pouvez obtenir le nom de vos écrans avec la commande xrandr sans lui passer de paramètres.

Deux mesures en milimètres sont à relever pour chaque écran :

  • La largeur de l'écran (et/ou la hauteur dans une configuration verticale),
  • La largeur de la dalle (ou matrice LCD).

Pour la largeur de l'écran il faut effectuer la mesure sois-même avec une règle ou, plus pratique, avec un mètre de tailleur ou de chantier si vous avez.

Les dimensions de la dalle s'affichent lors de l'exécution de la commande xrandr.

Si comme moi vous souhaitez obtenir une sortie plus compacte de la commande xrandr vous pouvez faire la commande suivante :

for screen in DisplayPort-1 HDMI-A-0 DisplayPort-2; do xrandr -q -d :0 | grep $screen; done
DisplayPort-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
HDMI-A-0 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 478mm x 269mm
DisplayPort-2 connected 1920x1080+3840+0 (normal left inverted right x axis y axis) 475mm x 267mm

Taille de l'affichage virtuel en pixels

Tout d'abord nous devons déterminer pour chaque écran le nombre de pixels contenues dans 1mm. La règle de calcul est la suivante :

Résolution X de l'écran / largeur dalle en mm = Nombre de pixels par milimètres.

Pour chaque écran si nous appliquons ce calcul, nous obtenons :

  • Écran gauche : 1920 / 477 = 4.025px/mm
  • Écran centre : 1920 / 478 = 4.017px/mm
  • Écran droit : 1920 / 475 = 4.042px/mm

Ensuite calculons en pixels la taille des bords de nos écrans. Pour chaque écran :

  • Écran gauche : (520-477) / 2 * 4.025 = 86.538 = 87 pixels
    Ce calcul ne prends en compte que le bord droit de l'écran.
  • Écran centre : (510-478) * 4.017 = 128.544 = 129 pixels
    Ce calcul prends en compte les deux bords de l'écran.
  • Écran droit : (515-475) / 2 * 4.042 = 80.84 = 81 pixels
    Ce calcul ne prends en compte que le bord gauche de l'écran.

Nous avons tous les éléments nécessaires pour calculer la largeur exacte qu'aura notre affichage en pixels :

1920 * 3 + 87 + 129 + 81 = 6057 pixels

La résolution de notre affichage virtuel sera donc de 6057x1080.

Position des écrans en pixels

Nous devons calculer pour chaque écran sa position de départ en pixels dans notre affichage virtuel. Pour cela, nous prenons en compte la résolution X de chaque écran à laquelle il faut ajouter la taille des bordures correspondantes en pixels calculées précédemment :

  • Écran gauche : Position X = 0 (C'est le point de départ, donc il commence bien à 0).
  • Écran centre : Position X = 1920 + 87 + (129 / 2) = 2071.5 = 2071
  • Écran droit : Position X = 2071 + 1920 + (129 / 2) + 81 = 4136.5 = 4136

Commande xrandr

Nous connaissons la taille de notre affichage virtuel ainsi que la position de départ de chaque écran dans cet espace. Il ne nous reste plus qu'à créer la commande xrandr correspondante :

xrandr --fb 6057x1080 --output DisplayPort-1 --pos 0x0 --output HDMI-A-0 --pos 2071x0 \
--output DisplayPort-2 --pos 4136x0

Grâce à cette commande finalement très simple, nous pouvons nous passer totalement de devoir tripatouiller dans les fichiers de configuration de notre serveur Xorg pour arriver au même résultat.

À titre personnel je place cette commande dans mon fichier ~/.xinitrc de manière à ce qu'elle soit exécutée chaque fois que je lance mon gestionnaire de fenêtre avec startx.

Pour vérifier que les changements soient bien effectifs, relançons de nouveau la commande xrandr sans arguments pour nous permettre de voir la taille de notre affichage virtuel et la position des écrans :

xrandr
Screen 0: minimum 320 x 200, current 6057 x 1080, maximum 16384 x 16384
DisplayPort-0 disconnected primary (normal left inverted right x axis y axis)
DisplayPort-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1600x1200     60.00  
   1680x1050     59.95  
   1280x1024     75.02    60.02  
   1440x900      74.98    59.89  
   1280x960      60.00  
   1280x800      59.81  
   1152x864      75.00  
   1280x720      60.00  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    66.67    59.94  
   720x400       70.08  
DisplayPort-2 connected 1920x1080+4136+0 (normal left inverted right x axis y axis) 475mm x 267mm
   1920x1080     60.00*+
   1680x1050     60.00  
   1280x1024     75.02    60.02  
   1440x900      60.00  
   1280x800      60.00  
   1152x864      75.00  
   1280x720      60.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   640x480       75.00    59.94  
   720x400       70.08  
HDMI-A-0 connected 1920x1080+2071+0 (normal left inverted right x axis y axis) 478mm x 269mm
   1920x1080     60.00*+  59.94  
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      74.98    59.90  
   1280x960      60.00  
   1280x800      60.00  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1440x576      50.00  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
DVI-D-0 disconnected (normal left inverted right x axis y axis)

Bon ben voilà ça a fonctionné pour moi. J'espère qu'il en sera de même pour vous également ou au moins que cela vous aide dans votre quête d'informations.

Tags: multi-écrans xrandr linux

Pourquoi je pars de Youtube et consors

Oui je quitte Youtube pour de bon.

Vous n'êtes peut-être pas sans savoir que Youtube prévoit un changement de politique majeure sur la manière dont le contenu des vidéastes qui font sa richesse, sera exploité.

Désormais tout contenu publié sur cette plateforme se verra adjoindre de la publicité qu'on le veuille ou non ! Cette nouvelle règle déjà mise en place aux U.S arrivera progressivement dans le reste du monde pour le courant de l'année 2021.

Cela m'a fait l'effet d'un coup de massue en apprenant cette nouvelle car :

  • J'ai toujours désactivé la monétisation de mes vidéos justement pour ne pas que de la pub vienne s'y incruster.

D'abord parce que pour moi faire ces vidéos est avant tout un loisir et un plaisir à partager ! Si cela devait générer des revenus alors cela deviendrait un travail. Pour l'instant ce n'est pas mon intention et cela ne le sera sans doute jamais.

Ensuite, et c'est très personnel, mais je trouve que ce système de rémunération est tout simplement mal sain et je n'y adhère pas. J'ai du mal à me faire à l'idée que je puisse être utilisé dans un système qui incite à la (sur)consommation de biens la plupart du temps inutiles, contribuant au réchauffement climatique et à la destruction de la planète. Accepter cela contribue aussi à l'essort de la surveillance de nos moindres faits et gestes pour alimenter des bases de données et des algorithmes pour la publicité ciblée. La NSA n'a plus qu'à se servir au passage.

Bref, tout ce que je répugne et auquel je ne veux pas être mêlé.

Je suis agacé également de voir se pratiquer une censure appliquée plus ou moins arbitrairement sur ces plateformes propriétaires dont Youtube fait partie. Qu'est-ce qui peut encore garantir que nous puissions nous exprimer avec une parole libre et non concensuelle pour essayer de marquer les esprits ? Ou bien dénoncer une action d'un des GAFAM qui pourrait le mettre dans l'embaras ? Je doute que la loi française telle qu'elle est appliquée aujourd'hui ne soit d'une grande aide sur ce point. Sans parler de notre gouvernement actuel qui fait tout son possible pour développer la censure et la surveillance généralisée.

Je voudrais remercier la communauté Mastodon sans qui je n'aurais pas été averti à l'avance de ce qui est entrain de se trâmer pour nous les vidéastes de la plateforme Youtube. Je vous incite vivement à lire l'article dont j'ai eu connaissance. La source de l'article est en anglais mais je suis sûr qu'il existe l'équivalent en français.

Donc voilà, face à ce constat et pour rester en accord avec moi même, alors je n'aurai pas d'autres choix que de quitter cette plateforme et supprimer tout le contenu de ma chaîne Youtube.

J'ai déjà copié toutes mes vidéos de Youtube vers ma chaîne «Rétroportage Youtube» spécialement créée sur mon instance Peertube. Dorénavant je ne publierai plus que sur cette nouvelle plateforme.

Alors oui je vais perdre en visibilité, mais soyons honnêtes : Je suis insignifiant avec mes 66 abonnés et mes quelques milliers de vues cumulées sur l'ensemble de mes vidéos. Donc on ne peut pas dire qu'actuellement ma visibilité soit si exceptionnelle que ça à la base. Mais cela me va très bien au fond. Comme je l'ai dit plus haut, je ne cherche pas à en vivre, juste partager ma passion. En revanche je veux le faire dans des conditions saines et mon instance Peertube est parfaite dans ce cadre.

Pour conclure,
Si vous êtes abonnés à ma chaîne youtube et que vous voulez toujours suivre mes nouvelles sorties vidéos : Direction Sys4Tube puis vous pouvez utiliser la petite icône RSS si vous voulez être prévenu d'une nouvelle vidéo sans forcément devoir vous inscrire via une instance Mastodon ou autre instance Peertube (Mon instance n'est pas ouverte aux inscriptions). La messagerie Mail de Thunderbird inclue un aggrégateur de liens RSS si vous ne le saviez pas. Sinon il existe un tas d'autres clients ou de solutions en ligne rendant ce service gratuitement.

Ne publiant plus sur Youtube, ma chaîne sera supprimée dès que les nouvelles règles seront appliquées en France.

Dans la foulée, et pour des raisons similaires, mon compte Twitch et Twitter seront également supprimés. Ceux qui veulent toujours me suivre, pour par exemple savoir quand je diffuserai un live depuis mon serveur Icecast ou Peertube (quand ce dernier sera prêt), vous devrez vous trouver une instance Mastodon afin d'y créer un compte puis suivez-moi en vous rendant sur mon Mastodon.

Tags: GAFAM publicité fediverse

Ouverture de mon Blog avec org-static-blog

Salut à toutes et à tous !

J'ai décidé de commencer la publication d'un blog, mais pas n'importe lequel. C'est un Org Blog.

Mais qu'est-ce donc encore cette lubie de libriste ?

En gros avec Emacs, qui je le rapelle est un éditeur de texte surpuissant, on a la possibilité de rajouter pletores de plugins dont un que j'ai découvert récemment : J'ai nommé org-static-blog.

Cette extension permet depuis Emacs de publier des articles de blog en HTML statique. L'intérêt c'est que je n'ai pas à me préocuper du code HTML, CSS, JavaScript sous-jacent. Je n'ai besoin que d'utiliser la syntaxe de org-mode, une extension géniale et pré-intégré à Emacs que je pratique depuis quelques années déjà. Cela rend l'écriture extrêmement simple et rapide, même depuis un simple terminal !

Côté serveur, je n'ai pas besoin d'installer un moteur de blog qui forcément alourdira le serveur et potentiellement pourrait ouvrir des failles de sécurité.
Côté client, je m'évite la lourdeur des navigateurs d'aujourd'hui pour écrire mes articles.

Il est vrai aussi que je recherche de plus en plus à éviter au maximum l'utilisation de logiciels avec interface graphique pilotés à la souris. J'apprécie de plus en plus réaliser des projets depuis le terminal ou depuis un éditeur de texte puissant.

Mais il est certain que de coder une page en pur HTML, même toute simple devient assez vite pénible. Tout ces chevrons, ces guillemets, en-têtes, signes spéciaux, etc… ça va un moment mais cela ne permet pas d'obtenir l'attention requise à l'élaboration du contenu que l'on souhaite publier. C'est d'ailleurs pour cela que les moteurs de blogs ont été inventés.

Donc, avec Emacs, que j'apprécie de plus en plus au passage, et à l'aide de Org Mode et Org Static Blog, j'ai trouvé un moyen relativement simple et efficace pour me lancer dans la publication de ce blog sans devoir héberger un quelconque moteur sur mon serveur.

Org Static Blog comme moteur de blog dans Emacs n'est qu'une solution parmi d'autres, car il en existe une multitude dont certains bien plus puissants encore. Ce qui m'a fait choisir celui-ci est sa simplicité d'installation et d'utilisation. Ce qui sera amplement suffisant pour mes besoins.

Il y a un inconvénient toutefois, et pas des moindres. Les pages générées étant statiques, il n'y a nativement pas de possibilité pour les visiteurs de laisser des commentaires. Cependant le problème est contournable de plusieurs façons. Par exemple le créateur de cette extension, pour son propre blog a inséré à l'aide de quelques lignes de JavaScript le service Disqus en bas de chacune de ses pages. Disqus est une plateforme de partage de commentaires que j'ai découverte à cette occasion. Néanmoins ce qui me dérange avec cette solution, c'est que les données confiées à cette plateforme seront revendus à des publicitaires permettant le profilage des utilisateurs.

Pour mon blog, j'ai décidé de faire plus simple et surtout sans danger pour les visiteurs souhaitant laisser des commentaires. En bas de chaque article, un lien «mailto» sera à disposition pour l'envoi de commentaires par courriel.

Le risque que je prends avec cette technique c'est de voir ma boîte email saturée de spam à cause des robots qui viendront scruter mes pages. Toutefois il est possible de limiter ce risque. Je me suis inspiré des informations publiées sur cette page web pour mettre en œuvre ma solution. J'ai donc moi aussi usé d'un peu de JavaScript afin de générer le lien qui va bien. Pour cela j'ai initialisé la variable org-static-blog-post-comment avec le contenu suivant :

<script type="text/javascript">
  var urlcourante = document.location.href.replace(/\/$/, ""); 
  var queue_url = urlcourante.substring(urlcourante.lastIndexOf("/")+1); 
  var nom = "bricassa"; 
  var domaine = "sys4.fr"; 
  var sujet = "subject=Commentaire article : "+queue_url;
  document.write('<a href="mailto:'+nom+'@'+domaine+'?'+sujet+'">
  Laisser un commentaire par courriel</a>');
</script>

En tant que visiteur, un clic sur ce lien généré ouvrira le client de messagerie avec le sujet de l'email pré-rempli qui contiendra le nom de l'article courant. Ainsi de mon côté je saurai à partir de quel article aura été envoyé le commentaire.

On verra si cela fonctionne et pour combien de temps. Peut-être que les spammeurs ont affinés leurs techniques de détection depuis. Au pire, si cette adresse de courriel devait être noyée sous des flots de spam, elle pourra être remplacée sans aucune difficulté.

Au cas où je recevrais des commentaires, je ne sais pas encore si je les publierai systématiquement. En tout cas je ne publierai en aucune façon l'adresse email depuis laquelle ils auront été émis. Je me limiterai au pseudo que vous m'indiquerez dans votre commentaire. Si vous ne souhaitez pas que votre commentaire soit publié, il faudra penser à le préciser.

Je reviendrais à l'occasion pour vous partager mes nouvelles découvertes sur le fonctionnement de cette extension.

Voilà, merci de m'avoir lu jusqu'au bout de ce premier article et j'espère que le contenue publié sur ce blog saura vous intéresser au fil de mes publications.

Les sujets traités ici seront essentiellement autour de l'informatique libre, des tutos, des réflexions, etc… Je ne m'interdis rien.
Ici c'est mon espace d'expression public et LIBRE !

À la prochaine…