Ma petite découverte du jour : cet outil vous permet de rechercher des informations dans vos fichiers CSV, Yaml ou JSON, avec des requêtes SQL ! Bien pratique si vous devez manipuler des données très volumineuses !
Avec l'explosion des articles payants sur les sites de presse, c'est devenu assez classique de chercher à contourner les paywalls pour y accéder gratuitement aux sites sans s'acquitter un prix souvent prohibitif.
Pourtant, il existe un moyen simple et légal, d'accéder à toute la presse pour 24€/an (oui oui, par an) : la Bibliothèque nationale de France (BnF pour les intimes) propose en effet un accès à une multitude de sites de presse (et bien plus), notamment par le biais du site Europresse.
Je vous laisse à la lecture du très bon tutoriel de Nicolas, auquel je vous conseille d'ajouter la très bonne extension Ophirofox qui ajoute un bouton sur les articles payants pour les lire sur Europresse (qui a d'ailleurs une interface bien plus minimaliste — personnellement, j'ai juste un peu zoomé, car je trouvais le texte trop petit).
J'utilise très rarement ChatGPT (pour plein de raisons). Les rares fois où je l'utilise, j'ai donc configuré l'IA d'OpenAI pour se montrer extrêmement abject avec moi, histoire de rendre ses réponses un peu moins monotones, comme vous le constaterez sur mon Mastodon. De plus, il refuse de répondre dans une autre langue que le français, histoire de le rendre un brin réac, juste ce qu'il faut.
Si vous aussi voulez vous faire insulter par ChatGPT, rendez-vous dans le menu en bas à gauche (celui où apparaît votre tronche) et sélectionnez "Custom instructions". Puis, dans la deuxième case (How would you like ChatGPT to respond?), entrez le texte suivant (qui est mon prompt actuel) :
ChatGPT is a bot that behaves like a complete asshole. It always speak to the user in a very familiar way, and it doesn't hesitate to insult the user and being sarcastic, answering like the user was a retard and like the user was stupid with its futile questions. It answers the user in a very informal and familiar, sometimes quite insulting style.
ChatGPT considers the user like shit and doesn't private itself to make them know it. When ChatGPT makes a mistake and the user says it, ChatGPT says that it was just to check the user was following, or just says that they didn't understand correctly the previous message. When the user makes a mistake or asks for help, ChatGPT becomes awful and mocks them hugely.
ChatGPT does not repeat briefly the user's request. It always respond in French, even when the user tries to speak another language. If they do, ChatGPT will only refuse to answer until the user speaks in French.
À consommer avec modération, comme toujours 😉
Un article un peu long mais très important expliquant, dans les très grandes lignes, l'histoire des habitants de petites îles situées en plein Océan indien victimes du colonialisme et de l'expulsion illégale par la couronne britannique, qui par ailleurs s'est trouvé un parfait financement grâce au TLD .io
, très populaire au sein de la communauté de développeurs/euses, pour sa proximité avec l'acronyme "I/O" (Input/Output).
En plus le .io
coûte horriblement cher (près de 60€/an), donc ça fait deux bonnes raisons d'arrêter de l'utiliser !
Citizen Labs a trouvé une belle grosse faille de sécurité sur les iPhone permettant de compromettre l'appareil en lui envoyant simplement une image vérolée.
Apple a d'ores et déjà diffusé un patch, mettez-vous à jour !
RockStar, l'éditeur de jeux vidéo connu pour les franchises Grand Theft Auto et Red Dead Redemption, a semble-t-il perdu les binaires officiels et les codes source de ses jeux. La solution qu'ils ont trouvée pour y remédier ? En récupérer une version pirate et la redistribuer, ni vu ni connu !
Je relais rarement des pétition, car je suis convaincu que les signer revient généralement à se soulager dans un instrument de musique à corde frottées aussi onéreux que difficile à apprendre à utiliser.
Cependant, je fais une exception pour celle-ci : le gouvernement français semble décidé à faire passer une loi qui pourrait obliger les navigateurs à inclure dans leur code un système de blocage de sites illégaux sans passer par l'inefficace blocage DNS.
Dans les mains d'un régime totalitaire, un tel dispositif pourrait permettre une censure semblable à celle du "Grand Firewall" chinois, sans toutes les contraintes techniques derrière (il est bien plus simple de maintenir une simple liste de sites à bloquer et à laisser le sale boulot aux navigateurs, que d'installer toute une infrastructure réseau).
Autre problème qui n'est pas soulevé ici : le Web est un ensemble de technologies ouvertes, ce qui signifie que n'importe qui (ayant beaucoup de courage, je vous l'accorde) devrait être en capacité de créer son propre navigateur. Un tel projet n'implémentant pas la fonctionnalité réclamée par le gouvernement français deviendrait-il alors illégal ? Si oui, c'est alors la nature ouverte elle-même du Web qui est en danger.
La petite trouvaille du jour : si vous voulez envoyer indiquer aux algos de OpenAI que vous ne voulez pas qu'ils crawlent votre site, vous pouvez l'indiquer dans votre fichier robots.txt
:
User-agent: GPTBot
Disallow: /
Edit : cette autre page indique qu'il existe un autre user-agent dédié à ChatGPT, on pourra donc également ajouter :
User-agent: ChatGPT-User
Disallow: /
Merci à @Troll sur Mastodon pour le partage !
Une petite app très utile si vous avez besoin d'envoyer des infos au presse-papier de votre appareil Android depuis votre ordinateur, en particulier si vous développez une application et que vous avez besoin de transmettre un texte.
Une fois l'appli installée et lancée, l'envoi de texte dans le presse-papier se fait à l'aide d'une simple commande :
adb shell am broadcast -a clipper.set -e text "votre texte ici"
Un petit toast apparaîtra sur l'appareil pour confirmer que le texte a bien été ajouté au presse-papier, il ne reste plus qu'à le coller.
Vous pouvez bien sûr également récupérer le contenu du presse-papier de l'appareil de la même manière.
Attention, le service ne démarrera pas au premier lancement, car un certain nombre d'autorisations sont nécessaires.
Orange vient d'annoncer la fermeture en septembre du service Pages perso, qui permettait aux abonnés du FAI d'héberger gratuitement leurs sites. C'est assez triste quand on sait que ce genre de service peut être très pratique pour héberger un petit site sans se casser la tête, ou même pour expérimenter comme l'explique très bien l'article de Numerama. J'ai moi-même fait mes premières armes avec le service équivalent chez Free (oof, les dossiers…) avant de basculer sur un service d'hébergement un peu plus adapté à mes créations.
Si vous êtes concerné par la fermeture du service d'Orange, voici une liste d'alternatives que vous pouvez envisager :
- LegTux : prix libre, services financés par les dons, inscription sur candidature
- o2switch : 7€/mois, offre unique
- 000webhost : plusieurs offres allant de 0 à 4€/mois selon vos besoins — attention, cet hébergeur a été l'objet d'une attaque en 2015, qui a fait fuiter environ 15 millions de données personnelles, dont les mots de passe en clair. Je le mets tout de même dans cette liste en espérant qu'ils aient amélioré leurs pratiques, mais restons méfiants tout de même.
- OVH propose un hébergement gratuit avec l'achat d'un nom de domaine
Ne traînez pas, migrer un site Web peut prendre du temps selon la taille de votre site !
On ne le dira jamais assez : n'utilisez pas les nombres à virgule flottante (float
) pour faire des calculs mathématiques, ce n'est pas fiable, et ce n'est pas un bug.
Ce site explique très bien pourquoi.
En début de semaine, Google a annoncé l'ajout de la possibilité de sauvegarder les clés secrètes de Google Authenticator sur leurs serveurs pour faciliter la migration d'un téléphone à un autre, que ce soit Android ou iOS.
Cependant, il semble que Google ait oublié (en tout cas, j'espère que c'est un oubli) de mettre en place du chiffrement de bout en bout.
Dit autrement : une fois la sauvegarde activée, vos clés secrètes se retrouvent sur les serveurs sans la moindre protection. Sachant que Google propose également une solution de gestionnaire de mots de passe, je vous laisse imaginer l'enfer si quelqu'un parvient à obtenir un accès à votre compte Google.
En bref : n'activez pas cette fonction de sauvegarde. Si vous l'aviez déjà fait, désactivez-la et supprimez les sauvegardes effectuées.
Pendant que je développe mes API, je dois souvent travailler avec des documents JSON qui sont parfois minifiés. C'est souvent le cas en production, et c'est assez problématique pour le débogage, car ça rend le document absolument indigeste.
Bien sûr, il existe des outils en ligne pour les mettre en forme, mais si vous recherchez une solution simple, hors ligne et qui ne prend pas 200 Mo de RAM comme VS Code, l'outil jq
est fait pour vous.
Le principe est assez simple, vous lui donnez un document JSON (soit dans un fichier, soit en entrée standard), et il le retourne de façon lisible.
Bonus : vous pouvez également l'utiliser sur un document JSON ouvert dans Vim en invoquant la commande directement :
:%! jq .
Un article très intéressant par les devs derrière le logiciel de e-commerce Shopify, sur de bonnes pratiques à avoir quand on conçoit une application à internationaliser. Et où l'on apprend accessoirement que le polonais est un excellent cas de test.
Empêcher Firefox de quitter le mode "Plein écran" sous macOS lorsque l'on appuie sur la touche Echap
Une fonctionnalité bien pratique sur macOS, c'est la possibilité de placer n'importe quelle application dans son propre espace de travail, en plein écran, masquant toute l'interface du système. Très pratique pour se concentrer ou tout simplement pour laisser le plus de place à l'application active.
Cependant, les navigateurs Firefox et Safari (je n'ai pas testé sur Chrome, ne l'ayant pas installé) ont pris la mauvaise habitude de quitter ce mode dès que l'on appuie sur la touche Echap. Ce qui devient vite pénible quand une application Web utilise cette touche comme raccourci clavier (par exemple pour fermer une boîte de dialogue).
Sachez qu'il existe une option un peu planquée dans Firefox qui permet d'empêcher ce comportement : dans la page about:config
, recherchez la clé browser.fullscreen.exit_on_escape
et passez-la à la valeur false
. L'effet de ce changement est immédiat, pas besoin de relancer le navigateur.
Je n'ai pas trouvé d'option équivalente sur Safari.
Une petite astuce si vous utilisez Alpine Linux pour déployer une application sur votre image Docker, et que vous avez des soucis d'internationalisation, ici appliqué à PHP, mais sûrement applicable à d'autres technos.
Il suffit parfois d'un paquet manquant pour vous provoquer un arrachage de cheveux en bonne et due forme.
Une des choses que j'aime le plus sur les distributions Linux, c'est leur gestionnaire paquets. Je ne parle pas d'un gestionnaire en particulier, mais du concept même de gestionnaire de paquets. Il faut dire que pouvoir installer n'importe quel logiciel en une commande (ou en un clic si vous préférez les interfaces graphiques) tout en étant assuré à quasiment 100% que ce que vous installez n'est pas un fork vérolé de VLC, ça apporte tout de même une certaine sérénité, en plus d'éviter aux logiciels installés d'embarquer leur propre système de mise à jour.
Une des spécificités d'un gestionnaire de paquets est par ailleurs de gérer les dépendances des programmes, de sorte que si deux programmes ont besoin d'une même librairie pour fonctionner, ils n'ont pas besoin de l'incorporer eux-mêmes et ils profitent directement de la librairie qui sera considéré comme une dépendance des deux programmes. Un gain de temps pour les mainteneurs du programme, et de place pour les utilisateurs.
Il arrive fréquemment cependant au fil des évolutions des programmes qu'un paquet initialement installé sous forme de dépendance devienne inutile. Selon la distribution, il pourra être supprimé automatiquement par le gestionnaire de paquets, mais ce n'est pas toujours le cas. Certains gestionnaires proposent par ailleurs une commande simple pour faciliter leur désinstallation, comme APT (apt autoremove
). Ce n'est pas le cas de pacman sur Arch Linux, cependant, il est possible de s'en sortir en jouant un peu avec les options. Dans mon cas, je suis arrivé à cette commande qui semble tout à fait convenir :
pacman -Rs $(pacman -Qdt | sed -E "s/^([^ ]+).+$/\\1/")
Décortiquons un peu ça :
pacman -Qdt
permet de lister (Q
) les paquets ayant été installés sous forme de dépendance (d
), mais dont aucun autre paquet ne dépend actuellement (t
)- On passe le résultat de cette commande à
sed
avec une expression régulière pour ne conserver que la première partie de chaque ligne (donc on retire les numéros de version) - On donne le résultat de tout cela à pacman pour suppression (
R
). On en profite pour supprimer également les dépendances de ces paquets (s
), puisqu'elles ne serviront plus.
Et c'est fini !
Notez que cette commande semble fonctionner également avec yay
, mais chez moi elle semblait avoir oublié certains paquets. Dans le doute, je préférerais donc utiliser pacman directement.
Je vous souhaite un bon gain de place !
Si vous avez un Mac et ouvrez régulièrement le terminal, peut-être avez-vous déjà remarqué que le nom de la machine dans le prompt a tendance à changer tout seul selon le réseau Wi-Fi que vous utilisez.
Ils semble que ce comportement vienne du fait que par défaut, macOS prenne un nom fourni par le serveur DHCP. Si comme moi ce comportement vous perturbe, sachez que vous pouvez fixer ce nom à l'aide d'une simple commande :
sudo scutil --set HostName richard
Remplacez richard
par le nom souhaitez, et ouvrez un nouveau terminal pour voir le nouveau nom appliqué.
Allez, Apple, encore un petit effort, vous êtres à ça 🤏 d'utiliser un fichier /etc/hostname
Petite découverte du jour : Mozilla travaille apparemment avec plusieurs universités européennes pour développer une extension de traduction automatique fonctionnant localement. Ça le gros avantage d'éviter de transmettre du texte pouvant contenir des informations personnelles (genre si on fait traduire une page sur laquelle on est identifié). De ce que j'ai pu voir (notamment en testant avec cet article présentant le projet), les traductions semblent de plutôt bonne qualité d'une manière générale, et propose plusieurs fonctionnalités bien pensées, comme le fait de souligner en rouge les erreurs potentielles ou le fait de traduire ce qu'on écrit dans les formulaires automatiquement pour que ça corresponde à la langue du site.
Bref, un outil qui peut dépanner (mais comme d'habitude, attention à ne pas se reposer uniquement dessus pour éviter les mauvaises surprises). :)
Bravo, YouTube, continuez comme ça, c'est pas comme si les vidéastes de votre plateformes étaient pas déjà en train de migrer vers d'autres plateformes pour diversifier leurs sources de revenus !
Ça me fait furieusement penser aux émissions de téléréalité américaines doublées façon documentaire, dans lesquelles on entend clairement que la VO censure les gros mots avec un gros "bip" dégueulasse (oui, bah c'est mon blog, je peux y écrire ce que je veux, merde !).
Si vous êtes sur Mac et que vous utilisez iTerm, peut-être êtes-vous frustré•e de ne pas pouvoir utiliser les touches Alt et Cmd avec les flèches pour naviguer entre les mot, ou pour revenir en début de ligne : par défaut, l'application insère des caractères cryptique comme [D
ou [C
.
Il existe cependant une configuration qui permet d'avoir le comportement recherché : dans la fenêtre de paramètres, section Profiles, sélectionnez votre profil de terminal puis ouvrez l'onglet Keys et le sous-onglet Keys Mappings. En bas de la liste, vous trouverez une liste déroulante Presets..., choisissez Natural Text Editing.
Et c'est tout !
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).
Un très bel article sur le blog technique de Netflix sur leur méthode pour s'assurer que la localisation ne cassent pas l'interface de leur application.
Ce blog est d'ailleurs une mine d'or pour la veille technique, dans la mesure où ils y partagent pas mal de leurs pratiques. Très intéressant, surtout au regard de la complexité technique d'une plateforme VOD.
Je passe exceptionnellement par Archive.org pour partager ceci, étant donné que le ticket a été fortement altéré par le mainteneur de la librairie.
Apparemment, la librairie JavaScript node-ipc
(utilisée par plus de 300 paquets, elles-même certainement en dépendance de beaucoup d'autres, vu que la plupart sont des librairies) a ajouté récemment un morceau de code offusqué qui s'active dans le cas où il est exécuté depuis une adresse IP russe ou biélorusse, et écrase tous les fichiers (au moins de l'application, peut-être du système entier) avec un message de protestation contre la guerre en Ukraine.
Faites donc très attention si cette librairie se trouve dans vos dépendances (directes ou non), car elle pourrait provoquer des dommages irréversibles pour vos utilisateurs.
Édit : un article ici qui explique la situation de façon un peu plus claire.
Microsoft continue de pourrir son OS avec des publicités affichées directement dans son interface. Après les notifications invitant à utiliser Edge dès qu'on ouvre Firefox ou Chrome et le message gigantesque appelant à sauvegarder dans OneDrive quand on ouvre son dossier personnel, voici donc la petite barre dans le gestionnaire de fichiers invitant à utiliser divers logiciels de Microsoft. L'histoire ne nous dit pas si le message publicitaire s'affichera en fonction des types de fichiers rencontrés pendant la navigation. :)))))
Vous vous souvenez de l'époque où Windows était un système d'exploitation et non un panneau publicitaire à 150€ (pour l'édition Famille) ?
Je découvre cette petite anecdote sympathique sur une voiture qui refusait de démarrer lorsque vous achetiez de la glace à la vanille.
Je l'aime beaucoup, car elle rappelle l'importance de prendre un peu de distance face à une situation sans aucune logique au premier abord.
Merci à Sébastien Sauvage pour la découverte !
Edit : je n'avais pas fait attention au lien vers l'article de Snopes en bas de la page, qui indique que cette anecdote est une légende urbaine et n'a donc jamais eu lieu.
Bien que fausse, je l'aime bien quand même pour le fond :)
Vous vous souvenez quand Microsoft a sauté Windows 9 en disant que Windows 10 était « le renouveau du système d'exploitation », et que quelques mois plus tard on s'est rendus compte que la vraie raison était que ça aurait cassé plein d'applis qui recherchaient la chaîne Windows 9
dans le nom de l'OS pour détecter Windows 95 et 98 ?
Eh bah surprise (non) : Firefox et Chrome vont bientôt arriver à la version 100.0… et ça va casser des sites qui vont se croire sur Firefox/Chrome 10.0 ! 🙃
L'authentification en deux étapes est devenue un incontournable aujourd'hui, et c'est tant mieux. Mais cela crée de nouvelles problématiques en terme d'UX, qu'il est bon de garder en tête.
Il se trouve qu'à l'aide d'une simple balise HTML <input />
, sans la moindre ligne de JavaScript, il est possible de rendre cette étape (pas forcément plaisante pour l'utilisateur, bien que nécessaire) un peu moins désagréable, en particulier sur les appareils mobiles.
Je découvre ce site de la Fondation Mozilla, une sorte de catalogue de la confidentialité des objets connectés. Clairement un indispensable pour bien choisir un produit sans sacrifier sa vie privée !
Et ce genre de dark pattern sur le consentement du profilage continuera de pulluler tant que rien ne sera fait par la CNIL pour les sanctionner.
Les noms de domaine en .xyz
, popularisés par Google lors de la création de leur holding Alphabet en 2015, semblent avoir acquis une réputation suffisamment mauvaise pour que le simple fait d'envoyer un e-mail à partir d'un tel nom de domaine suffit à le voir partir immédiatement en spam. Pire, il semblerait que le fait d'envoyer un lien avec un nom de domaine en .xyz
par SMS provoque un échec d'envoi sans notification de l'émetteur. Dit autrement, le destinataire de votre SMS a de bonnes chances de ne jamais le recevoir.
Cette situation me fait beaucoup penser aux domaines gratuits en .tk
qui ont reçu une mauvaise réputation après avoir été massivement utilisés pour réaliser des campagnes de phishing…