Compresser un ePub: ma méthode pour réduire la taille d’un ePub

Lorsque j’ai terminé mon ebook, je l’ai tout naturellement exporté et j’ai obtenu un fichier ePub de… 160Mo. C’est beaucoup trop. Il est nécessaire de compresser un ePub avant de le publier car les distributeurs (Amazon en premier), facturent le coût de la distribution en fonction de la taille du fichier. Avec ma méthode, j’ai obtenu un ePub de 29Mo: 80% de compression. Pas mal non?

Réduire la taille d’un ePub: quels éléments?

Fichier ePub trop lourd? Pour alléger un ePub, on va parler compression. La 1ère source d’éléments à compresser dans un ePub, ce sont les images! Dans mon cas, elles représentent 90% de la taille de mon eBook.

On peut trouver aussi d’autres sources d’optimisations comme le nombre de police intégrés.

Structure d’un fichier ePub

Comprenons déjà la structure d’un fichier ePub. Un fichier ePub est une archive Zip d’une structure bien définie:

  • le 1er fichier de l’archive est mimetype. Il ne doit pas être compressé.
  • un dossier « META-INF » contenant quelques informations de base sur la structure.
  • un autre dossier, « OPS » ou « oebps » contenant les données du ePub.

Le fichier mimetype permet aux applications qui vont lire ce fichier de le considérer comme un fichier spécial de type application/epub+zip, et pas comme une simple archive zip.

Le contenu du fichier mimetype fait exactement 20 caractères, sans saut de ligne à la fin:

application/epub+zip

Ce que ça veut dire, c’est que nous allons pouvoir dézipper le ePub pour comprendre ce qui prend de la place afin de pouvoir compresser un ePub en conséquence.

Commencez donc par dézipper le fichier ePub. Vous pouvez ajouter l’extension .zip pour vous aider. Sur macOs, via le terminal, la commande est:

flogg@MacBook:~/ePub$ unzip MonEBook.epub

On obtient la structure:

flogg@MacBook:~/ePub$ ls
META-INF/   OPS/        MonEBook.epub  mimetype

Réduire la taille d’un ePub: les images

Aller donc voir la taille du dossier OPS/images/. Il est énorme? Parfait, on va pouvoir compresser.

L’analyse dépend de chaque cas. Je vous raconte le mien mais le votre pourrait être différent.

Premier constat, je n’ai que des fichiers PNG. Clairement, ce n’est pas le format le plus efficace pour mon type de contenu. On préférera le format JPEG. Ce changement n’est valable que pour les images que n’ont pas besoin de fond transparent. Pour ces dernières, il n’y a pas d’autres choix que de conserver le format PNG.

Deuxième constat, ces fichiers ne sont pas optimisés du tout. Une simple optimisation des fichiers en suivant les recommandations de Google m’a permis de gagner 50Mo.

Convertir les images d’un ePub en JPEG

Les fichiers ePub supportent 4 types de fichiers images:

  • PNG
  • JPEG
  • GIF
  • SVG

Pour convertir de JPEG en PNG, j’utilise ImageMagick en ligne de commande sur macOs. Rappel: la transformation va remplacer les images au fond transparent par un fond blanc (-background white).

flogg@MacBook:~/ePub$ convert ./OPS/images/image.png -background white -alpha remove ./OPS/images/image.jpg
flogg@MacBook:~/ePub$ rm ./OPS/images/image.png

Il faut maintenant changer toutes les références de ce fichier dans tout votre ePub:

  • OPS/epb.opf: Ce fichier contient un inventaire des fichiers de l’ePub. Il faut remplacer une ligne comme:
<item id="dataItem5" href="images/image-1.png" media-type="image/png"/>

par

<item id="dataItem5" href="images/image-1.jpg" media-type="image/jpg"/>
  • OPS/page-xxx.xhtml: Ce fichier contient une page de votre ePub. Il suffit de remplacer toutes les occurrences de images/image-1.png par images/image-1.jpg

Répétez l’opération pour toutes les images. Vous pouvez automatiser l’opération de renommage des occurrences avec sed, par exemple:

flogg@MacBook:~/ePub$ sed -i'' -e "s/images\/image-1.png/images\/image-1.jpg/g" ./OPS/page-*.xhtml
flogg@MacBook:~/ePub$ sed -i'' -e "s/href=\"images\/image-1.png\"\ media-type=\"image\/png\"/href=\"images\/image-1.jpg\"\ media-type=\"image\/jpeg\"/g" ./OPS/epb.opf
flogg@MacBook:~/ePub$ rm ./OPS/*-e

La simple conversion de mes fichiers PNG en JPG m’a permis de compresser un ePub de 60% (157Mo > 63,1Mo).

Compresser les images d’un ePub

Que les images soient au format JPG ou PNG, c’est pareil et c’est très simple. Compresser toutes les images avec un programme comme ImageOptim, en suivant les recommandations de Google pour l’optimisation des images. Oui, on va dégrader la qualité de certaines images mais ce sera difficilement visible à l’oeil.

J’ai obtenu une compression d’environ:

  • 30% pour les fichiers PNG
  • 50% pour les fichiers JPG

Supprimer les images en doublon

Dans mon cas, j’utilise à plusieurs reprises une même image (un rond rouge). L’image de ce rond rouge est présente plus de 50 fois, avec un nom différent.

On peut compresser un peu plus l’ePub en ne conservant qu’une occurence de cette image et en remplaçant toutes les occurrences dans les fichiers page-xxx.html et epb.opf.

Je n’ai pas fait cette optimisation car le gain était assez minimes dans mon cas (moins de 1Mo).

Réduire la taille d’un ePub: les polices

Si vous incorporez les polices dans votre ePub, elles sont enregistrés dans le dossier OBS/fonts/.

Vérifiez les polices incorporées, et si elles sont toutes justifiées.

Dans mon cas, j’ai découvert 2 polices inutiles incorporées:

  • « Wingdings »: pour 2 malheureuses puces rondes.
  • « FontAwesome5Pro-Solid-900.otf »: pour 2 petites icônes grasses alors que les autres ne le sont pas

Remplacer ces polices dans votre éditeur d’eBook afin qu’elles ne soient pas présentes à l’exportation.

Réduire la taille d’un ePub: reconstruire le fichier

Pour reconstruire le fichier, il faut suivre correctement et à la lettre le format ePub. Suivez le guide ici: Reconstruire un fichier ePub

Compresser un ePub: comparatif des améliorations

Voici un récapitulatif des gains possibles avec mon fichier de base:

ÉtapePoids du fichiers
Origine160Mo
Optimisation PNG-57Mo
Conversion JPG-100Mo
Conversion JPG
+ Optimisation
-130Mo
Suppression des polices inutiles-3Mo
Suppression des images en doublons-1Mo

Pour mon eBook, j’ai choisi de convertir en JPG, optimiser les images et supprimer les polices inutiles et j’ai finalement obtenu un ePub de 29Mo! YEAH!

Comment faire un audit technique de site web? Ma méthode efficace

Vous avez tout compris, il est important de faire un audit SEO technique de votre site web. L’aspect technique est désormais une partie importante du SEO, il ne faut surtout pas le bâcler! Pour qu’un site soit bien classé, il faut qu’un site soit performant! Pour faire une analyse de la performance d’un site web, vous pouvez aussi utiliser mes outils SEO indispensables et gratuits.

L’audit SEO technique couvre 2 principaux points:

  • Optimiser le temps de crawl de Google
  • PERFORMANCE

Pour être bien classé, il faut que Google soit content. Google est content quand il est flatté. Suivez donc toutes les recommandations de Google, à la lettre.

Le SEO Technique est technique. Par conséquent, il n’est pas forcément à la portée de tous. Il faudra certainement aller modifier la configuration de votre serveur.

Optimiser son temps de crawl: liens morts, sitemap et robots.txt

C’est quoi le temps de crawl? Chaque jour, Google va passer quelques secondes à scanner votre site. Plus votre site est populaire, plus Google passera de temps chez vous. Chaque seconde est alors précieuse. C’est d’autant plus important lorsque vous êtes mal classé ou lorsque vous débutez: votre budget crawl est très faible.

Par exemple, sur un petit site, j’ai des statistiques de crawl à 16 pages/jour et 243Ko téléchargés. Sur un autre site, plus important, j’obtiens alors 358 pages/jour et 12Mo téléchargés. Vous pouvez aussi consulter vos statistiques de crawl dans la Google Search Console.

L’objectif ici, c’est de rentabiliser au maximum le temps crawl, c’est-à-dire diriger Google vers les pages les plus importantes et le détourner de pages inutiles ou chronophage comme, par exemple, les pages Mentions légales, ou les résultats de pages de recherche.

Ces 3 points sont la base d’un audit SEO technique d’un site web. Ils sont très simples à faire alors ne les négligez pas!

Vérifier les liens morts

Si votre site contient des liens morts, c’est un problème. Pensez toujours au visiteur en premier. Un visiteur qui constate un lien mort pense que votre site n’est pas à jour et s’en va. Un visiteur qui s’en va rapidement, c’est une dégradation de votre classement. Pour le temps de crawl, inutile de cramer du budget sur des liens morts.

Pour analyser les liens morts gratuitement, on va utiliser le logiciel linkchecker sur Linux. Vous pouvez l’utiliser sur votre serveur directement.

Pour installer linkchecker sur Ubuntu 18.04:

sudo apt install linkchecker

Pour analyser un site:

ubuntu@flogg.fr:~$ linkchecker https://flogg.fr --check-extern
 Statistics:
 Downloaded: 6.02MB.
 Content types: 75 image, 4448 text, 0 video, 0 audio, 4061 application, 4 mail and 739 other.
 URL lengths: min=13, max=1772, avg=57.
 
 That's it. 9327 links in 402 URLs checked. 0 warnings found. 0 errors found.

Recommandation: Analysez votre site et corrigez tous les liens cassés.

Le fichier robots.txt

Le fichier robots.txt, placé à la racine du domaine, donne des indications aux bots pour analyser le site. Ces indications sont très basiques, ça se limite à autoriser ou non l’accès à une page. Toutefois, Google s’autorise à indexer cette page si des liens pointent vers celle-ci. Plus d’informations sur le fichier robots.txt sur l’aide de Google Search Console.

Vous pouvez consulter celui de n’importe quel site. Par exemple, vous pouvez consulter le mien: https://flogg.fr/robots.txt.

Recommandation: Vérifiez qu’aucune page n’est bloquée inutilement, et que les pages superflues sont bloquées.

Le fichier sitemap.xml

Le fichier sitemap.xml, c’est un peu l’annuaire du site. Il indique aux bots la liste des pages du site, ainsi que leurs dates de mise à jour. On peut aussi le découper en plusieurs fichiers. Ce fichier est souvent généré automatiquement, avec YoastSEO pour WordPress, Drupal XML Sitemap pour Drupal, etc.

Google sait analyser votre site, ainsi le sitemap est la plupart du temps superflu. Il peut servir par exemple pour indiquer une page lointaine de votre site. Mais si une page est mal référencée au sein même de votre site, elle le sera également sur Google. (Plus d’informations sur le sitemap sur l’aide de Google Search Console)

Néanmoins, ça fait partie des basiques à ne pas négliger. C’est simple à mettre en place, alors utilisez-le! Vous pouvez également indiquer la présence de votre sitemap dans Google Search Console pour lui demander de venir vous indexer.

Recommandation: Utilisez un plugin qui le génère automatiquement.

La performance d’un site web lors d’un audit technique

Lors d’un audit SEO technique, l’essentiel des éléments doit être axé sur la performance du site web. Un site non performant sera mal référencé.

Lors d’un audit SEO Technique, plusieurs points sont abordés:

  • Les versions logiciels
  • La configuration HTTPS (+ HTTP/2 +OCSP stapling)
  • IPV6
  • La Compression GZIP / Brotli
  • Cache
  • Les images

Pour analyse la performance d’un site web avec un outil gratuit, vous pouvez consulter ma liste des outils SEO indispensables.

Analyse performance site web
Ma page est assez bien optimisée

Analyse des logiciels

Pour héberger un site WordPress, Drupal ou Symfony, vous aurez besoin au minimum d’un serveur web et de PHP.

Pour le serveur Web, il y en a 3 connus: Apache2, Nginx, et IIS. Sauf besoin particulier, il faut utiliser Nginx qui est le plus rapide.

Pour PHP, il faut utiliser si possible la dernière version. En tout cas, il est nécessaire d’utiliser au moins PHP 7+ qui est beaucoup plus rapide que les anciennes versions 5.4.

Vous pourrez trouvez des informations directement sur le serveur ou parfois en utilisant curl, dans l’entête HTTP:

Recommandation: Utilisez Nginx et la dernière version de PHP.

➜  ~ curl --head -H "Accept-Encoding: gzip" https://flogg.fr

 server: nginx
 x-powered-by: PHP/7.3.11

Optimiser la configuration HTTPS

Utiliser le HTTPS

Il est nécessaire d’utiliser le protocole HTTPS. Si votre site n’est pas encore sécurisé (HTTP), migrez alors vers HTTPS le plus rapidement possible. Google le recommande, alors faites-le! 🙂

Pour passer au HTTPS, il faut modifier la configuration de Nginx. Ensuite, il faut paramétrer une redirection de toutes les pages vers leurs versions sécurisées. Là aussi, ça se passe dans la configuration Nginx. Pour vérifier si ça fonctionne, tester une page non sécurisée:

➜  ~ curl --head http://flogg.fr 
 HTTP/1.1 301 Moved Permanently

Recommandation: Utilisez le HTTPS

Utiliser le protocole HTTP/2

Au-delà de l’aspect sécurisé, le HTTPS permet aussi d’activer le protocole HTTP/2 qui permet d’accélérer la communication entre le serveur et les visiteurs. Ça ne coûte rien mais il faut là aussi modifier la configuration Nginx. Pour vérifier si votre site utilise HTTP/2, utilisez curl.

➜  ~ curl --head https://flogg.fr
 HTTP/2 200

Recommandation: Utilisez le HTTP/2

Utiliser l’OCSP Stapling

La sécurisation de la connexion par HTTPS apporte toutefois quelques lenteurs, pour vérifier la légitimité du site notamment. On peut limiter cet impact en utilisant la technique de l’OCSP Stapling. Pour vérifier si c’est le cas:

➜  ~ openssl s_client -connect flogg.fr:443 -tls1  -tlsextdebug  -status

Dans la réponse, vous devriez trouver une section:

OCSP response: 
 ======================================
 OCSP Response Data:
     OCSP Response Status: successful (0x0)
     Response Type: Basic OCSP Response
     Version: 1 (0x0)
     Responder Id: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
     Produced At: Nov 10 08:37:00 2019 GMT
     Responses:
     Certificate ID:
       Hash Algorithm: sha1
       Issuer Name Hash: 7EE66AE7729AB3FCF8A220646C16A12D6071085D
       Issuer Key Hash: A84A6A63047DDDBAE6D139B7A64565EFF3A8ECA1
       Serial Number: 042D1E82A6FBF81510DD0C5D8BAAAF8BDE2F
     Cert Status: good
     This Update: Nov 10 08:00:00 2019 GMT
     Next Update: Nov 17 08:00:00 2019 GMT
 

     Signature Algorithm: sha256WithRSAEncryption
          69:de:97:b6:bb:58:2e:c9:ec:43:bd:ca:9c:1e:97:08:1d:13:
          5f:1b:91:a9:fa:79:5f:2c:b4:d1:47:06:a9:ef:ca:21:c6:07:
          40:88:53:e8:5e:6b:41:64:92:8e:de:21:7c:c8:ac:c9:b7:20:
          1b:ab:76:eb:bb:e7:bc:5f:72:fe:cc:6f:78:4f:af:21:b1:60:
          ee:1c:11:84:c5:0d:a7:b1:7c:f3:26:9d:6c:10:f8:5b:ba:47:
          f3:31:dc:31:68:9f:d7:bc:fd:f0:48:7e:05:c5:0b:24:15:84:
          7b:39:8d:a7:91:56:64:72:6b:d4:3c:cb:88:fe:8e:ab:c5:40:
          8c:46:fe:b9:4e:cc:22:6a:00:ce:e1:8e:02:cf:98:5f:82:e1:
          2a:00:55:84:4b:16:3d:51:d9:83:8d:0c:2f:57:e0:94:9f:b7:
          68:99:75:c2:31:97:86:b7:ad:b7:be:f9:8d:cd:89:a7:0c:40:
          1c:e0:e7:41:da:8d:98:0b:7f:b8:5a:82:ca:d4:69:f6:b3:ea:
          86:4c:fe:7b:92:9f:fc:42:64:61:9f:28:b4:1b:e3:63:a2:74:
          e1:cb:46:b0:06:b9:85:b5:7a:30:5d:35:12:e9:b2:c1:b0:34:
          1d:b3:fd:e4:0b:ef:64:27:de:31:d7:70:2a:1d:cd:08:7c:ca:
          e0:5a:b2:ab
 ======================================

Je vous avais prévenu, un audit technique, c’est technique!

Vérifiez la qualité de la connexion SSL

Toutes les connexions HTTPS ne se valent pas malheureusement. Certaines configurations sont « à trous », c’est-à-dire qu’il y a des failles connues. Configurez donc le HTTPS sur votre serveur Web en tenant compte des meilleures pratiques actuelles.

Pour tester la qualité de la connexion SSL, le service en ligne de référence est SSLLabs. Vous devez alors obtenir une note au moins égal à A+.

Recommandation: Utilisez l’OCSP Stapling et obtenez une note d’au moins A+ au test SSLLabs.

Compatibilité IPv6 & audit technique

En 2019, il est nécessaire qu’un site web soit compatible avec IPV6. Pour vérifier que votre site est accessible en IPV6, vous pouvez le voir dans le test de SSL Labs. Par exemple, pour mon site, c’est la ligne indiquant le test sur l’adresse 2a05:d012:adb:cc32:233:5a3b:d05a:663d.

La compatibilité IPv6 se passe au niveau du serveur DNS et du serveur Web.

Pour tester la configuration du DNS pour IPv6, utilisez dig:

➜  ~ dig flogg.fr AAAA

;; ANSWER SECTION:
 flogg.fr. 300 IN AAAA 2a05:d012:adb:cc32:233:5a3b:d05a:663d

Pour tester la configuration du serveur pour IPv6, vous pouvez utiliser un service en ligne, par exemple ipv6-test.com.

Recommandation: Prenez en charge l’IPv6.

La compression GZIP / Brotli

Toujours pour améliorer le transfert d’informations, il est utile de compresser les informations transmises entre le serveur et le visiteur.

Pour tester la compression GZIP d’un site, on utilise curl:

➜  ~ curl --head -H "Accept-Encoding: gzip" https://flogg.fr
 
content-encoding: gzip
Audit technique SEO avec Curl
HTTP2, Compression GZIP et page en cache

La compression Brotli est un autre type de compression, plus rapide. C’est certainement l’avenir, mais il reste encore des navigateurs qui ne le supporte pas. Nginx ne l’intègre pas encore en standard, il faut donc le compiler spécialement avec cette option. Mais ça deviendra important dans les années à venir lors d’un audit technique.

Recommandation: Compressez le contenu avec GZIP.

La stratégie de Cache

Avec un CMS comme WordPress, les pages sont générées à la demande. L’inconvénient, c’est que ça prend beaucoup de temps, le site est alors lent. La génération de page à la demande, c’est donc superflu dans beaucoup de cas.

Cet article par exemple. Il est n’est pas nécessaire de régénérer la page pour chaque visiteur, car c’est le même contenu. En revanche, il est plus efficace de conserver en mémoire la page générée pour la resservir directement au prochain visiteur. Cette technique, c’est donc le cache.

Il y a plusieurs méthodes pour mettre en place une stratégie de cache. Ma préférée, c’est le cache FastCGI de Nginx. Par conséquent, c’est celui que j’utilise. J’indique dans l’entête HTTP si la page envoyée est issue du cache ou non, vous pouvez donc le voir avec curl:

➜  ~ curl --head https://flogg.fr

x-fastcgi-cache: HIT

HIT signifie que le cache est utilisé, MISS signifie qu’on n’avait pas de page préchargée en mémoire, BYPASS signifie qu’il ne fallait pas utiliser le cache dans ce cas (lorsque le visiteur vient de laisser un commentaire par exemple).

Recommandation: Mettez en place un cache.

Optimiser les images

Une image peut contenir beaucoup d’informations qui peuvent être superflues lors de l’affichage sur un site web. Supprimez alors toutes les informations inutiles de l’image en utilisant un logiciel pour optimiser les images comme celui que j’utilise.

De plus, s’il est nécessaire de faire défiler le site pour faire apparaître une image, il faut alors qu’elle soit chargée plus tard. C’est ce qu’on appelle le Lazy Load.

Vous pouvez utiliser l’un des outils SEO indispensables que je recommande. Pour l’analyse de la performance d’un site web, je conseille notamment l’outil gratuit Web.Dev.

Optimiser les images sur macOs clic droit
Sur macOs, j’utilise ImageOptimize pour optimiser les images

Recommandation: Optimisez toutes les images et retardez le chargement des images qui ne sont pas en haut.

Bilan de l’audit SEO technique d’un site web

Si vous avez correctement mis tous ces éléments en place, vous avez donc tous les prérequis pour être bien classé sur Google. Si votre contenu est aussi bon que l’aspect technique, alors il suffit d’attendre quelques mois pour voir fleurir vos articles en 1ère page.

Le SEO, c’est mon métier. J’ai déjà fait grimper des sites en partant de 0. C’est possible! N’hésitez pas à me contacter si vous avez besoin d’aide pour faire un audit SEO technique ou pour mettre en place les actions nécessaires.

Plugins pour accélérer WordPress: éléments chiffrés!

J’ai longtemps tâtonné dans les plugins WordPress pour obtenir la configuration la plus efficace. Mon site se trouve sur un serveur virtuel (VPS) chez Scaleway. Il coûte 3€ par mois. Au fur et à mesure que la fréquentation augmentait, je me demandais à partir de quel moment je devais faire grossir le serveur. Conclusion, c’est pas pour tout de suite, ce petit serveur sait gérer un flux énorme, et ce grâce à 2 plugins pour accélérer WordPress.

Configuration de départ

Pour faire ce test, j’ai choisi un article du site et j’utilise deux outils pour mesurer la vitesse:
Pingdom: pour mesurer la performance unitaire du site
Loader.io: pour mesurer la montée en charge, avec 100 requêtes par secondes durant 1mn

Au départ, le site tourne sur nginx sans option particulière (gzip est activé par défaut). Il n’y a pas de plugins pour accélérer WordPress. Le CDN Cloudflare est configuré mais en mode « développement » pour accéder directement au site.

Résultat Pingdom:
– Note: 74%
– Vitesse de la page: 5,68s
– Nombre de requêtes: 30

Résultat Loader:
– Test avorté à la 2ème seconde car le taux d’erreur est trop élevé (= le serveur met trop de à répondre)

Pas génial donc…

Plugin Autoptimize

J’ai choisi de commencer par Autoptimize. Ce plugin permet de:
– Minifier le code HTML
– Minifier et unifier en un seul fichier le code CSS
– Minifier et unifier en un seul fichier le code Javascript

Plus on a de plugins, plus on a de fichiers css et javascript qui s’ajoutent et qui dégradent la vitesse de chargement du site. Parfois, même les fichiers incluent dans les thèmes nécessitent un travail d’optimisation.

Est-ce que le plugin fait ce qu’il annonce? Oui! Et je suis le premier surpris car des plugins de minification qui ne marchent pas, j’en ai vu des dizaines. Après activé la minification HTML, CSS et Javascript, WordPress charge un seul fichier css dont le nom contient « Autoptimize ». WordPress charge toujours le fichier JQuery.js séparément (il est dans la liste blanche de autoptimize), et les autres fichiers ne font plus qu’un. Le code HTML est également minifié. C’est parfait! Ce plugin ne fait qu’une chose et le fait très bien.

Résultat Pingdom:
– Note: 85% (+9%)-
– Vitesse de la page: 1,96s _(-65%)

– Nombre de requêtes: 14 (-53%)

Résultat Loader:
– Test avorté à la 3ème seconde

C’est mieux, le site est plus rapide en accès direct. Par contre il ne tient pas encore la charge.

HTTP2

HTTP2 est une nouvelle norme. La plupart des navigateurs la supporte désormais. Je ne connais pas les détails mais cette norme est sensé rendre internet plus rapide.

HTTP2 s’active au niveau de Nginx. Il suffit d’ajouter « http2 » au niveau de la ligne « listen »:

listen 443 ssl http2;

Résultat Pingdom:
– Note: 85%
– Vitesse de la page: 1,33s (-30%)
– Nombre de requêtes: 14

Résultat Loader:
– Test avorté à la 3ème seconde car le taux d’erreur est trop élevé (= le serveur met trop de à répondre)

Encore une nette amélioration du temps de chargement unitaire. Tout ça rien qu’avec un changement de norme.

Le plugin Cache-Enabler

Générer une page à chaque accès c’est bien beau mais ce n’est pas efficace. Pour tenir une montée en charge, il va falloir générer des pages statiques qui seront envoyées aux visiteurs. J’ai choisi d’utiliser le plugin Cache-Enabler car il me paraissait simple. Il ne veut pas trop en faire comme « W3 Total Cache » par exemple. Ce plugin va uniquement créer une page html statique pour chaque page ou article du site. En configurant Nginx tel que recommandé par le plugin, le client accédera directement à la page en cache sans passer par PHP.

Pour profiter à fond du plugin, il faut donc changer sa configuration nginx tel quel préconisé par le plugin.

Il vous faut remplacer la zone « location » de votre configuration qui doit ressembler à ça:

location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
<code> }

Par le code fourni par le plugin:

set $cache_uri $request_uri;

# bypass cache if POST requests or URLs with a query string
 if ($request_method = POST) {
 set $cache_uri 'nullcache';
 }
 if ($query_string != "") {
 set $cache_uri 'nullcache';
 }

# bypass cache if URLs containing the following strings
 if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
 set $cache_uri 'nullcache';
 }

# bypass cache if the cookies containing the following strings
 if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
 set $cache_uri 'nullcache';
 }

# custom sub directory e.g. /blog
 set $custom_subdir '';

# default html file
 set $cache_enabler_uri '${custom_subdir}/wp-content/cache/cache-enabler/${http_host}${cache_uri}index.html';

# webp html file
 if ($http_accept ~* "image/webp") {
 set $cache_enabler_uri '${custom_subdir}/wp-content/cache/cache-enabler/${http_host}${cache_uri}index-webp.html';
 }

location / {
 gzip_static on; # this directive is not required but recommended
 try_files $cache_enabler_uri $uri $uri/ $custom_subdir/index.php?$args;
 }

Pensez bien à recharger le serveur nginx. Sur Debian/Ubuntu, c’est:

sudo service nginx reload

Résultat Pingdom:
– Note: 86% (+1%)
– Vitesse de la page: 0,736s (-44%)
– Nombre de requêtes: 14

Résultat Loader:
– Temps de réponse moyen: 118ms
– Taux d’erreur: 0%

C’est une claque! Je ne pensais pas le plugin de cache si efficace. L’article se charge en 0,7s, c’est parfait. Le serveur est capable de servir 100 demandes par secondes, durant une minute, sans broncher, sans erreur.

Pour aller plus loin

Avec 100 requêtes par secondes, le site gère sans problème. Peut-on aller plus loin? J’ai essayé 500 requêtes par seconde:

Résultat Loader @500req/s:
– Temps de réponse moyen: 121ms
– Taux d’erreur: 0%

Aucun problème pour 500. On peut pousser encore? 1000 requêtes par seconde?

Résultat Loader @1000req/s:
– Temps de réponse moyen: 182ms
– Taux d’erreur: 0,2%

Des erreurs commencent à arriver mais ça reste acceptable. Durant le test, les ressources du serveur sont à 100%, signe qu’on ne pourra pas aller beaucoup plus loin.

Plugins pour accélérer WordPress: en conclusion

L’objectif était d’améliorer la vitesse de son site WordPress. Au départ, notre site chargeait en plus de 5s et ne tenait pas la charge. A l’arrivée, notre site charge en 0,7s et est capable de gérer 1000 requêtes par secondes. Le tout grâce à 3 points clefs:
– HTTP2
– Plugin Autoptimize
– Plugin Cache-Enabler

A ma question « quand devrais-je augmenter la puissance de mon serveur », la réponse est donc:
– Quand le site devra afficher plus de 1000 requêtes par seconde;
– Ou quand le site devra afficher plus de 3,6 millions de page par heure

Avec un serveur à 3€, on peut faire un site WordPress capable d’afficher plus de 3 millions de page par heure. Ça devrait nous suffire pour l’instant =).

Mon avis sur Quickbooks: j’ai testé le logiciel comptable

Pour mon entreprise en SAS, j’ai besoin d’un logiciel de comptabilité en ligne. J’ai donc testé le logiciel comptable Intuit Quickbooks et je vais détailler ici mon avis.

Quand j’ai comparé les différents logiciels de comptabilité en ligne, j’ai déjà vérifié 2 éléments essentiels: permet-il l’export d’un fichier FEC et fournit-il une attestation de conformité à la loi anti-fraude TVA. C’est essentiel pour éviter les problèmes lors d’un éventuel contrôle fiscal. Intuit Quickbooks permet l’export d’un FEC et est conforme à la loi TVA de 2018. On peut donc l’utiliser sereinement.

L'interface de Quickbooks

La comptabilité fournisseurs avec Quickbooks

Quand j’ai débuté ma saisie comptable, j’ai commencé par la partie fournisseur. Et j’ai eu un problème. Avec l’offre « Simple Start » à 10€/mois, il n’est pas vraiment possible de saisir une facture. On ne peut faire que des « paiements comptant », dont l’écriture comptable ne passe pas par les comptes de tiers (401 / 4xx).

Je ne sais pas si c’est obligatoire de passer par un compte de tiers, mais j’ai toujours appris comme ça. J’imagine que ça peut suffire pour les entreprises avec un régime particulier (genre micro-bic). J’ai donc pris la formule « Essentials » à 25€/mois.

Avec cette formule, pas de surprise, ça fonctionne comme d’habitude pour saisir des factures fournisseurs et des paiements.

Le logiciel est très agréable à utiliser, ça ne bug pas, c’est fluide, c’est bien.

La comptabilité client

Pas de grande surprise de ce côté, c’est joli, bien fait et agréable à utiliser.

Je génère les factures de ventes directement via WooCommerce, donc je ne fais que les saisir sur Quickbooks.

Si vous comptez utiliser Quickbooks pour créer des factures, ça m’a l’air super bien. Il est facile de créer une facture correcte et de l’envoyer directement au client, et même de mettre en place un paiement automatique via Stripe pour cette facture. À mon avis, cette partie de Intuit Quickbooks est particulièrement utile si vous travaillez en Freelance.

Avis Quickbooks Facture Client

L’intégration de Quickbooks aux autres logiciels

Sans frais supplémentaires, le logiciel comptable Quickbooks permet de se connecter à plusieurs aux services qui j’utilise:

  • La Banque Postale
  • PayPal
  • Stripe

QuickBooks et La Banque Postale

La connexion est rapide et permet de récupérer les relevés de comptes des 3 derniers mois. C’est fiable, c’est simple, très bon point.

QuickBooks et PayPal

Là encore, c’est simple à faire et ça permet de récupérer les relevés de compte de l’année. J’ai pas compris comment créer le compte PayPal sur le compte comptable 517, ça me l’a mis sur le 512. C’est une erreur et je n’ai pas réussi à modifier ça.

Mais mon gros problème est venu plus tard. Avec le compte PayPal, je fais des paiements avec d’autres devises que l’Euro. Le problème avec ces paiements, c’est que l’intégration PayPal récupère tous les montant et les met en euros. Ma dépense de 660$ est devenu 660€. J’ai cherché la solution sur l’aide en ligne Quickbooks et la solution existe pour les américains (avec une option Multi-devise), mais pas pour la version française. À mon avis, Quickbooks va porter cette option sur la version française un jour. Mais actuellement, je n’ai donc pas trouvé de solution.

Quickbooks et Stripe

Cette connexion était un peu plus compliqué. On passe par des écrans en anglais qui ressemblent à des messages d’erreurs, mais c’est normal. Bref, j’ai un peu galèré mais j’ai fini par réussir la connexion. La synchronisation n’est pas directe, j’ai donc attendu.

Le lendemain, j’ai été voir ce qu’avait donné la synchronisation des données Stripe et j’ai été un peu surpris. Ça a créer des écritures comptables de vente (701) en contrepartie de TVA déductible et de banque (51131). Il n’y aucune mention des commissions Stripe, ou des versements de Stripe vers mon compte bancaire. Bref, ça ne correspond pas du tout à ce que j’ai l’habitude de faire.

Bilan de mon avis sur Intuit Quickbooks

C’est très clairement le logiciel de comptabilité en ligne le plus beau et agréable à utiliser que j’ai eu l’occasion de manipuler.

Je le trouve particulièrement adapté à ceux qui ne maitrisent pas trop la comptabilité. On ne voit jamais les comptes comptables, sauf si on les cherche, et c’est probablement très rassurant pour beaucoup.

De mon côté, cette abstraction/opacité m’a gêné. Ça me rassure de voir que l’écriture de cette facture est bien d’un compte de produit à un compte de tiers + TVA. Mais j’aurais pu m’y faire car, encore une fois, Quickbooks est à mon avis le logiciel comptable le plus agréable.

Pour mon usage, le point le plus problématique, qui m’a fait arrêter l’abonnement et transitionner vers un autre logiciel comptable en ligne, c’est le relevé PayPal qui n’est pas en multi-devise. C’est cool les relevés automatique, mais il faut que ça marche. Et là, ça ne marche pas.

Je conseillerai Quickbooks à tout ceux qui ne travaillent qu’en euros et qui veulent masquer l’aspect « compta ».

Logiciel pour écrire un eBook: lequel choisir pour Mac et Windows?

Quand j’ai débuté l’écriture de mon eBook, je me suis demandé comme vous: quel logiciel pour écrire un eBook dois-je choisir? C’est une question très importante car il serait très dommage de devoir refaire la mise en page à la fin.

Voici une liste d’éditeur WYSIWYG (Ce que tu vois, c’est ce que tu auras). J’ai commencé avec un logiciel de cette liste mais j’ai depuis changé pour le Markdown. Aucun logiciel WYSIWYG ne donnera un résultat si efficace que le Markdown.

Créer un eBook sur Mac

Créer un eBook sur Mac, c’est le plus simple. Apple propose 2 logiciels gratuits qui permettent de créer des livres numériques:

Apple iBooks Author est plus restrictif. Si vous voulez écrire un livre ayant peu d’éléments graphiques (un roman par exemple), iBooks Author sera idéal.

Apple Pages est plus complet, permet de faire plus de chose, de placer des éléments graphiques à des endroits précis, etc. C’est le bon choix si vous voulez écrire un livre numérique ayant beaucoup d’images.

Les deux solutions sont parmi les meilleurs. Vous pourrez écrire un bel ebook avec un logiciel agréable.

Les deux permettent d’exporter le fichier en format ePub v3, en PDF, ainsi que la publication directement dans Apple Books.

Créer un ePub avec Word

Non.

Microsoft Word ne permet pas l’exportation au format ePub. Il existe plusieurs logiciels, dont Calibre, permettant de convertir un fichier .docx en format ePub. Mais n’espérez pas grand chose. Ces convertisseurs fonctionnent très bien avec un document simple mais deviennent inutile si vous utilisez des polices particulières à intégrer ou une mise en page figée (fixed layout).

Créer un ePub avec LibreOffice

LibreOffice est le célèbre « clone » de Microsoft Office, en version libre et gratuite. Il fait parti des pépites du monde du libre, avec Mozilla Firefox, Linux, etc…

Depuis LibreOffice 6.1, il est possible de créer un document avec Writer et de l’exporter au format ePub, y compris les documents avec une mise en page figée.

Pour télécharger LibreOffice, ça se passe ici: https://fr.libreoffice.org/download/libreoffice-stable/

Pour installer LibreOffice sur Windows:

C:/> choco install libreoffice-fresh

Pour installer LibreOffice sur Mac:

flogg@MacBook:~$ brew cask install libreoffice

Créer un ePub avec Calibre

Calibre, c’est un peu le couteau suisse du ePub. Il permet de convertir, visualiser, cataloguer des livres numériques.

Calibre ne va pas permettre d’écrire un ePub, mais permettra de convertir un fichier Word (.docx) en ePub par exemple.

Pour installer Calibre sur Windows:

C:\> choco install calibre

Pour installer Calibre sur Mac:

flogg@MacBook:~$ brew cask install calibre

J’ai essayé de l’utiliser. Il propose de tout faire, je confirme. En revanche, le résultat que j’obtenais était systématiquement décevant. J’imagine qu’en sachant très bien l’utiliser, il est capable de grandes choses. Toutefois, pour un novice, c’est un logiciel trop complexe. La conversion en format MOBI (Kindle) est trop ancienne et non recommandé par Amazon. Les autres conversions n’ont jamais donné un rendu correct.

Créer un ePub avec InDesign

Adobe InDesign, c’est le logiciel le plus cher pour créer un ePub. Créer un ePub avec InDesign nécessite de s’abonner à Adobe Creative Cloud pour 23,99€ minimum.

C’est certainement un très bon logiciel, largement utilisé pour la mise en page dans le journalisme.

Pour créer un ePub, il y a d’autres logiciels, moins cher ou gratuit qui permettent d’obtenir un niveau de qualité largement suffisant. C’est votre contenu qui est important et pas les artifices :).

Créer un ePub à partir d’un PDF

Je n’ai pas trouver de logiciel suffisamment bon pour convertir un PDF en ePub en conservant toutes les informations (mise en page, image, police, etc.).

En revanche, Amazon fournit un logiciel permettant de convertir un PDF en un format compatible avec la distribution via Amazon Kindle: Amazon Kindle Create.

Après avoir importé votre fichier d’origine en PDF, vous pourrez le convertir en format KPF qu’il sera ensuite possible de distribuer via Amazon. L’opération est simple et rapide, il suffit d’installer Amazon Kindle Create sur son ordinateur.

Comparatif: Logiciel pour écrire un eBook/ePub?

Si vous avez un Mac, la solution est claire: Pages.

Sur Windows, la solution est également claire: LibreOffice. C’est le seul logiciel réputé permettant d’exporter au format ePub.

Ces 2 solutions sont gratuites! Pas besoin d’investir dans un logiciel pour créer un eBook. Maintenant, concentrez-vous sur votre contenu, et débutez l’écriture! Quand vous aurez fini votre livre numérique, pensez à compresser votre ePub avant de le diffuser. Ça permettra d’économiser sur les frais de distributions de KDP.

Publié le
Catégorisé comme eBook Étiqueté ,

Marantz et l’obsolescence programmée

Pour Noël 2016, j’ai offert à mon père un superbe amplificateur: le Marantz M-CR611. Mon père est un audiophile, il fabrique lui-même ses enceintes et il n’avait pas un bon amplificateur pour les accompagner. Je voulais un amplificateur capable de fonctionner facilement avec le PC, l’iPad et le téléphone. Il écoute principalement de la musique via les radios, les podcasts et Deezer. J’ai acheté cet amplificateur environ 450€.

Voilà donc 3 ans que ce superbe amplificateur est à la maison et je regrette amèrement cet achat. Pour un amplificateur « haut de gamme », j’ai l’impression d’avoir un produit chinois mal conçu. Je ne remet pas en cause les qualités « audios » de ce produit, je ne m’y connais pas. Par contre, les aspects modernes de ce produits ont été bâclés. Explications.

1 – Le réseau WiFi

Pour le configurer, c’est le parcours du combattant. Au début je mettais en cause la Livebox Play qui n’était déjà pas un cadeau. Mais ils ont depuis une Livebox 4, bien mieux conçu et je sais désormais que c’est bien l’amplificateur qui a un problème.

Le WPS est présent mais ne fonctionne pas. La recherche de réseau ne fonctionne pas non plus. Il faut saisir à la main chaque lettre en faisant défiler l’alphabet. C’est long. Ensuite ça semble se connecter mais ça ne se connecte jamais. Une adresse IP est bien attribué mais le logiciel de l’amplificateur doit être buggé, ça ne va jamais plus loin.

La connexion filaire fonctionne bien et il faut l’utiliser car c’est la seule à marcher.

Une fois la connexion filaire en place, on peut se connecter à l’administration de l’ampli via l’IP. On découvre alors une interface austère, lente qui ne permet rien. Inutile donc.

2 – Le suivi produit

L’amplificateur est compatible Airplay. En janvier 2019 – 25 mois après l’achat -, le protocole est passé à la version 2. 25 mois, c’est trop pour Marantz. Aucune mise à jour ne sera fourni pour être compatible. Si ça vous intéresse, rachetez un produit. Merci.

3 – La qualité de l’assistance: Not Found

Si vous rencontrez un problème, ne comptez pas sur un éventuel service client: il n’y en a pas. Le site officiel propose un numéro de téléphone et une adresse postale. Si vous pensiez qu’en 2019 on pouvait communiquer par email, c’est trop demandé pour Marantz.

Que pense Internet de ce Marantz MCR611

D’un côté, il y a les tests de site e-commerce et les journalistes. Tous sont emballés par cet amplificateur:

D’un autre côté, il y l’avis d’utilisateurs. C’est moins glorieux et je ne suis pas le seul déçu. Il y a même un blog en français dédié au MCR611: www.marantz.mcr611.com


3 ans avec le Marantz MCR611

3 ans après cet achat, j’ai un amplificateur obsolète. Marantz de fournit plus de mise à jour, la dernière date de Aout 2018. Pourtant, tout est là. Le son sort toujours des enceintes et est bon.

À côté de ça, mon NAS Lenovo vient tout juste d’être abandonné, 7 ans après. Finalement, qui pratique l’obsolescence programmée? Les entreprises de la Tech ou les autres? Les entreprises historiques comme Marantz ont encore beaucoup de choses à apprendre des nouvelles. À moins qu’elles ne changent jamais et fasse faillite plus rapidement que prévu.

Publié le
Catégorisé comme Audio Étiqueté

Connecter deux casques bluetooth mac: comment faire?

Lundi 13 mai, j’étais dans le train pour un long trajet Paris>Toulouse. Un bon moment pour regarder le dernier épisode de Game of Thrones non? Mais partager ses AirPods, c’est pas pratique. Idéalement, je voulais connecter deux casques bluetooth sur le Macbook. Et ça marche!

Étape 1. Il tout d’abord appairer les 2 AirPods sur le mac, via le bluetooth. Vous devriez pouvoir jongler facilement entre les 2.

Étape 2. Il faut créer une « sortie agrégée » sur le Macbook. Il y a une page de l’assistance Apple qui explique cela.

Étape 3. On se rend compte maintenant qu’il n’est pas possible de modifier le volume sur la sortie agrégée. Alors on déconnecte chaque AirPods, on le reconnecter un par un, on fixe chacun son volume de sortie et que reconnecter la sortie agrégée.

Trop bien! Et sur iPhone? La réponse est simple aussi: non. Il n’est pas possible de connecter 2 écouteurs bluetooth sur iPhone.

Connecter 2 AirPods sur iPhone et iPad

C’est désormais possible! Avec iOS 13.1, le 24 septembre, il est possible de connecter 2 paires d’AirPods et de transmettre le son aux 2 paires. Ça fonctionne avec tous les écouteurs bluetooth avec une puce Apple W1 ou H1, c’est à dire les AirPods et les écouteurs Beats.

Publié le
Catégorisé comme macOs Étiqueté

Activer TimeMachine sur SMB avec un NAS Lenovo IX2

Mon NAS n’est pas tout jeune. C’est un Lenovo IX2 qui est sorti en 2011. C’est pas le plus rapide, mais ça fait le boulot. Je ne m’en sers que pour des sauvegardes, rien de très intensif, et ça me suffit. Le problème, c’est que je rencontre beaucoup de problèmes de fiabilité avec les sauvegardes TimeMachine.

TimeMachine permet de faire des sauvegardes des Mac très facilement. Je l’utilise en WiFi sur 2 Macbook. Souvent, au moins une fois par mois, c’est un message m’indiquant qu’il faut créer à nouveau une sauvegarde TimeMachine. Ce message, c’est l’indicateur que la précédente sauvegarde est corrompue et qu’il faut tout recommencer. Il semblerait que l’origine de la corruption soit à mettre sur le dos du protocole AFP, le protocole réseau d’Apple. C’est vieux, c’est moisi et ce n’est plus maintenu par Apple. Ils indiquent eux-mêmes qu’il est préférable de passer sur des sauvegardes TimeMachine par SMB.

SMB, c’est comme CIFS, c’est le nom d’un protocole de communication réseau. C’est celui que Microsoft a implémenté dans Windows. Sous Linux, ça se fait avec Samba. MacOs sait utiliser ces partages réseau, mais ils ne permettaient pas les sauvegardes TimeMachine. Enfin, jusqu’à la version Samba 4.8.x qui le permet!

Mon NAS, le Lenovo IX2 vient de passer en EOL (End Of Life). Il n’est plus maintenu par Lenovo. La dernière mise à jour disponible indique une mise à jour vers Samba 4.9. Alors Bingo?

Non. Même si Samba est mis à jour, les options de configurations nécessaires au fonctionnement de TimeMachine ne sont pas là. Alors on va l’ajouter à la main.

Activer TimeMachine sur SMB avec un NAS Lenovo IX2

Désactiver AFP

On va commencer par désactiver AFP sur le NAS. Ça évitera une inutile confusion. Pour accéder au réseau, macOs utilise déjà SMB. AFP n’était utile que pour TimeMachine.

Désactiver le protocole AFP/TimeMachine

Préparer l’emplacement des sauvegardes

J’ai crée un partage spécial nommé « TimeMachine ». Vous pouvez aussi créer un dossier par utilisateur. Notez toutefois que toute modification dans l’interface concernant les partages annulera notre modification pour TimeMachine sur SMB.

Activer l’accès SSH

Pour activer l’accès SSH, il faut se rendre sur une page « secrète »: http://nas.local/manage/diagnostics.html

Indiquer un mot de passe, sachant que le mot de passe réel pour se connecter sera soho + MotDePasse. Par exemple, avec le mot de passe « babar », il faudra se connecter en SSH avec le mot de passe « sohobabar ».

Pour se connecter, ça se passe dans le terminal: ssh root@nas.local

Modifier le fichier smb.conf

Le fichier de configuration se situe dans /mnt/system/config/smb.conf.

root@Nas:/# nano /mnt/system/config/smb.conf

Voici la configuration de mon partage à l’origine:

[TimeMachine]
path= /mnt/pools/A/A0/TimeMachine/
max connections= 50
directory mode= 0777
create mode= 0777
follow symlinks= yes
wide links= no
strict allocate= no
nt acl support= no
dos filemode= no
writeable= no
valid users= "admin" "flogg"
store dos attributes= yes
write list= "admin" "flogg"

Voici la configuration cible:

[TimeMachine]
path= /mnt/pools/A/A0/TimeMachine/
max connections= 50
directory mode= 0777
create mode= 0777
follow symlinks= yes
wide links= no
nt acl support= no
dos filemode= no
valid users= "admin" "flogg"
store dos attributes= yes
write list= "admin" "flogg"
browseable = yes
writeable = yes
create mask = 0600
directory mask = 0700
vfs objects = catia fruit streams_xattr
fruit:aapl = yes
fruit:time machine = yes

Concrètement, j’ai ajouté les 7 dernières lignes:

browseable = yes
writeable = yes
create mask = 0600
directory mask = 0700
vfs objects = catia fruit streams_xattr
fruit:aapl = yes
fruit:time machine = yes

Et j’ai supprimé une ligne d’origine:

browseable= no

Plus d’infos sur la configuration Samba sur le blog de Adam Demasi.

Tester la configuration Samba

On relance Samba pour vérifier si tout fonctionne bien. Sur ce NAS, rien n’est normal donc on ne va pas relancer les processus, mais simplement recharger la configuration:

root@Nas:/# /usr/local/samba/bin/smbcontrol all reload-config

Retour sur un Mac. Normalement, le partage est censé s’afficher tout de suite dans TimeMachine. Mais pas chez moi. Il faut d’abord que je monte le partage une première fois, ensuite je peux configurer TimeMachine. Par la suite TimeMachine sait réutiliser le partage donc il s’agit simplement d’une manipulation pour la mise en place.

Depuis le Finder, aller dans « Aller -> Se connecter au serveur » et indiquer « smb:// » puis l’emplacement du partage. Chez moi c’est smb://nas.local/TimeMachine.

Une fois le partage monté, TimeMachine peut le voir. Je configure l’accès et c’est prêt!

Rendre la configuration Samba persistante

Quand vous redémarrerez le NAS, il perdra la modification de configuration. Pour la rendre persistante, il suffit de faire:

chattr +i /mnt/system/config/smb.conf

(Source)

Désactiver l’accès SSH

Maintenant que tout est fini, on peut se déconnecter et désactiver la connexion SSH depuis la même page http://nas.local/manage/diagnostics.html


Je viens de faire cette modification, j’espère que la fiabilité des sauvegardes va s’améliorer! Jusqu’ici, tout va mieux :).

Éviter le spam de commentaire WordPress, gratuit et sans plugin

Le spam de commentaire WordPress, c’est la plaie. C’est sans fin. Pour éviter le spam de commentaire WordPress, il y a heureusement des solutions. On peut le classer en 2 catégories:

  • le spam automatisé: en anglais, faisant souvent la promotion de médicament
  • le spam de promotion: des commentaires en français du genre « super article » qui en profite pour mettre son lien et essayer de gratter un backlink inutile.

Dans les 2 cas, on en veut pas. Voici le plan que je propose:

  • Activer la modération pour tous les commentaires: au lieu d’afficher tout de suite les commentaires, on les met en attente pour une approbation manuelle.
  • Mettre en place un liste noire de mots clés pour les commentaires: pour les envoyer tout de suite à la corbeille.
  • Supprimer le lien du « site internet » du commentaire.
Éviter ce genre de commentaire spam WordPress
Miam miam, du bon spam

Pourquoi ne pas utiliser Akismet? C’est pourtant gratuit pour les sites « non-commerciaux ». Oui, mais la notion de site commercial n’est pas super-définie. Si vous avez des liens affiliés, vous gagnez de l’argent, c’est donc commercial. L’autre raison, c’est que Akismet a beaucoup de faux-positif (des commentaires tagués comme spam par erreur): des commentaires légitimes qui ne s’affichent pas, des visiteurs mécontent d’être censurés.

Activer la modération de tous les commentaires

En premier lieu, on va donc éviter d’afficher ces commentaires. On va soumettre tous les commentaires à une approbation manuelle. WordPress a une option pour ça, dans « Réglage > Discussion ». Cochez « Le commentaire doit être approuvé manuellement ».

Notons que cette action ne va pas éviter le spam de commentaire WordPress. En revanche, les commentaires ne seront plus directement affiché sur le site ce qui préservera l’image de votre site.

Activer la modération des commentaires WordPress
Activer la modération des commentaires WordPress

Mettre en place une liste noire pour les commentaires spam WordPress

Ok, maintenant on reçoit un mail pour chaque commentaire en attente. Et il peut y en avoir beaucoup. Heuresement, la grande majorité du spam (99% chez moi), c’est le spam automatique en anglais pour des médicaments. C’est celui qui tombera dans le panneau de notre liste noire.

On va utiliser une autre fonctionnalité de WordPress: la mise à la corbeille des commentaires contenant les mots clés du spam. C’est encore dans « Réglages > Discussion ».

Liste noire de commentaire spam WordPress
Liste noire de commentaire spam WordPress

Il y a 3 écoles:

  • vous alimentez la liste noire à la main, suivant les cas rencontrés. C’est ce que je fais désormais.
  • vous utilisez une liste noire préconstruite, contenant la majorité des mots clés. C’est ce que je faisait, et j’utilisais cette liste noire. J’ai arrêté car il y avait trop de faux-positif.
  • Utiliser un plugin qui maintient à jour la liste noire. Par exemple Blacklist Updater ou Comment Blocklist Manager qui utilise la même source de liste noire qu’au point précédent.

Supprimer le lien du commentaire WordPress

Ce moyen, c’est spécialement dédié au spam de promotion. Ce cas est assez rare, je n’en rencontre pas beaucoup. Vous n’êtes pas obligé de faire cette étape, vous aller déjà bien éviter le spam de commentaire WordPress avec la modération et la liste noire.

Pour cette partie, on va ajouter du code dans WordPress. On peut le faire directement dans le fichier functions.php, mais je préfère le faire avec un plugin gérant ce genre de modification: Code Snippets.

Voici le code à ajouter pour ne pas afficher de lien pour le site:

add_filter( 'get_comment_author_link', 'rv_remove_comment_author_link', 10, 3 );
function rv_remove_comment_author_link( $return, $author, $comment_ID ) {
  return $author;
} 

add_filter('get_comment_author_url', 'rv_remove_comment_author_url'); 
function rv_remove_comment_author_url() {
  return false;
}
Code pour supprimer le lien des commentaires WordPress
Code pour supprimer le lien des commentaires WordPress

Reconstruire un ePub (rezipper le fichier) et le vérifier

Après avoir modifier un ePub, ou compresser un ePub, vous aurez besoin de reconstruire un ePub avant de le diffuser. Le fichier ePub est une archive zip ayant quelques spécificités qu’il faut suivre pour obtenir un fichier ePub valide et compréhensible par un maximum de liseuse.

Reconstruire un ePub

Pour reconstruire un ePub, la méthode est pareil quelques soit les logiciels que vous utilisez. Je fais ce tutoriel depuis macOs.

La reconstruction se passe en 3 temps:

  • Supprimer les fichiers temporaires
  • Créer une archive non compressée avec le fichier mimetype
  • Ajouter les autres informations compressées

Supprimer les fichiers temporaires de son ePub

Sur macOs, des dossiers cachés ._DS_Store sont créés à tout bout de champs. On va les supprimer de notre ePub pour ne pas les embarquer inutilement:

flogg@MacBook:~/ePub$ find . -name '.DS_Store' -type f -delete

Créer un fichier zip non-compressé

Le fichier mimetype doit être non-compressé et être le premier fichier de l’archive. On commence donc avec lui:

flogg@MacBook:~/ePub$ zip -X0 MonEbook.epub mimetype

-X permet de ne pas enregistrer les informations additionnels du fichier (propriétaire, groupe): -X: Do not save extra file attributes (Extended Attributes on OS/2, uid/gid and file times on Unix).

-0 permet de ne pas compresser

Ajouter les informations compressées de l’ePub

On peut compresser les autres informations de l’ePub, alors on va les compresser au maximum, en les ajoutant au fichier zip existant:

flogg@MacBook:~/ePub$ zip -rX9 MonEbook.epub META_INF OPS

-r permet d’incorporer tout le contenu des dossiers

-9 permet de compresser au maximum

Terminé. Le fichier ePub reconstruit est prêt! C’est normalement un fichier ePub valide, mais il est préférable de le vérifier.

Vérifier son ePub

Pour vérifier la qualité du nouveau fichier ePub, on peut utiliser le programme epubcheck. C’est la même vérification que Kobo Writing Life fera après l’importation de votre fichier.

Pour l’installer:

flogg@MacBook:~/ePub$ brew install epubcheck

Pour contrôler notre fichier epub:

flogg@MacBook:~/ePub$ epubcheck MonEbook.epub

Vous devez obtenir un ePub sans erreur, ou au moins sans plus d’erreur que dans votre fichier d’origine.

C’est tout! Le fichier est prêt à être distribuer, via Kobo Writing Life ou par vous même.