Matt Biscay: développeur WordPress et WooCommerce pour SkyMinds
linux apt packages

Apt : the following packages have been kept back

Après la mise à jour d’Ubuntu Server sur le serveur, j’ai eu cette erreur récurrente après chaque mise à jour apt :

The following packages have been kept back:
  mysql-client mysql-server

Il m’était donc impossible de mettre le serveur et client mysql à jour, ce qui n’est évidemment pas idéal.

Et si l’on essaie de les installer directement avec:

apt install mysql-client mysql-server

On obtient alors ce message:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 mysql-common : Conflicts: mysql-client-8.0 but 8.0.29-0ubuntu0.22.04.2 is to be installed
                Conflicts: mysql-client-core-8.0 but 8.0.29-0ubuntu0.22.04.2 is to be installed
 mysql-server : Depends: mysql-server-8.0 but it is not installable
E: Unable to correct problems, you have held broken packages.

Réinstaller mysql-apt-config

On commence donc par réinstaller le package mysql-apt-config :

wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb

Et on installe le paquet:

dpkg -i mysql-apt-config_0.8.22-1_all.deb

On relance donc la mise à jour:

apt update && apt upgrade

Les nouvelles versions des paquets sont désormais installables:

9 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: http://repo.mysql.com/apt/ubuntu/dists/bionic/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
Listing... Done
libmysqlclient21/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.29-0ubuntu0.22.04.2]
mysql-client/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-common/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-community-client-core/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-community-client-plugins/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-community-client/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-community-server-core/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-community-server/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-server/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  linux-headers-5.15.0-25 linux-headers-5.15.0-25-generic linux-image-5.15.0-25-generic linux-modules-5.15.0-25-generic
  linux-modules-extra-5.15.0-25-generic
Use 'apt autoremove' to remove them.
The following packages will be upgraded:
  libmysqlclient21 mysql-client mysql-common mysql-community-client mysql-community-client-core mysql-community-client-plugins
  mysql-community-server mysql-community-server-core mysql-server
9 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Résoudre le message “Key is stored in legacy trusted.gpg keyring”

Dans le message précédent, nous pouvons trouvez ce message d’avertissement:

W: http://repo.mysql.com/apt/ubuntu/dists/bionic/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

Je l’ai résolu en déplaçant le fichier dans le répertoire trusted.gpg.d :

mv trusted.gpg trusted.gpg.d/

Et voilà, plus d’erreur avec apt et notre système met bien tous ses paquets à jour.

subversion svn banner

MacOS : Subversion (SVN) ne répond plus

Aujourd’hui, je mets à jour un de mes plugins WordPress sur le dépôt officiel et subversion ne répond plus sous MacOS:

svn stat
-bash: svn: command not found

Ah tiens, il y avait longtemps. Cela doit être dû à une des mises à jour Mac ou alors d’homebrew.

Installer Subversion avec homebrew

On installe donc subversion avec homebrew:

brew install subversion

Une fois subversion installé, je relance la commande:

svn stat
-bash: svn: command not found

Oh! Je le réinstalle une nouvelle fois. Nouveau message d’erreur:

svn stat
dyld[62247]: Symbol not found: _apr_crypto_block_cleanup
  Referenced from: /usr/local/Cellar/subversion/1.14.2/lib/libsvn_subr-1.0.dylib
  Expected in: /usr/lib/libaprutil-1.0.dylib
Abort trap: 6

La solution de cette erreur est toute simple, il faut réinstaller le paquet apr-util :

brew reinstall apr-util

Résultat:

==> Downloading https://ghcr.io/v2/homebrew/core/apr-util/manifests/1.6.1_3
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/apr-util/blobs/sha256:4459e0d3d15a973db35fb64b1da85d2185afc41e77d2989186db5574d3c75234
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:4459e0d3d15a973db35fb64b1da85d2185afc41e77d2989186db
######################################################################## 100.0%
==> Reinstalling apr-util
==> Pouring apr-util--1.6.1_3.monterey.bottle.tar.gz
🍺  /usr/local/Cellar/apr-util/1.6.1_3: 54 files, 851.6KB
==> Running `brew cleanup apr-util`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

Si l’on relance de nouveau notre commande svn, tout fonctionne:

svn stat
M       trunk/better-comments.php
M       trunk/changelog.txt
M       trunk/composer.lock
M       trunk/includes/options.php
M       trunk/readme.txt
M       trunk/vendor/composer/ClassLoader.php

Et voilà, problème réglé – subversion est de nouveau opérationnel.

ubuntu 2204 jammy jellyfish

Serveur: migration d’Ubuntu 20.04 à 22.04 LTS

Aujourd’hui, nous mettons le serveur à jour et passons d’Ubuntu Server 20.04 (Focal Fossa) à la version 22.04 LTS (Jammy Jellyfish).

Chaque nouvelle mise à jour d’Ubuntu en version LTS (Long Time Support) permet de bénéficier des mises à jour de sécurité et de maintenance pendant 5 ans, c’est à dire jusqu’en 2027 pour la version Jammy Jellyfish.

Lecture des changements apportés

Je vous conseille fortement de lire le changelog de la version 22.04 pour avoir un aperçu des changements apportés au niveau du kernel, openSSL, certains services.

Sont maintenant disponibles:

  • Apache 2.4.52
  • BIND 9.18
  • Linux kernel v5.15.0-25
  • MySQL 8.0.28
  • NetworkManager 1.36
  • nftables est le backend par défaut pour le parefeu
  • Perl v5.34.0
  • PHP 8.1.2
  • PostgreSQL 14.2
  • Python 3.10.4
  • Ruby 3.0
  • ssh-rsa est maintenant désactivé par défaut dans OpenSSH.

Cela donne aussi une idée des potentielles complications qui pourraient subvenir à la suite de la mise à jour, ainsi que leur remédiation.

Sauvegarde des données du serveur

Je ne vous apprends rien : il va falloir sauvegarder les données importantes du serveur avant de commencer la mise à jour de l’OS.

Pensez-donc au dossier /home et /var/www mais aussi aux fichiers de configuration dans /etc et /root.

Vérification des pré-requis

Vérification de la version actuelle

On vérifie notre noyau actuel:

uname -mrs

> Linux 5.4.0-109-generic x86_64

On vérifie notre version actuelle:

lsb_release -a


No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.4 LTS
Release:	20.04
Codename:	focal

Mise à jour des paquets de la version actuelle

On met à jour la version actuelle avec les derniers paquets et les derniers noyaux:

apt update && apt upgrade

Redémarrage du serveur

On redémarre le serveur pour appliquer les changements et partir sur une base propre:

shutdown -r now

Lire la suite

retrouver son nas synology

Retrouver son NAS Synology sur le réseau local

Aujourd’hui, j’ai rebranché mon vieux Synology DS212, pour récupérer des fichiers dont les liens avaient expirés sur Internet et que je voulais remettre en ligne sur mon article Sons of Anarchy Wallpapers.

Le DS212 a été configuré du temps de la Freebox Révolution, qui gère les adresses IP locales depuis 192.168.0.x. Le problème est qu’aujourd’hui, avec la Freebox Pop, les adresses sont en 192.168.1.x.

Résultat: le DS212 est inaccessible car son DHCP a été configuré manuellement: il possède l’IP 192.168.0.12 alors que sur le réseau, ce devrait être 192.168.1.12. Impossible de le joindre donc.

Voici comment retrouver son NAS Synology sur le réseau local et changer son IP dans le DHCP de DSM, sans y avoir accès.

Trouver son Synology

Vous pouvez facilement trouver vos Synology depuis votre navigateur à l’adresse find.synology.com

Trouver son NAS Synology avec l'assistant web
Trouver son NAS Synology avec l’assistant web

Si l’IP du DHCP du NAS avait été correcte, j’aurais pu me connecter sans problème avec le bouton Connecter, mais ce n’est pas le cas.

Utiliser Synology Assistant pour changer les paramètres réseau du Synology

La solution est toute simple: nous devons utiliser l’utilitaire Synology Assistant, à installer sur votre machine, pour éditer la configuration réseau du Synology et lui assigner la bonne adresse IP.

Lire la suite

Speech Bubble Vector

CSS : des notes de bas de page sous forme de popup

Lorsque nous écrivons de longs articles, nous avons souvent besoin d’ajouter des notes de bas de pages – footnotes en anglais – pour donner une référence ou apporter un complément d’informations.

Il existe un moyen d’ajouter une note de bas de page en CSS, avec un effet popup.

Survolez le numéro qui s’affiche ici à pour voir la démo: ¹Voici un example de note de bas de page qui apparaît dans une popup, grâce à CSS :)

Une popup CSS pour vos notes de bas de page

Code HTML

Commençons par le code HTML. Nous avons besoin principalement d’un lien HTML et d’une balise span qui contiendra le contenu de notre footnote :

   <p>Voici un premier paragraphe avec une note de bas de page. <a class="footnote">&sup1<span>Coucou, je suis la note de bas de page numéro 1</span></a>
   </p>

   <p>Voici un deuxième paragraphe avec une note de bas de page. <a class="footnote">&sup1<span>Coucou, je suis la note de bas de page numéro 2 :)</span></a>
   </p>

Code CSS

Et voici notre code CSS pour créer la popup et afficher le contenu de nos notes de bas de page à l’intérieur, au survol de la souris:

a.footnote {
   text-decoration:none;
   background-color: #FEF6BB;
   padding-left: 2px;
   padding-right: 2px;
   margin-right: 2px;
   transition: all 2s ease;
} 

a.footnote span {
   z-index: -1;
   opacity: 0;
   position: fixed;
   left: 15px; 
   bottom: 20px;
   margin-left: 0px;
   margin-right: 18px;
   padding:14px 20px;
   border-radius:4px; box-shadow: 5px 5px 8px #CCC;
   border:1px solid #DCA;
   background-color: #FEF6BB;
   transition: all 2s ease;
}

a.footnote:hover span {
   z-index: 9;
   opacity: 1;
   transition: all 2s ease;
}

Dès que la souris n’est plus au-dessus du numéro de la note de bas de page, cette dernière disparaît avec un effet de fondu.

Résultat

Voilà ce que le code nous donne:

Voici un premier paragraphe avec une note de bas de page. ¹Coucou, je suis la note de bas de page numéro 1

Voici un deuxième paragraphe avec une note de bas de page. ²Hello World, je suis la note de bas de page numéro 2 :)

Matt

Et voilà, c’est très simple, en CSS pur mais c’est efficace et ne prend pas de ressources externes (pas de JS) – cela peut toujours servir!

Installer LineageOS (Android 9.0 Pie) sur le OnePlus One photo

Installer LineageOS (Android 11) sur le OnePlus One

Aujourd’hui, j’ai installé LineageOS (Android 11) 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!

Si votre téléphone possède déjà LineageOS, vous pouvez vous rendre directement à l’étape 5.

Étape 1: activer le mode développeur

Sur le téléphone, on commence par activer le mode développeur:

  1. Ouvrez Paramètres > A propos du téléphone.
  2. Tapez 7 fois sur le numéro de build.
  3. 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.

Étape 2 : activer le mode déboggage USB

Pour activer le débogage USB:

  1. Ouvrez Paramètres > Système > Options pour les développeurs
  2. Activez l’option Débogage Android

Étape 3 : 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.

Branchez votre OnePlus One en USB.

Téléchargez les derniers pilotes ADB issus du SDK Android puis décompressez l’archive.

Ouvrez le terminal, rendez-vous dans le répertoire platform-tools et listez ensuite votre téléphone avec cette commande:

./adb devices

Résultat:
List of devices attached
b4be4c53	device

Notre OnePlus One est bien détecté. On reboot en mode fastboot:

./adb reboot bootloader

On liste les appareils détectés par fastboot:

./fastboot devices

Résultat:
b4be4c53    fastboot

Attention, la commande suivante va effacer vos données donc pensez à sauvegarder les données importantes de votre téléphone avant!

On déverrouille le bootloader avec:

./fastboot oem unlock
                                                    OKAY [  0.168s]
 Finished. Total time: 0.168s

Lire la suite

Javascript : afficher le contenu d'un bloc HTML après un délai variable photo

JavaScript: sélectionner et désélectionner toutes les cases à cocher d’un coup

Il nous arrive souvent d’avoir toutes les cases (checkboxes) d’un formulaire ou d’un tableau à cocher.

Parfois, la fonctionnalité Sélectionnez tout / Désélectionner tout n’est pas implémentée donc voici comment faire, à l’aide de JavaScript.

Cocher toutes les cases

Supposons que toutes les cases à cocher de notre tableau se nomment post[], voici comment cocher toutes les cases, en utilisant vanilla JS :

var ele=document.getElementsByName('post[]');  
for(var i=0; i<ele.length; i++){  
  if(ele[i].type=='checkbox')  
    ele[i].checked=true;  
}  

Décocher toutes les cases

Inversement, on peut modifier le code précédent avec checked=false si l’on souhaite décocher toutes les cases:

var ele=document.getElementsByName('post[]');  
  for(var i=0; i<ele.length; i++){  
    if(ele[i].type=='checkbox')  
      ele[i].checked=false;  
  }

Fonction et bouton : Sélectionner tout

Maintenant, voyons comment nous pouvons intégrer notre code dans une fonction, que nous pourrons associer à un bouton “Sélectionner tout”:

function SelectAll(){  
  var ele=document.getElementsByName('post[]');  
  for(var i=0; i<ele.length; i++){  
  if(ele[i].type=='checkbox')  
    ele[i].checked=true;  
  }  
}  

Et notre bouton pourra être intégré comme ceci:

<input type="button" onclick='SelectAll()' value="Select All"/>  

Fonction et bouton : Désélectionner tout

Et le pendant: la fonction et le bouton qui permettent de désélectionner toutes les cases à cocher:

function deSelectAll(){  
  var ele=document.getElementsByName('post[]');  
  for(var i=0; i<ele.length; i++){  
    if(ele[i].type=='checkbox')  
      ele[i].checked=false;  
  }  
}      

Et voici le code HTML du bouton:

<input type="button" onclick='deSelectAll()' value="Deselect All"/>  

J’utilise souvent le premier bout de code sans les fonctions, ni le HTML (sauf si je développe une page d’options particulière), directement dans la console JavaScript du navigateur. C’est un gain de temps considérable sur certaines pages.

Bonnes sélections!

macos monterey wallpaper

Installer composer et PHP sous MacOS Monterey

Depuis la mise à jour MacOS Monterey (v12+) et pour toutes les versions à venir, Apple ne fournit plus de binaire PHP installé par défaut.

Si vous utilisez composer par exemple pour l’un de vos scripts ou plugin, voici le message d’erreur que vous pouvez obtenir:

composer update --no-plugins --no-scripts
env: php: No such file or directory

J’ai tenté pas mal de solutions, comme installer PHP avec brew mais cela n’a pas résolu le problème.

Error: Permission denied @ apply2files

C’est l’une des erreurs obtenues lors de l’installation de paquets avec brew, directement après la mise à jour vers Monterey:

Error: Permission denied @ apply2files - /usr/local/lib/node_modules/npm/node_modules/.bin/node-gyp

Si cela vous arrive, c’est un problème de permissions sur le répertoire /user/local, la solution est simple, il faut redonner les bonnes permissions à votre utilisateur avec cette commande:

sudo chown -R $(whoami):admin /usr/local/* \
&& sudo chmod -R g+rwx /usr/local/*

Voilà déjà un problème réglé.

Installer composer sous MacOS Monterey

La véritable solution, toute simple finalement, est de réinstaller composer, qui se charge alors d’installer la version idoine de PHP.

On installe composer avec brew:

brew install composer

Résultat:


==> Downloading https://ghcr.io/v2/homebrew/core/php/manifests/8.1.0
Already downloaded: /Users/matt/Library/Caches/Homebrew/downloads/6dba7b955c116a258cc340994e9e9ed7dfdfe3ab7668f0f9adb5dfcdaaf303a2--php-8.1.0.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/php/blobs/sha256:dbbf3f0e595af9a72f6dcf7fef1890c6152bf9fb1be83f166b467393176c4aa5
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:dbbf3f0e595af9a72f6dcf7fef1890c6152bf9fb1be83f166b4
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/composer/manifests/2.1.14
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/composer/blobs/sha256:02f5fed3d67b82fb827078ffcd486a4a455d1f94e94d0701d779238d4e10903e
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:02f5fed3d67b82fb827078ffcd486a4a455d1f94e94d0701d77
######################################################################## 100.0%
==> Installing dependencies for composer: php
==> Installing composer dependency: php
==> Pouring php--8.1.0.monterey.bottle.tar.gz
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set php_ini /usr/local/etc/php/8.1/php.ini system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set php_dir /usr/local/share/pear system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set doc_dir /usr/local/share/pear/doc system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set ext_dir /usr/local/lib/php/pecl/20210902 system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set bin_dir /usr/local/opt/php/bin system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set data_dir /usr/local/share/pear/data system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set cfg_dir /usr/local/share/pear/cfg system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set www_dir /usr/local/share/pear/htdocs system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set man_dir /usr/local/share/man system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set test_dir /usr/local/share/pear/test system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set php_bin /usr/local/opt/php/bin/php system
==> /usr/local/Cellar/php/8.1.0/bin/pear update-channels
🍺  /usr/local/Cellar/php/8.1.0: 512 files, 79.9MB
==> Installing composer
==> Pouring composer--2.1.14.monterey.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/composer
Target /usr/local/bin/composer
already exists. You may want to remove it:
  rm '/usr/local/bin/composer'

To force the link and overwrite all conflicting files:
  brew link --overwrite composer

To list all files that would be deleted:
  brew link --overwrite --dry-run composer

Possible conflicting files are:
/usr/local/bin/composer
==> Summary
🍺  /usr/local/Cellar/composer/2.1.14: 3 files, 2.2MB
==> Running `brew cleanup composer`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

Comme vous pouvez le constater dans les résultats précédents, le lien symbolique n’a pas été créé correctement donc nous allons le corriger à la main.

On teste notre commande avec --dr-run d’abord:

brew link --overwrite --dry-run composer
Would remove:
/usr/local/bin/composer

Tout semble bon, on crée le lien symbolique:

brew link --overwrite composer
Linking /usr/local/Cellar/composer/2.1.14... 1 symlinks created.

On reteste maintenant notre mise à jour de plugin via composer:

composer update --no-plugins --no-scripts

Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Writing lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files

Impeccable, composer et php sont de nouveau opérationnels sous Monterey.

Black Friday et Cyber Monday 2019 : les meilleurs plans du web photo 1

Black Friday et Cyber Monday : les meilleurs plans du web

Allez, c’est la semaine la plus folle de l’année : Black Friday et Cyber Week ! Ces quatre jours de folie (certains les rallongent même de quelques jours, avant et après) vous assurent d’obtenir tous vos cadeaux avant Noël.

J’ai dégoté pour vous quelques offres intéressantes et variées tout en me fixant une ligne de conduite: face aux excès de la (sur)consommation, je vous propose uniquement des offres intéressantes pour des produits ou services virtuels.

Pas d’envois par la poste, et pas de camionnettes sur les routes – car nous n’avons qu’une planète.

Hébergement WordPress

WP Engine : 5 mois et demi gratuits sur tous les plans annuels

WPEngine

WPEngine est un hébergeur très performant qui offre 5 mois gratuits sur tous ses plans annuels, ce qui est une véritable aubaine pour passer votre site à la vitesse supérieure !

WP Engine Cyber Weekend Promotion – 5 mois gratuits sur les plans annuels

Cloudways : -40% pendant 4 mois

Cloudways

Cloudways offre 40% de réduction pendant 4 mois sur toutes ses offres.

Thèmes WordPress

Pack de thèmes Genesis: -100$ sur le pack StudioPress Pro-Plus All Theme

Thèmes Genesis de StudioPress

Genesis est une base rapide et très sécurisée pour tout type de site WordPress. Jusqu’au 30 novembre, vous bénéficiez de $100 de réduction sur le Pack Pro, qui contient le framework Genesis ainsi que tous les thèmes Genesis (officiels et third-party).

Cela équivaut à une économie de $2300 par rapport à si vous achetiez chacun des thèmes séparément.

Divi: -25%

Divi WordPress Theme

ElegantThemes offre une remise de 25% sur toutes ses licences, dont celle de Divi.

WooCommerce : -40% sur les thèmes et extensions

WooCommerce

WooCommerce frappe encore plus fort cette année avec une remise de 40% sur tous les thèmes et extensions WooCommerce, jusqu’au 30 novembre avec le coupon JETBLACK.

Plugins WordPress

WPRocket: -30%

WP Rocket Black Friday - WordPress Caching Plugin

WP-Rocket est l’un des meilleurs plugins de cache (sinon le meilleur) pour WordPress, qui fonctionne sur la très grande majorité des hébergeurs (même les plus restrictifs). Il est très simple à configurer et donne des résultats très rapidement.

La remise est de 30% sur la licence WP Rocket jusqu’au 1er décembre.

Shortpixel : 250% de crédits

shortpixel

Du 29 novembre au 2 decembre, Shortpixel offre 250% de crédits lors d’un achat de credits mensuels ou one-shot. Si vous achetez 10 000 crédits, vous en recevrez 25 000.

J’utilise ShortPixel sur tous mes sites et n’ai jamais plus besoin de m’occuper du taux de compression des images, tout se fait automatiquement en arrière-plan, ce qui fait baisser en moyenne plus de 60% de la bande passante des images.

Amazon Music Unlimited : 3 mois d’abonnement gratuits

Amazon Music Unlimited est un service de streaming musical avec:

  • plus de 50 millions de titres en illimité – incluant les dernières nouveautés des plus grands artistes ainsi que plusieurs centaines de playlists et stations
  • toutes les nouveautés – découvrez tous les derniers titres dès leur sortie
  • aucune publicité – écoutez votre musique sans interruption et profitez d’un son de haute qualité
  • mode hors connexion disponible – téléchargez vos titres préférés et écoutez-les partout, même sans connexion
  • mode mains-libres avec Alexa

L’offre est valide pour les nouveaux clients Amazon Music Unlimited jusqu’au 6 janvier.

Reconnaissance vocale vers l'éditeur de texte

Productivité : passer du clavier à la dictée vocale

Un logiciel de reconnaissance vocale est une application qui utilise des algorithmes de reconnaissance vocale pour identifier le langage et le retranscrire en texte.

Voici un tour d’horizon des meilleurs moyens d’utiliser la reconnaissance vocale pour dicter vos messages et documents sous Windows, MacOS et Linux, le tout gratuitement.

La saisie vocale sous Windows

voice typing in windows 11

La saisie vocale de Windows 11 et 10 vous permet d’entrer du texte sur votre PC en parlant. La saisie vocale utilise la reconnaissance vocale en ligne, optimisée par Azure Speech Services.

Pour utiliser la saisie vocale, vous devez être connecté à Internet, utiliser un microphone et le curseur dans une zone de texte.

Une fois que vous activez la saisie vocale, elle commence à écouter automatiquement. Patientez pendant la « À l’écoute… » avant de commencer à parler.

Activer la saisie vocale

Appuyez Windows touche de logo+H sur un clavier matériel.

Appuyez sur la touche de microphone à côté de la barre d’espace sur le clavier tactile.

Arrêter la saisie vocale

Dites une commande de saisie vocale telle que « Arrêter l’écoute ».

Appuyez sur le bouton microphone dans le menu de saisie vocale.

Installer une langue de saisie vocale

Vous pouvez utiliser une langue de saisie vocale différente de celle que vous avez choisie pour Windows. Voici la marche à suivre :

1. Sélectionnez Démarrer > Paramètres > langue & et> langue & région.

2. Recherchez les langues préférées dans la liste, puis sélectionnez Ajouter une langue.

3. Recherchez la langue que vous voulez installer, puis sélectionnez Suivant.

4. Sélectionnez Suivant ou installez les fonctionnalités de langue facultatives que vous souhaitez utiliser. Ces fonctionnalités, notamment la reconnaissance vocale, ne sont pas nécessaires au travail de la saisie vocale.

Changer la langue de saisie vocale

Pour changer la langue de saisie vocale, vous devez modifier la langue d’entrée que vous utilisez. Procédez comme suit :

Sélectionnez le sélecteur de langue dans l’angle de la barre des tâches.

Appuyez Windows touche de logo + Espace sur un clavier matériel.

Appuyez sur le s basculer de langue dans le coin inférieur droit du clavier tactile.

Lire la suite

Les NFT et la blockchain photo

Les NFT et la blockchain

La blockchain

Une blockchain est fondamentalement une base de données partagée, c’est pourquoi elle est également connue sous le nom de grand livre (au sens de grand registre) distribué (bien que des grands livres distribués puissent reposer sur d’autres technologies).

La blockchain se différencie de la technologie traditionnelle des bases de données : au lieu d’une unique base gérée par un unique propriétaire qui partage les données, dans le réseau blockchain les participants au réseau ont leur propre copie de la base.

Le mécanisme de blockchain peut assurer un accord unanime sur le contenu correct des données, assurer la conformité des copies des données convenues et assurer l’absence ultérieure de tricherie par altération des données.

Cela permet à nombre de personnes ou d’entités — collaborateurs ou concurrents — de convenir d’un consensus sur des informations et d’enregistrer de manière immuable ce consensus de la vérité. Pour cette raison, la blockchain a été décrite comme une « infrastructure de confiance »

Que sont les NFT ?

NFT signifie Non-Fungible Token en anglais et token (ou jeton) non-fongible en français.

En économie, un actif fongible est quelque chose avec des unités qui peuvent être facilement échangées – comme l’argent.

Avec de l’argent, vous pouvez échanger un billet de 10 euros contre deux billets de 5 euros et il aura la même valeur.

Cependant, si quelque chose n’est pas fongible, c’est impossible – cela signifie qu’il a des propriétés uniques et qu’il ne peut donc pas être échangé avec autre chose.

Il peut s’agir d’une maison ou d’un tableau comme la Joconde, unique en son genre. Ou alors comme une carte à collectionner que vous échanger pour une autre.

Vous pouvez prendre une photo de la peinture ou acheter une impression, mais il n’y aura jamais qu’une seule peinture originale.

Les NFT sont des actifs « uniques en leur genre » dans le monde numérique qui peuvent être achetés et vendus comme n’importe quel autre bien, mais qui n’ont aucune forme tangible propre.

Les jetons numériques peuvent être considérés comme des certificats de propriété pour des actifs virtuels ou physiques.

Comment fonctionnent les NFT?

Les œuvres d’art traditionnelles telles que les peintures sont précieuses précisément parce qu’elles sont uniques en leur genre. Mais les fichiers numériques peuvent être dupliqués facilement et à l’infini.

Avec les NFT, les œuvres d’art peuvent être « tokenisées » pour créer un certificat de propriété numérique qui peut être acheté et vendu.

Comme pour la crypto-monnaie, un enregistrement de qui possède ce qui est stocké sur un grand livre partagé connu sous le nom de blockchain.

Les enregistrements ne peuvent pas être falsifiés car le grand livre est tenu par des milliers d’ordinateurs à travers le monde.

Les NFT peuvent également contenir des contrats intelligents qui peuvent donner à l’artiste, par exemple, une part de toute vente future du jeton.

À un niveau très élevé, la plupart des NFT font partie de la blockchain Ethereum.

Ethereum est une crypto-monnaie, comme le bitcoin ou le dogecoin, mais sa blockchain prend également en charge ces NFT, qui stockent des informations supplémentaires qui les font fonctionner différemment, par exemple, d’une pièce ETH.

Il convient de noter que d’autres blockchains peuvent implémenter leurs propres versions de NFT.

Où consulter et acheter des NFT?

Il existe une foule de sites dédiés aux NFT. Les plus connus sont OpenSea, Rarible, Nifty Gateway ou Coinbase NFT

Qu’est-ce qui empêche les gens de copier l’art numérique ?

Rien. Des millions de personnes ont vu l’art de Beeple qui s’est vendu pour 69 millions de dollars et l’image a été copiée et partagée d’innombrables fois.

Dans de nombreux cas, l’artiste conserve même la propriété du droit d’auteur de son travail, afin qu’il puisse continuer à produire et à vendre des copies.

Mais l’acheteur du NFT possède un « jeton » qui prouve qu’il possède l’œuvre « originale ».

Certaines personnes comparent cela à l’achat d’un tirage dédicacé.

Retirer les DRM d'un ebook acheté sur Amazon, Kindle, Calibre, DRM

Retirer les DRM d’un ebook acheté sur Amazon

J’ai récemment acheté sur Amazon un ebook qui, fait tout à fait incroyable, était totalement indisponible sur internet.

Commande en deux clics et Amazon offre la possibilité de télécharger le fichier sur l’ordinateur ou de l’envoyer directement sur ma Kindle. Comme je souhaite en utiliser un extrait pour mes élèves de secondes, je choisis le téléchargement direct.

Le fichier est au format propriétaire AZW3 et, comme pressenti, il est impossible de le lire sur l’ordinateur car il est associé à l’aide de DRM au numéro de série de la Kindle.

Voici un tutoriel qui vous montre comment retirer les DRM de vos ebooks achetés sur Amazon à l’aide de Calibre et de l’extension DeDRM.

Installation de calibre

Pour la gestion, la conversion et le transferts des ebooks sur mes liseuses, j’utilise exclusivement calibre, qui est gratuit et multi-plateformes.

Installez calibre ou mettez-le à jour.

Téléchargement de DeDRM

Nous allons avoir besoin d’un plugin pour calibre qui s’appelle DeDRM.

Téléchargez la dernière version puis dézippez le fichier. Vous obtenez un répertoire avec plusieurs fichiers zip.

Installation du plugin DeDRM dans calibre

Nous allons maintenant procéder à l’installation du plugin DeDRM dans calibre.

Ajout de DeDRM dans calibre

Ouvrez calibre puis naviguez dans le menu calibre → Preferences → Avancé → Extensions (ou calibre → Preferences → Advanced → Plugins si vous avez la version en anglais):

calibre preferences
Allez dans le menu Extensions

Lire la suite