Matt Biscay est développeur WordPress et WooCommerce certifié chez Codeable, ainsi que sysadmin qualifié et enseignant-chercheur. Passionné par le code performant et les solutions sécurisées, je m'efforce d'offrir une expérience utilisateur exceptionnelle sur chaque projet.
🔗 En savoir plus sur mes services:
🌐 Mon Portfolio📧 Me Contacter
Vous avez aimé cet article ? Vous avez un projet en tête et vous pensez que je pourrais vous aider ? N'hésitez pas à me contacter, je serais ravi de discuter avec vous de votre projet !
Je suis en train de faire le ménage sur d’anciennes machines que je donne sur donnons.org : cela me permet de récupérer quelques (vieilles) données pour les sauvegarder sur le NAS avant de formater les disques durs pour leur nouvelle vie.
En changeant de machine, je me suis aperçu que le certificat TLS du NAS n’était plus valide… depuis fin février 2019! What??
Après quelques infructueux essais de renouveler le certificat, il semblerait que le passage à DSM 6.2 soit à l’origine du problème.
On m’a demandé sur Codeable un audit SEO sur un site qui avait plusieurs années d’existence et dont la ligne éditoriale a évolué avec le temps.
Les vieux articles, très courts et peu informatifs, offraient peu de valeur aux visiteurs et devaient donc être listés dans le but de les amender ou de les supprimer.
Le site était sous WordPress donc voici la requête que j’ai utilisée pour dresser la liste de tous les articles qui contiennent moins de 300 mots (on ne compte pas les espaces):
SELECT LENGTH(post_content) - LENGTH(REPLACE(post_content, ' ', ''))+1, post_title, ID
FROM wp_posts WHERE post_type='post' AND post_status='publish' AND ((LENGTH(post_content) - LENGTH(REPLACE(post_content, ' ', ''))+1) < 300);Code language:JavaScript(javascript)
Vous pouvez lancer cette requête SQL sur votre serveur MySQL ou dans un outil comme PHPMyAdmin ou Adminer: cela vous renvoie un tableau de 3 entrées qui contiennent le nombre de mots de l’article, le titre de l’article et son ID.
Au point de vue du SEO, il est recommandé de supprimer les articles zombies qui n’offrent pas de valeur aux visiteurs. Ces pages ne sont généralement pas indexées et n’apparaissent donc pas dans les résultats de recherche.
Mieux vaut consolider le site avec des pages à fort potentiel et avec un contenu conséquent. Ce n’est pas tant le nombre de mots qui compte que la richesse de contenu mais un nombre très faible de mots est un bon indicateur d’un article peu qualifié.
“This song goes to all of you out there, this song goes out to your loved ones, to all your dreams. May you and your families be safe, in peace and have love in this crazy world that we’re living in at the moment. “
John Butler
This is the ever-changing Ocean by John Butler at the Paleo Festival:
Ma Marraine, Micheline Gonati, est décédée samedi dernier au cours d’un accident de la route sur l’autoroute A1, à la suite d’un malaise cardio-vasculaire.
Mimi, tu as choisi de quitter cette terre ce samedi Dans la paix du Grand Sommeil Car ta tâche ici-bas était accomplie. Tes yeux se sont fermés doucement, Comme pour nous chuchoter Qu’au bout de la nuit, il y a l’aurore, Qu’au bout de l’hiver, il y a le printemps, Qu’au bout de la mort, il y a la Vie.
Mimi, nous ne t’oublierons pas. On se souviendra toujours de ton rire sonore, De tous les bons moments passés ensemble A parler des petits riens de la vie, Émaillées de piques acerbes aussi parfois, Et d’impatiences, car nul doute, quelle Rebelle, Si anticonformiste, tellement ivre de liberté ! Mais toujours restera le souvenir De ton linge repassé à la perfection, De ta passion pour les chats et le jardin, Des albums photos consignant avec soin Famille, naissances, mariages et communions De la valeur que tu accordais à la santé Toujours prête à envoyer Le remède miracle, De ton amour inconditionnel des enfants, Toujours prête à conseiller, aider, éduquer Offrant temps, amour, énergie sans compter, Sans jamais demander rien en retour.
Mimi, nous t’avons tous profondément aimée, Amis, Parents, tes Neveux Matthieu et Julia Le petit Jules qui a illuminé ton cœur et ton âme, Tes compagnons de route professionnelle, Confrères, collègues, patients et élèves Merci de nous avoir honorés de ta présence, De ton talent, de ton courage, de ton abnégation, Du bonheur que tu nous as offert. Tu seras toujours là, présente. Présente dans le vent qui souffle, Dans la neige qui scintille, Dans le chant des oiseaux, Dans la douce pluie d’automne, Dans l’étoile qui brille dans la nuit.
Mimi, le temps est venu d’ouvrir tes Ailes de Lumière, De prendre ton essor et de t’envoler vers la Liberté, Confiante d’emprunter ce Chemin de Paix, de Joie, De Sagesse, de Connaissance, libre de tous obstacles Et de rencontrer à ton arrivée les Êtres que tu as aimés Qui t’attendent pour partager une nouvelle vie astrale Vibrante, inspirante où inscrire et rêver ton Grand Rêve.
Mimi, au seuil de ce voyage initiatique de l’âme, Souviens-toi de toutes tes bonnes Actions, Sois protégée, entourée d’Amour, de Lumière Et accompagnée de nos profondes bénédictions.
On pensera toujours à toi Marraine, tu es à jamais dans les cœurs de tous ceux qui ont eu la chance de te connaître. Je t’aime et je pense fort à toi, toujours.
Bien qu’il ne puisse pas être considéré comme un album-concept, toutes les chansons ont pour thème des histoires surnaturelles, à l’instar de la chanson éponyme, The Raven That Refused To Sing:
La chanson The Raven That Refused to Sing raconte l’histoire d’un vieil homme qui attend la mort avec impatience. Il repense à une époque de son enfance durant laquelle il était incroyablement proche de sa sœur aînée, qui est morte alors qu’ils étaient tous deux très jeunes.
L’homme est convaincu qu’un corbeau qui visite son jardin est en vérité une manifestation de sa sœur. Le fait est que celle-ci avait l’habitude de chanter pour lui à l’époque de leur enfance, dès qu’il avait peur ou ne se sentait pas en sécurité, et cela avait une influence apaisante sur lui. Ignorant qu’il ne s’agit que d’un simple corbeau, il finit par penser que si le corbeau chante pour lui, ce sera la preuve que sa sœur est revenue pour l’emmener avec lui dans l’au-delà.
Jouent sur cet album Steven Wilson (chant), Guthrie Govan (guitares), Nick Beggs (basse), Marco Minnemann (drums), Adam Holzman (keyboards), et Theo Travis (saxophone / flute). L’album a été produit et mixé par le légendaire Alan Parsons, qui a produit l’album The Dark Side of the Moon de Pink Floyd.
Aujourd’hui, j’ai installé LineageOS (Android 9.0 Pie) sur mon OnePlus One, histoire de lui redonner un second souffle et de bénéficier des dernières mises à jour de sécurité Android.
Le OnePlus One (OPO) est sorti en mai 2014, il a donc quelques années derrière lui et tourne sous CyanogenMod 13, c’est-à-dire Android 6.0.1 (Marshmallow). Autant dire qu’il n’a pas vu de correctifs de sécurité depuis quelques années!
Étape 1: activer le débogage USB
Sur le téléphone, on commence par activer le mode développeur:
Ouvrez Paramètres > A propos du téléphone.
Tapez 7 fois sur le numéro de build.
Vous venez d’activer le mode développeur!
Grâce au mode développeur, vous avez maintenant accès à des options qui n’étaient pas visibles auparavant et qui vont nous être nécessaires.
Pour activer le débogage USB:
Ouvrez Paramètres > Options pour les développeurs
Activez l’option Débogage Android
Désactivez l’option Mettre à jour la récupération CyanogenMod (sinon l’installation du recovery sera impossible).
Étape 2: installation d’ADB
Android Debug Bridge (adb) est un outil de développement qui facilite la communication entre un appareil Android et un ordinateur. Cette communication s’effectue soit par câble USB, soit en WiFi.
Lors d’une connexion SSH sur le serveur d’un client chez WPEngine, je suis tombé sur le message d’erreur suivant:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644for'/Users/matt/.ssh/id_ed25519.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/matt/.ssh/id_ed25519.pub": bad permissionsCode language:PHP(php)
Au lieu d’utiliser ma clé privée, j’ai utilisé ma clé publique (id_ed25519.pub) qui – comme elle est publique – bénéficie de droits plus large que la clé privée.
Il faut donc relancer la commande en retirant l’extension .pub du chemin de la clé, pour que la clé privée soit prise en compte:
Si vous utilisez fail2ban sur votre serveur dédié – et vous devriez! – il peut être vraiment utile de lister les statuts de toutes les jails fail2ban.
Cela permet de voir quelles sont les jails actives et de vérifier qu’il n’y a aucun problème de configuration.
On peut obtenir le statuts de toutes les jails fail2ban avec la commande suivante:
fail2ban-client status | sed -n 's/,//g;s/.*Jail list://p' | xargs -n1 fail2ban-client statusCode language:JavaScript(javascript)
Voici un exemple de résultat de la commande:
Status for the jail: pam-generic
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
Status for the jail: postfix
|- Filter
| |- Currently failed: 0
| |- Total failed: 4482
| `- File list: /var/log/mail.log
`- Actions
|- Currently banned: 0
|- Total banned: 223
`- Banned IP list:
Status for the jail: sasl
|- Filter
| |- Currently failed: 4
| |- Total failed: 14126
| `- File list: /var/log/mail.log
`- Actions
|- Currently banned: 4
|- Total banned: 1927
`- Banned IP list: 45.148.10.7046.38.144.1746.38.144.20246.38.144.32
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:Code language:PHP(php)
Voici la rencontre entre Uptight de Stevie Wonder et Rock the Casbah des Clash par JackTheVideoRipper:
La synchro est parfaite et c’est le genre de titre qu’on n’hésite pas à se remettre plusieurs fois! C’est quasiment une nouvelle chanson, à part entière.
Crystal Silence est un album en duo du vibraphoniste Gary Burton et du pianiste Chick Corea sorti en 1972 chez ECM.
Cette collaboration se continuera avec l’album Duet (1979), Native Sense: The New Duets (1997) et The New Crystal Silence (2008), ainsi qu’avec de nombreux concerts.
Depuis le passage du site sur le nouveau serveur, ORION, j’utilise MySQL 8 en lieu et place de MariaDB, histoire de tester les les gains de performance.
Or, avec la nouvelle configuration de MySQL par défaut, vous pouvez obtenir cette erreur lors de simples opération de maintenance comme l’optimisation des tables:
example.wp_comments: Table does not support optimize, doing recreate + analyze instead
example.wp_comments: Invalid default value for'comment_date'
example.wp_comments: Operation failed
example.wp_et_social_stats: Incorrect datetime value: '0000-00-00 00:00:00'for column 'comment_date' at row 1
example.wp_et_social_stats: Invalid default value for'comment_date'
example.wp_et_social_stats: Table does not support optimize, doing recreate + analyze instead
example.wp_et_social_stats: Invalid default value for'sharing_date'
example.wp_et_social_stats: Operation failedCode language:JavaScript(javascript)
Ce qui pose problème, ce sont ces deux directives: NO_ZERO_IN_DATE et NO_ZERO_DATE.
Deux solutions s’offrent à nous : éditer la valeur directement depuis la console mysql ou alors depuis le fichier de configuration my.cnf.
Méthode 1 : éditer la valeur de sql_mode depuis la console MySQL
Si vous vous trouvez toujours dans la console mysql, vous pouvez lancer la reqête suivante, qui enlève les drapeaux NO_ZERO_IN_DATE et NO_ZERO_DATE à notre directive sql_mode:
SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';Code language:JavaScript(javascript)
Relancez ensuite le serveur:
service mysql restart
Méthode 2 : éditer la valeur de sql_mode depuis le fichier de configuration MySQL (my.cnf)
Nous allons donc éditer notre fichier de configuration MySQL:
nano /etc/mysql/mysql.conf.d/mysqld.cnf
Et ajouter (ou modifier) la variable de configuration sql_mode en l’amputant des valeurs NO_ZERO_IN_DATE et NO_ZERO_DATE:
Voici une magnifique vidéo de l’Office de Tourisme de Névez qui nous montre quelques plages et coins entre terre et mer sur la commune de Névez, dans le Finistère:
Entre Quimper et Lorient et plus précisément entre Pont-Aven et Concarneau, Névez, station littorale Sensation Bretagne, est idéalement située.
Elle permet de se poser pour un week-end ou pour un séjour dans un coin adorable, préservé et calme.
Sa situation remarquable permet aussi de découvrir très facilement toutes les richesses du Finistère et de la Bretagne Sud.
Les paysages sont préservés, et très diversifiés, les longues plages de sable fin flirtent avec les criques rocheuses. Eaux turquoise, anses sauvages, petits ports nichés au fond des rias telle est la carte de visite de ce petit coin de paradis finistérien.
Un vrai coin de paradis! <3
PS : petit jeu – saurez-vous retrouver tous les endroits capturés par le drone?