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 pour ne pas avoir à mettre à jour votre âge manuellement dans tous les salons de présentation du monde !
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
.