Dans la même veine que l'outil partagé dans la note précédente, il y a une autre chose que je ne sais jamais écrire du premier coup, c'est une ligne de configuration pour Cron.
Cet interpréteur en ligne est excellent pour écrire sa ligne de Crontab sans s'y perdre !
Quand je développe, il y a des choses que je ne sais jamais faire du premier coup. Parmi elles, il y a le formatage des dates et heures sous forme de chaîne de caractères. %h
ou %H
pour les heures ? %m
, c'est pour inscrire le mois ou les minutes ?
Visiblement, je ne suis pas le seul à galérer, puisque quelqu'un a eu la bonne idée de créer ce petit outil pour tester ses chaînes de formatage !
Une info sur laquelle je suis tombé par hasard en rallumant ma 3DS et en ouvrant l'eShop : si vous aviez acheté des jeux dématérialisés sur la 3DS et/ou la Wii U, je vous conseille fortement de les télécharger au plus vite, car le service ne va pas tarder à être arrêté.
Pour voir les jeux que vous pouvez re-télécharger, vous pouvez ouvrir l'eShop, vous rendre dans le menu, appuyer sur Paramètres/Autres et sélectionner Logiciels retéléchargeables dans l'historique. Vous aurez alors la liste des jeux qui ont été téléchargés un jour par votre console (achetés, démos ou téléchargements automatiques), il ne vous restera plus qu'à appuyer sur le bouton Retélécharger des jeux que vous voulez garder.
Ceci est exactement la raison pour laquelle il vaut mieux acheter ses jeux sur cartouche. De toute façon, Nintendo ne fait aucune réduction sur le format dématérialisé, donc il n'y a vraiment aucune raison de choisir ce format (à moins que le format physique n'existe pas, bien sûr).
Mais plusieurs de ses caractéristiques ont de quoi inquiéter. Notamment la présence d'un kill switch, sorte de bouton d'arrêt d'urgence qui permet à un acteur central d'isoler une adresse IP du reste du réseau. Celle-ci ne pourra alors plus envoyer ou recevoir de données. D'autres inquiétudes surgissent autour du fait que les adresses mais aussi les paquets envoyés et reçus seraient reliés à l'identité du propriétaire de l'ordinateur ou du titulaire de la connexion.
En clair, si vous dites ou faites un truc qui ne plait pas aux autorités, ce nouveau protocole leur permettra :
- de vous retrouver en lisant simplement les métadonnées des paquets qui transitent (actuellement, il faut demander au FAI de collaborer)
- de vous isoler totalement
Espérons que ce protocole ne soit jamais adopté.
Et n'oublions jamais : ce n'est pas parce que nous sommes actuellement dans un État de droit, que nous le serons toujours dans 5 ans. Un régime autoritaire peut toujours apparaître si on n'y prête pas attention.
Ça fait environ un mois maintenant que je possède la console de Valve, le Steam Deck, et c'est un peu devenu mon support de prédilection pour le jeu vidéo du fait de son côté très "hackable", Valve la promouvant comme un telle avec une distribution dérivée de Arch Linux et un mode Bureau accessible très facilement. Du coup, il est assez logique de vouloir accéder à des jeux qui ne sont pas vendues sur la plateforme Steam.
C'est dans cette logique que Microsoft nous propose ici une solution pour jouer aux jeux de son catalogue Xbox Cloud Gaming grâce à un abonnement GamePass Ultimate. Le processus n'est pas très compliqué et consiste en gros à installer le navigateur Edge, l'ajouter à la bibliothèque Steam et modifier ses paramètres de lancement pour ouvrir le navigateur en mode plein écran (ou kiosk, je sais pas pourquoi tous les navigateurs utilisent ce terme au lieu de fullscreen 🤷♂️) sur la page d'accueil du service.
Attention, plusieurs points importants à prendre en compte ici :
- l'utilisation du service cloud de Xbox nécessite un abonnement GamePass Ultimate à 12€/mois
- le jeu vidéo via le cloud nécessite une connexion Internet robuste
- il y a une coquille dans le tutoriel fourni par Microsoft : à l'étape 12b, pensez à remplacer l'URL
https://www.xbox.com/play
parhttps://www.xbox.com/fr_FR/play
(ici pour la France ; adaptez selon votre pays), autrement vous aurez le service américain, et vous ne pourrez rien faire - dans les paramètres du contrôleur, la configuration par défaut Manette avec contrôle caméra semble suffire, cependant certaines parties de l'interface (notamment celle pour s'authentifier à son compte Microsoft) n'est utilisable qu'avec une souris, je recommande donc de configurer le trackpad droit en tant que souris (n'oubliez pas de configurer le clic)
- le tutoriel indique d’ajouter l’argument
--window-size=1024,640
aux paramètres de lancement de Edge. Il s’agit de la résolution de l’écran de la console. Si vous avez prévu de jouer sur une télévision, vous pouvez l’adapter à la résolution maximale supportée par celle-ci (par exemple1920,1080
pour du 1080p, ou4096,2160
pour de la 4K)
Une fonctionnalité un peu cachée et pourtant extrêmement classe et pratique dans Discord : il existe une petite syntaxe qui permet d'inscrire une date dans le format que vous voulez, un peu comme dans un programme :
<t:TIMESTAMP:FORMAT>
En remplaçant TIMESTAMP
par la date sous la forme d'un timestamp (c'est-à-dire le nombre de secondes depuis la date UNIX, le 1er janvier 1970 à minuit), et FORMAT
par un des caractères ci-dessous, vous obtenez l'affichage suivant :
Format | Résultat |
---|---|
R |
un affichage relatif, par exemple "il y a 3 semaines" ou "dans 2 heures" |
D |
la date seule dans la langue de l'application, par exemple "31 octobre 2022" |
T |
l'heure seule localisée avec la langue de l'application, par exemple "19:20:34" |
t |
comme T , mais sans les secondes, par exemple "19:20" |
F |
affichage complet de la date et de l'heure localisée avec la langue de l'application, par exemple "lundi 31 octobre 2022 19:20" |
Ainsi, si je veux obtenir la chaîne pour le 31 octobre à 20:20:34 (dont le timestamp UNIX est 1667240434
) au format relatif, je vais donc écrire :
Halloween commence officiellement <t:1667244034:R> !
D'autres formats sont proposés sur la doc de Discord destinée aux développeur·se·s. Attention, Discord prend le timestamp en heure locale.
Pratique par exemple si vous voulez communiquer une date à des personnes présentes sur plusieurs fuseaux horaires !
Un article extrêmement intéressante sur le format PostScript (qui sert notamment de base au format PDF), sur lequel je suis tombé après avoir tenté de générer un fichier PDF avec ImageMagick, donnant l'erreur (plutôt cryptique) suivante :
convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/421.
Il semble que ImageMagick ait désactivé par défaut tout traitement depuis et vers les formats PostScript et PDF, car PostScript est un langage de programmation contenant de multiples failles de sécurité qui rendent sa manipulation dangereuse dans les cas (fréquents) de traitement côté serveur dans le cadre des applications Web. Une sage décision, du coup. Apparemment, ces failles sont inhérentes au langage PostScript lui-même, ce qui rend ces failles impossible à corriger.
Si vous êtes sûr⋅e de ce que vous faites, vous pouvez cependant réactiver le traitement de ces fichiers en éditant le fichier /etc/ImageMagick-6/policy.xml
:
<policy domain="coder" rights="read|write" pattern="PDF,PS" />
Il est aussi possible de mettre uniquement read
ou write
dans l'attribut rights
.
Si vous utilisez un ordinateur portable sous Linux équipé d'une architecture Intel, soyez vigilants : la version 5.19.12 contient un bug important au niveau du pilote graphique qui peut endommager l'écran. Apparemment, le bug provoque des latences au niveau de l'alimentation de l'écran, ce qui engendre des flashes blancs.
Le problème ne concerne pas les architectures AMD et ARM.
Lorsque vous effectuez la mise à jour du pilote, assurez-vous qu'il ne s'agit pas de la 5.19.12. Un correctif (la 5.19.13) est d'ores et déjà disponible.
Si vous avez un doute sur la version que vous exécutez, la commande uname -r
est votre amie. :)
Une petite découverte sympa que j'ai faite aujourd'hui : il s'agit d'une implémentation de la partie serveur du protocole AirPlay, utilisé par les appareils d'Apple pour le partage audio et vidéo.
L'utilisation est on ne peut plus simple : vous ouvrez un terminal et vous invoquez la commande uxplay
, et c'est tout : votre ordinateur devient visible dans le menu AirPlay de vos appareils Apple et vous pouvez donc diffuser dessus votre musique ou votre vidéo !
Pour utiliser le programme, il vous faudra simplement vous assurer d'avoir lancé le démon Avahi qui implémente le protocole Bonjour (oui, c'est vraiment le nom du protocole)
Il semblerait qu'il y ait une vaste campagne de clonage de dépôts sur GitHub afin d'y injecter du code malveillant destiné à transmettre l'intégralité des variables d'environnement à l'attaquant. L'occasion de rappeler de toujours vérifier ce qu'on télécharge, en particulier quand c'est destiné à être exécuté.
Une très bonne nouvelle pour la vie privée sur le Web.
Notons également l'existence de l'extension Remove FBclid and UTM, avec laquelle cette fonctionnalité semble complémentaire.
Si vous êtes développeur⋅se, que vous utilisez Docker et Docker-Compose sur vos projets et que vous utilisez GNU/Linux, vous avez très certainement déjà eu des problèmes de permission : en effet, il n'est pas rare que Docker (exécuté avec son propre utilisateur) et votre utilisateur se marche dessus, empêchant soit l'application d'écrire dans ses propres répertoires, soit vous d'éditer les fichiers sources.
On peut être tenté de changer les permissions en 0777
, mais il y a une solution plus élégante.
À part l'étape 0, la marche à suivre est à réaliser pour chaque projet.
0. Configurer votre utilisateur
Tout d'abord, vérifiez à l'aide de la commande groups
que votre utilisateur se trouve bien dans le groupe docker
. Si ce n'est pas le cas, ajoutez le :
sudo usermod -aG docker $USER
Le groupe docker
est celui auquel appartient l'utilisateur avec lequel est exécuté le démon de Docker.
Puis fermez et rouvrez votre session. Vous pouvez vérifier à nouveau que vous vous situez bien dans le groupe.
Cette étape est un one-shot, vous n'avez plus à vous préoccuper.
1. Donner votre projet au bon utilisateur et au bon groupe
Dans un terminal, positionnez-vous à la racine de votre projet, puis modifiez l'utilisateur et le groupe auquel le projet appartient, de sorte qu'il appartienne bien à votre utilisateur ainsi que le groupe docker
:
sudo chown -R $USER:docker
2. Corriger les permissions du projet
Il ne reste plus qu'à s'assurer que vous et votre groupe possède bien les mêmes permissions de lecture et d'écriture :
# D'abord pour vous :
chmod -R u+r .
chmod -R u+w .
# Et aussi pour le groupe :
chmod -R g+r .
chmod -R g+w .
Et voilà !
C’est pas trop tôt.
C’est pas comme si ça faisait plus de 20 ans que la technologie existait et avait fait ses preuves dans de nombreux pays.
La Poste a apparemment décidé de faire l'exact contraire de la bonne pratique : supprimer la fonctionnalité permettant l'authentification en deux étapes via une application OTP (comme Google Authenticator). La raison :
La fonctionnalité de double authentification par l’application mobile […] pouvait générer des blocages (notamment lors d’un changement de téléphone).
Elle recommande désormais l'utilisation de l'authentification en deux étapes par l'envoi d'un code par SMS, comme on en voit encore partout et alors même que cette fonctionnalité est moins sécurisée, puisque non chiffré (là où l'OTP avait l'avantage d'être calculé par l'application, et donc ne nécessitait aucune communication).
Bon. À la personne à La Poste qui a pondu cette décision : sachez que l'argument du changement de téléphone peut tout aussi bien s'appliquer à l'authentification par SMS, dans la mesure où (fun fact) on peut aussi changer de numéro de mobile. Si si !
Ah et autre fun fact, la problématique soulevée, en fait, elle est déjà connue, et une solution assez élégante a été proposée : générer des clés de secours à usage unique.
Bref, plutôt que de supprimer le support de fonctionnalités de sécurité qui ont fait leurs preuves (d'autant plus qu'on parle d'un coffre-fort numérique…), et si vous faisiez de la pédagogie auprès de vos utilisateurs, histoire de leur donner un peu de bonne pratique et d'hygiène numérique ?
Mise à jour 19/05/2022 : le service Digiposte a répondu (très) succinctement via Twitter qu'un nouveau dispositif d'authentification en deux étapes sera proposé, sans donner plus de détail sur sa nature et sur sa date de disponibilité. Je reste tout de même assez étonné de la manœuvre qui consiste à affaiblir la sécurité d'une application avant même de proposer une meilleure solution…
NVIDIA semble d'être ENFIN décidé à libérer le code de ses pilotes sous licence MIT !
Il reste encore pas mal de boulot (le processus a à peine commencé), mais je ne pouvais pas m'empêcher de partager cette heureuse nouvelle en partageant cette très belle issue #1
!
Cette avancée devrait permettre à l'avenir une intégration bien plus propre et, surtout, plus poussée des cartes graphiques de NVIDIA sous GNU/Linux, sujet de discorde depuis bien longtemps.
— C'est qui Deuchnord ?
— C'est moi.Un début de discussion tout à fait normal chez Les-Tilleuls.coop
Hier soir, j'indiquais brièvement et en 280 caractères que ce site avait subi une indisponibilité dans certaines situations. Pour être plus précis, cela arrivait notamment quand on tentait de venir sur tech.deuchnord.fr
avec Safari et qu'on utilisait le réseau mobile d'Orange.
Autant vous dire que quand j'ai découvert ça, je ne comprenais pas tout. C'est avec l'aide d'un collègue que j'ai fini par trouver le coupable : la configuration du serveur Nginx !
Quand on installe Nginx pour la première fois sur son serveur, il crée un fichier par défaut qui ressemble à ceci :
server {
# ...
listen 80;
# ...
}
Tel quel, on pourrait comprendre qu'une fois chargé, Nginx écoutera sur le port 80 (port standard dédié au protocole HTTP à la base du Web), et puis c'est marre. Spoiler : non, c'est pas le cas.
Ou pour être plus précis, Nginx ouvre bien le port 80 pour écouter ce qu'il se passe dessus, mais il le fait sur l'adresse IPv4 uniquement.
Si votre serveur possède aussi une adresse IPv6, vous devrez aussi indiquer à Nginx d'ouvrir le port sur ce protocole, autrement, il n'écoutera pas dessus !
Pour faire cela, rien de plus simple, il suffit d'éditer votre fichier et d'ajouter la directive suivante dans la section server
:
listen [::]:80;
Notez bien les deux signes :
entre crochets, suivis d'un nouveau signe :
.
Une fois cette modification faite, rechargez la configuration (service nginx reload
sous Debian), et votre site sera désormais bien disponible sur les adresses IPv6 !
[Les trois géants de la tech] vont faire en sorte que leurs produits prennent en charge la norme de connexion sans mot de passe de la Fido Alliance (Fast IDentity Online) et du World Wide Web Consortium. Empreinte digitale, scan du visage, ou code PIN seront les nouveaux sésames universels pour déverrouiller votre appareil et retrouver vos données.
Je trouve cette nouvelle très inquiétante. N'ayant jamais fait confiance à la biométrie pour l'authentification (trop intrusif et moins sûr), j'espérais ne jamais voir les mots de passe disparaître pour de bon.
Sans compter que ça va laisser sur le carreau de nombreux utilisateurs qui ne possèdent pas l'équipement pour cela, et vont donc devoir se rabattre sur le code PIN (bien moins sécurisé qu'un mot de passe).
Où l'on apprend soudain que l'on ne peut pas compiler un programme écrit dans un langage A avec un compilateur conçu pour un langage B. 🤪
Le dépôt GitHub du projet httpie, un des projets les plus suivis de la plateforme GitHub, a récemment été passé en privé par son mainteneur à la suite d'une série d'erreurs de manipulation, ce qui a provoqué la perte de la totalité de ses 54 000 étoiles et de ses plus de mille suivis.
Le cas de ce projet est assez intéressant : il met en évidence un certain nombre d'incohérences sur la plateforme et de messages d'alerte peu clairs, qui mis bout à bout dégradent l'expérience utilisateur, et qui finissent par amener à de mauvaises manipulation.
Mais ce qui m'interpelle surtout, c'est le refus de GitHub de restaurer les étoiles et les suivis du dépôt, dont ils possèdent pourtant une sauvegarde qu'ils ont déjà utilisée par le passé pour un de leurs propres projets qui avait subi exactement le même sort. Je peux comprendre qu'ils refusent ce genre de chose sur des projets ayant peu d'étoiles, mais ce n'est pas vraiment le cas ici…
Il est très facile de créer de jolies failles de sécurité, et c'est souvent le résultat d'un oubli ou d'une paresse.
Ici un cas pratique avec la Caisse d'Épargne qui avait oublié de supprimer un sous-domaine qui pointait à une époque vers un serveur légitime, depuis supprimé et dont l'adresse IP a été récupéré par un particulier… qui aurait pu effectuer des attaques assez violentes auprès des clients de la banque (s'il en avait eu conscience et l'avait voulu).