ubuntu pro free

Ubuntu Pro : des mises à jour pour 10 ans

Canonical change son offre Ubuntu Pro. Désormais, tout le monde peut profiter gratuitement du support étendu dans la limite de 5 machines.

La distribution Linux Ubuntu est maintenue et développée par l’entreprise Canonical. La distribution en elle-même est disponible gratuitement, mais en parallèle Canonical propose des services payants, notamment Ubuntu Pro, un abonnement qui permet d’avoir une maintenance étendue pour la sécurité et la conformité. En temps normal, Ubuntu Pro est facturé 25 dollars par an et par machine, ainsi que 500 dollars par an et par serveur.

Canonical fait évoluer son offre Ubuntu Pro, ce qui permet aux utilisateurs d’en bénéficier gratuitement dans la limite de 5 machines, que ce soit des ordinateurs ou des serveurs, et que ce soit pour un usage personnel ou commercial.

Ubuntu Pro permet d’avoir des correctifs de sécurité plus rapidement lorsqu’une faille de sécurité est découverte, notamment pour avoir une meilleure protection. Ceci s’applique aux failles critiques, élevées ou moyennes, avec un niveau de réactivité qui peut varier. Des milliers d’applications sont prises en charge dans le cadre du programme Ubuntu Pro : Ansible, Apache Tomcat, Apache Zookeeper, Docker, Drupal, Nagios, Node.js, phpMyAdmin, Puppet, PowerDNS, Python 2, Redis, Rust, WordPress, etc.

Support à long terme de niveau « entreprise »

La proposition s’applique uniquement aux versions avec support à long terme (LTS) du système d’exploitation basé sur le noyau GNU/Linux. Et ce à partir de Ubuntu LTS 16.04.

Il s’agit de versions de niveau « entreprise » de l’OS. Les LTS sont aussi les plus utilisées par l’écosystème et représentent 95% des déploiements, selon Canonical.

Les utilisateurs peuvent obtenir leur abonnement gratuit à Ubuntu Pro sur la page dédiée au programme. Ubuntu One étant le compte unique dont l’utilisateur a besoin pour en bénéficier et se connecter à l’ensemble des services et sites liés à l’OS.

Lorsque l’on connecte les machines à Ubuntu Pro, elles bénéficient donc d’une couverture de maintenance de sécurité étendue, soit 10 ans au total.

Aussi, l’offre gratuite inclut le service Ubuntu Livepatch, celui-ci permet d’installer des mises à jour critiques du noyau sans redémarrer la machine.

Pour les serveurs, lorsque le système hôte physique exécute Ubuntu, l’ensemble des machines virtuelles Ubuntu sur ce serveur sont couvertes. Ubuntu Pro s’étend également à Google Cloud et AWS.

Configurez Ubuntu Pro sur votre serveur

Avec autant d’avantages, il ne nous reste plus qu’à configurer Ubuntu Pro sur le serveur.

Si votre serveur tourne sous Ubuntu Server, le paquet pro est normalement déjà installé. Vous pouvez vérifier cela avec la commande:

pro --version

Résultat de la commande:

27.11.2~22.04.1Code language: CSS (css)

La version minimale que vous devez posséder est la 27.11.2.

Lire la suite

PHP8

WordPress : tester la compatibilité avec PHP 8

Aujourd’hui, nous allons tester la compatibilité avec PHP 8 de tous les sites WordPress du serveur, en ligne de commande et de manière automatisée.

Fin du support pour PHP 7.4 pour novembre 2022

Le cycle de vie de PHP 7.4 est atteint et il n’y aura plus de mises à jour ni de support à la fin du mois de novembre 2022. Cela signifie qu’il est désormais temps de passer sous PHP 8 pour bénéficier des dernières améliorations techniques de PHP et des mises à jour de sécurité.

Et mieux vaut s’y prendre un peu plus tôt, notamment si vous possédez une boutique WooCommerce pour ne pas être pris au dépourvu en pleine période de fêtes (Black Friday, Noël…).

Tester votre code avec php-parallel-lint

Nous allons créer un nouveau projet composer avec php-parallel-lint qui se chargera de scanner notre code et de remonter toutes les incompatibilités, fonctions obsolètes ou problématiques susceptibles de donner des avertissements ou des erreurs lors du basculement vers PHP 8.

Commençons par installer php-parallel-lint:

composer create-project php-parallel-lint/php-parallel-lint php-parallel-lint --no-dev

# ou avec un user :
# sudo su -l www-data -s /bin/bash -c "composer create-project php-parallel-lint/php-parallel-lint php-parallel-lint --no-dev"Code language: PHP (php)

Résultat de la commande:

Creating a "php-parallel-lint/php-parallel-lint" project at "./php-parallel-lint"
Installing php-parallel-lint/php-parallel-lint (v1.3.2)
  - Installing php-parallel-lint/php-parallel-lint (v1.3.2): Extracting archive
Created project in /Users/matt/Downloads/project-ACTAGIS-php8-202208/php-parallel-lint
Loading composer repositories with package information
Updating dependencies
Lock file operations: 4 installs, 0 updates, 0 removals
  - Locking nette/tester (v2.4.2)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking squizlabs/php_codesniffer (3.7.1)
Writing lock file
Installing dependencies from lock file
Nothing to install, update or remove
2 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload filesCode language: JavaScript (javascript)

Installons maintenant l’outil qui permet de coloriser le code dans notre console:

composer require --dev php-parallel-lint/php-console-highlighterCode language: JavaScript (javascript)

Résultat:

Info from https://repo.packagist.org: #StandWithUkraine
Using version ^1.0 for php-parallel-lint/php-console-highlighter
./composer.json has been created
Running composer update php-parallel-lint/php-console-highlighter
Loading composer repositories with package information
Updating dependencies
Lock file operations: 2 installs, 0 updates, 0 removals
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
  - Downloading php-parallel-lint/php-console-color (v1.0.1)
  - Downloading php-parallel-lint/php-console-highlighter (v1.0.0)
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
Generating autoload filesCode language: JavaScript (javascript)

Scanner le code avec php-parallel-lint

Voici la syntaxe pour scanner votre code:

 ./php-parallel-lint/parallel-lint FOLDER_TO_SCAN -p PHP_VERSION

Lire la suite

PHP Composer Banner

PHP : installer Composer sous Ubuntu Server

Voici comment installer Composer, le gestionnaire de paquets PHP qui va grandement vous simplifier la vie en installant toutes les dépendances dont vous avez besoin en une seule commande, sous Ubuntu Server.

Composer est installé sur ma machine mais j’ai besoin en ce moment de vérifier si le code des sites hébergés par le serveur est compatible avec PHP 8. Je peux tout rapatrier sur ma machine et tester tout cela localement mais cela me semble quand même beaucoup plus simple de le faire depuis le serveur, sans transfert de fichiers.

Composer est un outil populaire de gestion des dépendances pour PHP, créé principalement pour faciliter l’installation et les mises à jour des dépendances des projets. Il vérifiera de quels autres paquets un projet spécifique dépend et les installera pour vous en utilisant les versions appropriées selon les exigences du projet. Composer est également couramment utilisé pour lancer de nouveaux projets basés sur des cadres PHP populaires tels que Symfony et Laravel.

Paquets pré-requis

On commence par vérifier que tout est à jour:

apt update && apt upgrade

Ensuite, on vérifie que les paquets pré-requis sont bien installés:

apt install curl unzip php-cli

Installer composer sur le serveur

On télécharge le fichier d’installation, soit avec php, soit avec curl :

# avec php 

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 

# ou alors avec curl

curl -sS https://getcomposer.org/installer -o composer-setup.phpCode language: PHP (php)

On installe ensuite composer très simplement avec PHP. On installe :

php composer-setup.php --install-dir=/usr/local/bin --filename=composerCode language: JavaScript (javascript)

Voici le résultat de la commande:

All settings correct for using Composer
Downloading...

Composer (version 2.4.1) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composerCode language: JavaScript (javascript)

Cela l’installe sous /usr/local/bin/composer de manière globale.

Mettre à jour composer

Pour mettre à jour composer, il suffit d’un simple:

composer update

Et voilà, composerest maintenant installé sur le serveur. Cela nous simplifiera grandement le travail dans quelques jours. Stay tuned!

votre macbook surchauffe

Régler le problème de surchauffe d’un MacBook

Depuis la mise à jour vers MacOS Monterey, mon MacBook Pro est en surchauffe permanente, avec le ventilateur à fond même en simple surf.

Si vous êtes confronté au même problème, voici comment j’ai réussi à retrouver un environnement de travail avec un volume de sonore acceptable (c’est-à-dire silencieux).

Solution 1 : vérifier les options de la batterie

C’est la solution qui a réglé mon problème mais j’ai mis du temps à la trouver car elle n’est indiquée nulle part sur le site du support technique d’Apple.

Ouvrez Préférences Système et cliquez sur l’icône Batterie:

macos preferences systeme batterie
Préférences Système ⟶ Batterie

Dans Batterie ⟶ Batterie, vous devez activer l’option Mode Économie d’énergie:

Dans l'onglet Batterie, activez l'option Mode économie d'énergie
Dans l’onglet Batterie, activez l’option Mode économie d’énergie

Ensuite, passez à l’onglet Adaptateur secteur et activez également l’option Mode économie d’énergie :

macos batterie secteur economie energie
Dans l’onglet Adapteur secteur, activez l’option Mode économie d’énergie

Cela a définitivement résolu mon problème et mon MacBook est redevenu silencieux. Je peux également l’avoir sur les genoux sans me brûler, ce qui est un avantage certain pour un laptop.

Lire la suite

WHM logo

WHM : obtenir l’accès root pour SSH

Je suis intervenu récemment sur un site qui tourne sur un serveur avec WHM (Cpanel) et j’ai eu besoin d’avoir un accès root en SSH.

Mais problème: l’hébergeur n’autorise pas l’accès root. Il faut signer une décharge de manière manuscrite qui exempte l’hébergeur de toute faute en cas de souci et met fin au support technique… ce qui n’est certainement pas ce que l’on souhaite, ni ce que notre client désire!

En cherchant un peu, j’ai trouvé un moyen très simple de circonvenir à ce problème.

Vérification de l’accès SSH de notre utilisateur

Connectez-vous à WHM.

Ensuite, allez dans Account Functions → Manage Shell Access pour vérifier que la connexion SSH est bien activée pour notre utilisateur.

Choisissez l’option Normal Shell :

WHM: configurer l'accès ssh de l'utilisateur
WHM: configurer l’accès ssh de l’utilisateur

Ajouter l’utilisateur au Wheel Group

Nous allons maintenant ajouter notre utilisateur au Wheel Group. C’est cette étape qui nous permettra d’obtenir l’accès root en SSH.

Lire la suite

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 à jour le serveur et client mysql , 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.Code language: CSS (css)

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.debCode language: JavaScript (javascript)

Et on installe le paquet :

dpkg -i mysql-apt-config_0.8.22-1_all.debCode language: CSS (css)

On relance donc la mise à jour :

apt update && apt upgrade

Les nouvelles versions des paquets peuvent désormais être installées :

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.
Code language: JavaScript (javascript)

J’ai également écrit un script bash qui automatise tout cela : Mettre à jour mysql-client-server-apt-config

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.Code language: JavaScript (javascript)

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: 6Code language: JavaScript (javascript)

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`).Code language: PHP (php)

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_64Code language: CSS (css)

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:	focalCode language: CSS (css)

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 language: HTML, XML (xml)

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;
}Code language: CSS (css)

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	deviceCode language: PHP (php)

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;  
}  Code language: JavaScript (javascript)

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;  
  }Code language: JavaScript (javascript)

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;  
  }  
}  Code language: JavaScript (javascript)

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

<input type="button" onclick='SelectAll()' value="Select All"/>  Code language: HTML, XML (xml)

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;  
  }  
}      Code language: JavaScript (javascript)

Et voici le code HTML du bouton:

<input type="button" onclick='deSelectAll()' value="Deselect All"/>  Code language: HTML, XML (xml)

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!