J’ai récemment acquis le téléphone Aquaris X2, qui est la nouvelle version du Aquaris X, que j’avais avant et dont le retour est ici. Un des points « négatif » de ce nouveau téléphone, est que les boutons de navigation, les trois boutons en bas de l’écran, sont sur l’écran et non plus des boutons en dehors. C’est un problème parce que ces boutons empiètent sur l’écran et en réduisent l’affichage.

Les développeurs peuvent choisir de rendre leur application « compatible plein-écran », et dans ce cas là, la barre de navigation et la barre de menus sont masqués. Ceci est pratique pour les jeux.
Pour accéder à l’un de ces éléments et les ré-afficher, il suffit alors de glisser en haut ou en bas de l’écran et les éléments de l’interface reviennent.

Le plein écran n’est pas activé partout, mais il est possible de le faire avec ADB.

Il faut activer les options de développeur, activer le débogage USB, installer ADB sur votre ordi puis lancer une commande spécifique. Voyons tout ça (je traiterais le cas pour Linux Mint et Ubuntu). Sous Windows, c’est pareil sauf qu’il faut activer les drivers sous Windows.

Activer les options de développeurs

Si vous n’avez pas activé les options de dév, faites-le en allant dans les Paramètres > Système > À propos du téléphone. Trouvez la ligne « numéro de built » et tapez ~10 fois dessus. Vous verrez un popup qui affiche alors « félicitations, vous êtes un développeur » :

activer les options de développeurs android
Vous avez maintenant un nouveau menu dans les paramètres, appelé « options pour les développeurs ».

Activer le débogage USB

Dans les options de développeurs, faites attention à ce que vous touchez. Pour le moment, cherchez puis activez la ligne « débogage USB » :

activer le déboggage USB
Ceci va permettre à l’ordinateur d’envoyer des instructions au téléphone quand on va brancher les deux au moyen du câble USB. Les instructions sont envoyées au moyen du programme ADB (voir ci-dessous)

Installer ADB

Sur Ubuntu (ou Linux Mint), tapez simplement sudo apt install adb dans un terminal (on vous demandera votre mot de passe puis de valider l’installation). Si vous ne savez pas ce que vous faites, il s’agit simplement la version en ligne de commande pour installation un nouveau programme.

Une fois que ADB est installé, on peut l’utiliser.

Activer le plein écran

Branchez votre téléphone à votre ordinateur avec le câble USB.

Toujours dans le terminal, lancez ADB :

adb start-server

Normalement, un popup apparaît sur le téléphone qui demande de confirmer l’accès de votre PC au téléphone. Acceptez.

Ensuite, sur votre ordi, tapez ou copiez-collez une des trois commandes ci-dessous :

1. Pour masquer automatiquement la barre de navigation en bas (sans toucher à la barre de statut en haut) :

adb shell settings put global policy_control immersive.navigation=apps,-com.google.android.googlequicksearchbox

2. Pour masquer automatiquement la barre de statut en haut (sans toucher à la barre de navigation en bas) :

adb shell settings put global policy_control immersive.status=apps,-com.google.android.googlequicksearchbox

3. Pour masquer automatiquement les deux barres, de statut et de navigation :

adb shell settings put global policy_control immersive.full=apps,-com.google.android.googlequicksearchbox

Voilà les possibilités :

android en plein écran
De gauche à droite :

  • La version normale, où la barre du haut et du bas sont toujours visibles.
  • La version avec la barre de navigation masquée.
  • La version avec la barre de statut masquée.
  • La version avec les deux barres masquées.

Pour afficher la ou les barres masquées, glissez simplement le doigt en haut ou en bas pour les faire revenir :

android avec les menus en plein écran
Voilà, c’est tout.
Avec ça, vous pouvez profiter constamment de votre écran en entier.

Pour finir, si l’envie vous prend de revenir en arrière et de remettre tout ça comme c’est par défaut, tapez cette commande :

adb shell settings put global policy_control null*

Si vous avez terminé, n’oubliez pas de désactiver le débogage USB dans les paramètres. On peut le laisser, mais c’est bien plus sécurisé si on le désactive.

ÉDIT : voir le premier commentaire sous l’article.

Cette astuce montre comment savoir, en JS, si un visiteur est connecté à ses comptes sociaux. C’est tout bête, mais étonnamment ça marche à peu près partout.

Le principe

La plupart des sites ont une page de login :

https://exemple.com/login

Quand on accède à une autre page pour laquelle on doit être connecté, on est redirigé vers la page de login, dont l’URL mentionne alors l’URL ou le chemin qui avait été demandée :

https://exemple.com/login?redir=/page-demandée

L’astuce en JS, c’est de forger l’URL pour un site, en redirigeant sur une image. Typiquement, la favicon (présente sur tous les sites). Comme ça :

https://exemple.com/login?redir=/favicon.ico

On fait donc une requête AJAX et on regarde ce qui se passe :

  • si le fichier retourné est une image (l’icône), alors c’est qu’il y a une redirection, parce que l’utilisateur est connecté. Bingo.
  • autrement (si on ne reçoit pas une image), alors on est probablement sur la page de login (en HTML), car l’utilisateur n’est pas connecté.

En JS, ça veut dire que si on met l’URL forgée sur un img.src, alors :
– img.onload() fonctionne si l’utilisateur est connecté (img reçoit bien une image)
– img.error() est lancée si l’utilisation n’est pas connecté (img reçoit un document HTML).

On peut essayer, ça marche sur beaucoup de sites. Sur les liens suivants, si vous voyez l’icône, alors vous êtes connecté. Autrement, vous verrez la page de connexion du site.
Ce test peut très bien être effectué par n’importe quel site web sur tous les sites du monde. N’importe quel site web peut donc voir si vous êtes connecté ou non sur Twitter, Facebook, Amazon…

Essayer ici ?

ÉDIT : oui, le bouton "twitter" ne marche pas : ils semblent bloquer les requêtes comme ça. Tant mieux.
Si aucun compte n’est marqué "connecté" alors que vous l’êtes, souriez car c’est votre navigateur — ou une extension — qui vous protège.
Si le bouton ne fait rien du tout, c’est que vous bloquez les scripts sur mon site. C’est une bonne façon de se protéger aussi :).

Mais essayez dans un navigateur fraîchement installé, vous verrez, ça marche. Et c’est bien là le problème : la configuration par défaut des navigateurs laisse passer ce « problème ».

Vous pouvez tester ici, pour 5 sites :

    Le risque

    Ici je ne fais rien de méchant. Par ailleurs, aucune information n’est envoyée à mon site.

    Mais j’aurais pu.

    J’aurais également pu faire ça massivement, et voir quel pourcentage de mes visiteurs sont connectés à Twitter, ou à Facebook.

    Pire, si je vois que vous êtes connectés, alors il peut très bien lancer une requête sur la page de déconnexion et vous déconnecter :

    http://example.com/logout?

    Ce n’est pas dangereux, ça, mais c’est chiant.

    Ce qui peut être dangereux, c’est si j’accède à ce genre de page :

    • example.com/panier
    • example.com/paiement (pour ça, n’activez jamais le paiement en 1 clic sur les sites d’achat, je pense à Amazon par exemple).
    • example.com/mon_compte (là, ne mettez pas l’ID ou le nom d’utilisateur du compte dans l’URL de "mon compte" — même si une requête plus ciblée et plus complexe permettrait très bien d’extraire certaines informations)
    • example.com/changer_mon_mot_de_passe (pour ça, il faut toujours aussi exiger de taper l’ancien mdp pour en choisir un nouveau)
    • example.com/mot_de_passe_perdu (pour ça, validez en plusieurs étapes : demandez un code dans un l’email ou un truc en 2FA).
    • etc.

    Une solution ?

    Pour l’internaute

    Installez un bloqueur de requêtes, de scripts externes ou de publicité.

    µBlock Origin peut bloquer toutes les requêtes vers les sites tiers.
    L’extension kimetrak, elle, montre les requêtes qui sont faites.

    Sous Firefox, on peut aussi isoler chaque site en mettant à « true » la clé suivante dans about:config : about:config?filter=privacy.firstparty.isolate (attention, ça va vous déconnecter de tous les sites, mais après il suffit de se reco et c’est bon). Merci à Mart-e pour l’astuce !

    Pour les sites

    Ça me semble assez simple : quand on accède à la page de login, alors on demande systématiquement de se connecter.
    Peu importe si l’utilisateur est connecté ou pas, on exige une reconnexion. Seulement après la reconnexion on procède à la redirection.

    C’est ce que fait par exemple Amazon : cette astuce, même avec le bon lien (ici) ne marche pas, car Amazon demande le mot de passe qu’on soit connecté ou pas. C’est bien.
    Par contre, étrangement, c’est le cas pour Amazon.FR, mais pas pour Amazon.COM (lien de test), où l’astuce décrite ici fonctionne.

    Sources

    Ce « problème » n’est pas nouveau. Cet article, datant de 2012, en parle déjà : Detect if visitors are logged into Twitter, Facebook or Google+. Peu de sites semblent s’être bougés, pourtant.

    J’ai mentionné Amazon.FR ci-dessus. Flickr et Yahoo semblent également avoir corrigé le problème.
    La requête vers Twitter semble aussi poser problème quand elle est faite en AJAX. Pour les autres sites, je n’ai pas tout testé.

    Il existe aussi des scripts tout fait avec plein de sites dedans, pour voir si on est connecté : login-check.js.

    Sachez que tout ce qu’on navigateur affiche dans une page web, peut finir sur les serveurs de n’importe quel site qui possède un script dans cette page. Pensez-y.

    Enfin, pour voir une liste d’informations que votre navigateur sait de vous : https://lehollandaisvolant.net/tout/tools/browser/

    Sur Twitter, je vois quotidiennement des messages du style « j’ai trouvé ce téléphone, aidez-moi à retrouver son propriétaire ! », et tout le monde de partager le tweet en espérant que le propriétaire tombe dessus (supposant déjà qu’il soit sur sur le réseau social).

    Si le téléphone est déverrouillé (pas de code), on peut chercher dans les contacts ou trouver le compte social de son propriétaire (à faire à bon escient, évidemment).
    S’il est verrouillé, c’est plus compliqué.

    Sous Android, il y a pourtant une façon relativement simple : il suffit d’afficher un numéro de contact ou un e-mail sur l’écran de verrouillage.

    Sur Android 8.1, il faut aller dans les Paramètres et de rechercher « message sur écran verrouillé », ou d’aller dans Sécurité et localisation > Verrouillage de l’écran et d’aller sur les paramètres de cette option.

    paramètres d’android
    Ensuite, on peut choisir de mettre un message sur l’écran verrouillé :

    ajouter une message sur l’écran de verrouillage
    Et le résultat :

    capture d’écran du message qui s’affiche alors
    Voilà !

    C’est très rapide à mettre en place, mais pratique : comme ça, si vous perdez votre téléphone et que la personne qui le trouve essaye de vous retrouver, elle aura votre e-mail immédiatement.
    Vous pouvez aussi ajouter votre nom, compte handle Twitter ou le numéro d’un proche.

    N’y mettez évidemment pas le numéro de portable sur téléphone lui-même.

    Pour aller plus loin, Android 7+ permet d’ajouter des informations d’urgence qui pourront être disponibles à quiconque vous « trouverait » en situation de détresse (malaise, évanouis…). Ces informations concernent votre nom, votre groupe sanguin, vos allergies et des personnes à contacter. Ça peut être très pratique pour les secours. Je vous laisse lire ça ici : Android et iOS : Partager des informations d’urgence en cas… d’urgence !.

    En jouant avec mon circuit de Slayer permettant de produire des très hautes tensions (~100 000 V), j’ai grillé le transistor qui se trouve dedans.

    Le transistor est un transistor Mosfet W20NM60 de chez STMicroelectronics (specs). Quand il a grillé, ça n’a pas fait d’étincelles ni rien : le circuit a simplement cessé de fonctionner : le transistor a juste grillé silencieusement.

    L’apparence extérieure n’a pas changé (pas noirci ni rien), et il m’a fallu apprendre à tester le transistor avec un multimètre, et c’est de ça que je vais vous parler.

    Les transistors de puissance, comme ici, sont utilisables avec de fortes tensions. Ceci génère quelques effets parasites indésirables, dont un qui peut rendre le transistor totalement incontrôlable. Une solution à ce problème est de relier la source et le drain par une jonction PN, c’est à dire une diode. Le transistor ne peut maintenant contrôler le passage du courant que dans un seul sens du drain vers la source, mais le problème s’en trouve résolu. Un effet de bord à cela est que le courant allant dans l’autre sens, de la source vers le drain, peut lui toujours passer : c’est le sens passant de la diode :

    schéma interne du transistor W20NM60

    Méthode de test 1 : test de la diode

    Pour vérifier si un transistor fonctionne, on peut vérifier si cette diode n’a pas claquée. Pour cela, il suffit d’utiliser le multimètre en mode « diode ». Or une diode n’est passante qu’à partir d’un certains seuil de tension, même en sens passant : c’est la tension de seuil. Le mode diode du multimètre mesure cette tension :

    le mode diode sur un multimetre
    Si la diode a claquée, est est totalement passante dans les deux sens : la tension affichée est nulle ou trop basse.
    En pratique, il suffit de vérifier que le courant passe entre la source et le drain.

    Sur un transistor fonctionnel, la tension est de 0,443 V dans le sens passant (donc avec le fil rouge sur la source (borne 3) et le fil noir sur le drain (borne 2)). Dans l’autre sens, la tension est « OL », ou « out limits », soit hors des limites mesurables par l’appareil. Autrement dit, la diode est bien bloquante dans ce sens.

    On peut aussi constater que les tensions entre la grille et le drain, la grille et la source sont toutes « OL ».

    Sur le transistor grillé, maintenant, je constate que la tension précédemment à 0,443 V est passée à 0,005 V, dans un sens ou dans l’autre. Le courant passe très bien, le transistor n’est jamais bloquant et il est donc bien mort…
    Je note aussi que le courant passe entre la grille et la source , avec une chute de tension très faible de 0,227 V, là où elle devrait être « OL ». Mon transistor est donc bien mort…

    Méthode de test 2 : test de la capacité de la grille

    Une autre méthode de mesure consiste utiliser la capacité de la grille : la grille d’un transistor à effet de champ constitue une porteuse de charges électriques. S’il y a des charges sur la grille, le champ qu’il produit permet le passage d’électrons entre la source et le drain.
    Vu que le multimètre en mode diode délivre un courant, on peut légèrement charger la grille : il suffit de toucher la grille (la borne 1) avec le fil noir, tout en maintenant le fil rouge sur la source.

    La grille légèrement chargée, le transistor est légèrement passant : il existe une petite tension entre le drain et la source. Inversement, la tension de seuil dans le sens de la source vers le drain devrait avoir augmentée.

    Dans mon cas, je mesurais 0,443 V entre la source et le drain. Après avoir chargé la grille, cette tension passe à 0,472 V.

    Quand je décharge la grille (borne rouge sur la grille et borne noir sur le drain), la tension redescend : je mesure alors 0,442 V : ce transistor répond donc parfaitement et fonctionne normalement.

    Cette même manipulation sur le transistor grillé n’a aucun effet : la structure interne du composant étant détruit, la grille ne stocke plus de charges et le courant peut librement passer dans tous les sens : on devrait voir à peu près 0 V entre n’importe quelle borne…

    Compléments et info

    Voilà donc pour vérifier un transistor Mosfet.
    Dans les autres transistors (comme le transistor bipolaire), ils correspondent grosso-modo à deux diodes collées ensembles. Le mode diode du multimètre permet donc de les vérifier également.

    Ci-dessous, quelques explications sur les transistors.

    Le transistor W20NM60 est de type Mosfet (metal-oxyde seconductor field effect transistor, donc « transistor à effet de champ à structure métal-oxyde-semiconducteur »). Il est donc très légèrement différent au transistor bipolaire classique dont j’explique le fonctionnement dans mon article sur les transistors.

    Pour faire rapide, les transistors Mosfet utilisent une grille isolée (un conducteur isolé, donc relié à rien, au sein du composant, et correspondant à une des trois pattes du composant) et des champs électriques (d’où le « à effet de champ ») pour contrôler la circulation d’électrons sous la grille.
    La mise sous tension de la grille va produire un champ électrique dans le composant : ce champ va repousser ou attirer les électrons plus ou moins fortement dans un conducteur, et donc contrôler la circulation du courant, un peu comme un robinet plus ou moins ouvert contrôle le débit d’eau (sauf qu’ici, on contrôle le débit à distance avec un champ électrique).

    Le problème de ces composants, c’est que si la tension est trop forte, le champ électrique créé est trop intense et les électrons sont forcés à circuler dans les régions isolantes du composant. On assiste dès lors au claquage du composant : les 3 pôles du transistor se trouvent reliés à une même zone devenue entièrement conductrice et le courant peut circuler comme il veut, hors de tout contrôle.

    Si vous avez suivi :

    • dans le transistor en bon état : le courant circule dans un seul sens seulement si on met la grille sous tension.
    • dans le transistor grillé : le courant circule comme il veut, l’effet « robinet » ne marche plus et c’est comme si ce dernier était toujours ouvert.

    Grâce au multimètre, on vérifie l’état du robinet, en regardant si le courant passe ou non quand on le laisse fermé. Le multimètre constitue ici une méthode bon marché pour tester un transistor. Bien-sûr, il ne permet pas de vérifier le niveau d’usure ou ses paramètres (temps de réponse, tension de claquage, etc.) qui sont présentées dans sa fiche technique (lien donné plus haut).

    Sur mon ordinateur portable (Dell XPS 9550), j’utilise le défilement naturel, ça signifie que le scrolling avec deux doigts se fait comme sur un écran tactile : glisser vers le bas tire la page vers le bas, et non vers le haut, comme le fait le défilement par défaut.

    On peut changer ce paramètre dans les options de la souris, mais ça ne marche pas toujours :

    • soit parce que le pilote n’est pas pris en charge,
    • soit parce que ça marche dans GTK2 et pas GTK3, ou inversement.
    • soit pour une autre raison

    Il y a 3 ans j’avais déjà écrit un article pour Linux Mint 17, mais les choses ont changées depuis : Linux Mint 19 n’utilise plus le pilote synaptics, mais libinput. Les commandes ont donc changées un peu.

    Pour commencer, voyons si le touchpad utilise le pilote libinput en fouillant simplement dans les logs :

    grep -e "Using input driver 'libinput'" /var/log/Xorg.0.log | grep -i "touchpad"

    Si c’est le cas, une ou plusieurs lignes vont ressortir. Dans mon cas :

    [  1757.662] (II) Using input driver 'libinput' for 'DLL06E4:01 06CB:7A13 Touchpad'
    [  1757.754] (II) Using input driver 'libinput' for 'SynPS/2 Synaptics TouchPad'

    Mon touchpad est le premier, le DLL06E4:01 06CB:7A13 (l’autre semble être une émulation du premier avec un autre nom, probablement pour matcher les vieux scripts contenant "synaptics").

    C’est donc bon, c’est ce pilote qu’il faut utiliser.

    On peut utiliser des commandes à avec xinput et set-prop, mais ça n’est pas permanent. La solution suivante est persistante, même après un redémarrage. On va créer un fichier texte avec les options dedans. Ce fichier sera pris en compte par X automatiquement.

    On créer le fichier :

    sudo touch /usr/share/X11/xorg.conf.d/60-synaptics-options.conf

    On l’ouvre avec Xed, l’éditeur de texte par défaut de LM19 :

    sudo xed /usr/share/X11/xorg.conf.d/60-synaptics-options.conf

    On ajoute les options :

    Section "InputClass"
    	Identifier "touchpad natural scrolling settings"
    	MatchDriver "libinput"
    	MatchIsTouchpad "on"
    	Option "NaturalScrolling" "true"
    	Option "Tapping" "on"
    	Option "TappingButtonMap" "lmr"
    EndSection

    Explications :

    • Identifier "touchpad natural scrolling settings" : on donne un nom à cette conf (ce qu’on veut)
    • MatchDriver "libinput" : le pilote doit être libinput
    • MatchIsTouchpad "on" : # le périphérique doit être un touchpad
    • Option "NaturalScrolling" "true" # on active le défilement naturel au niveau du système
    • Option "Tapping" "on" : on active le tapping (donc en plus du clicking).
    • Option "TappingButtonMap" "lmr" : on configure le tapping avec 1/2/3 doigts comme devant faire respectivement clic gauche / clic milieu / clic droit (d’où le l (left), m (middle), r (right) : on peut changer cet ordre si l’on souhaite. Par défaut c’est lrm).

    Enregistrez le fichier.
    Quittez les programmes.
    Déconnectez-vous puis reconnectez-vous : ça devrait marcher :).

    Source de l’info : libinput - ArchWiki

    Dans la série « #LesMathsCaSertARien »…

    … y a mème qui traîne en ce moment, où une personne a laissé sa carte bancaire avec un petit mot à sa moitié, et où c’est écrit que le code de la carte est le résultat d’une équation à l’apparence très compliquée :

    le message avec l’équation
    Pour ceux qui veulent, le code est 2981.

    Et pour ceux qui veulent savoir pourquoi, on dit merci à Wolfram Alpha.
    Pour ceux qui ne connaîtraient pas cet outil en ligne, il permet de répondre à peu près à n’importe quelle question (en anglais). Il est utilisé dans le cadre de Siri, Bing ou encore DDG. Et bien-sûr, il permet de résoudre des équations.

    logo youtube
    Avant, Youtube permettait de suivre les publications d’une chaîne directement par RSS.
    Aujourd’hui, la fonction n’est plus proposée : il n’y a plus d’icône RSS nulle-part. La fonction n’a pourtant pas disparue : elle est toujours là, c’est juste difficile à trouver.

    C’est pour ça que je vous propose un petit outil (en JavaScript) de trouver l’URL du flux RSS à partir de l’URL de la chaîne :






    Pour récupérer l’URL de la chaîne YouTube, il suffit de cliquer sur l’auteur d’une vidéo. L’URL qui s’affiche est celle qu’il faut utiliser.

    Les URL prises en charges sont au format suivant suivant :

    https://www.youtube.com/channel/UCENv8pH4LkzvuSV_qHIcslg
    https://www.youtube.com/user/cestpassorcierftv/featured

    Les « !bang » sont des mots clés pour rechercher directement sur un site, depuis les moteurs de recherche comme DuckDuckGo ou Qwant. Ça permet par exemple de chercher Firefox sur wikipédia en tapant « !w firefox », qui ouvrira alors la page correspondante. Il y a des tonnes de « !bang » dans DuckDuckGo et c’est pratique (ils en ont même mis un pour mon site :p).

    Le truc, c’est que cette fonction existe déjà, depuis toujours, dans Firefox (et même dans les autres navigateurs).
    On peut les faire soi-même : il suffit de choisir le site que l’on veut et de faire un marque-page avec un mot clé et l’on a notre !bang. Ça se passe directement dans le navigateur, pas besoin d’extensions, et ça marche.

    Ici je vais faire un exemple : faire un !bang pour mon site, avec le mot clé « lhv ».

    Commencez par aller sur mon site et faites un clic droit dans le moteur de recherche puis « Ajouter un mot clé pour cette recherche » :

    i

    Dans la fenêtre qui surgit, ajoutez votre mot-clé (lhv) :

    i
    Puis cliquez sur Enregistrer.

    Et c’est tout !

    Maintenant, ouvrez un onglet, tapez « lhv » suivi de votre recherche, comme par exemple « lhv firefox » et vous trouverez tous les articles relatifs à « firefox » sur mon site !

    Vous pouvez faire n’importe quel site disposant d’un champ de recherche comme ça.
    Perso, j’ai fait youtube (y), wikipedia (w), google (g), flickr (f), wolfram-alpha (wa), google images (i), google images inversé (ii)…

    Ce qui est bien, c’est que vous pouvez mettre n’importe quoi après votre mot clé : pas forcément une recherche, mais même une URL. Par exemple, pour la recherche inversée d’une image dans Google, j’affiche une image dans un onglet, je place mon curseur devant l’URL dans la barre d’adresse et je met « ii » suivie d’une espace puis je lance la recherche. Ça va chercher l’URL (l’image donc) dans le moteur inversé de Google.

    Dans le même genre de chose pratiques, j’ai aussi mon !bang pour faire un QRcode : « qr », pour traduire du texte, ou le partager sur mon site, etc.

    J’utilise Firefox Nightly (57). Cette version est diablement plus rapide que Firefox 55 (la version actuellement stable, avant que la 57 soit définitivement adoptée, en novembre prochain), mais elle vient avec un gros hic : Mozilla est en train de tout refaire la mécanique interne du navigateur (la raison pour laquelle les performances sont si exceptionnelles), mais du coup les extensions actuelles ne fonctionnent plus. Il faut que les éditeurs des extensions mettent à jour les extensions et ceci va prendre du temps (seules quelques extensions sont aujourd’hui transposées sur le nouveau système).

    Une extension que j’utilisais permettait d’avoir la barre des marques pages verticalement sur le côté droit : ça permet de gagner de la place à l’écran, ne fonctionne plus !

    Pour obtenir le même résultat, on peut soi-même bricoler l’interface de Firefox. Ceci est rendu possible grâce au fichier userChrome.css : c’est un fichier CSS qui permet de manipuler les éléments de l’interface en CSS.

    Ce fichier se trouve dans le dossier chrome/ du dossier de profil de Firefox.
    Pour trouver le dossier du profile, copiez ceci dans la barre d’adresse et ça vous donnera le chemin vers le dossier du profile : about:profiles. Allez dans ce dossier, puis allez dans le sous-dossier chrome (s’il ne s’y trouve pas, créez-le).

    Créez ensuite un fichier userChrome.css (attention : c’est un fichier .css, il ne faut pas qu’il y ait le .txt à la fin).

    Et copiez-y le code suivant :

    @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
    
    /* ne garde plus que les icône, pas les étiquettes */
    #personal-bookmarks .toolbarbutton-text {display:none!important}
    
    #PersonalToolbar {
    	position: fixed!important;
    	 /* own width of bookmark-bars */
    	right: 35px!important;
    	/* hight of url-bar + menu bar (top:0 corresponds of very top of firefox's interface) */
    	top: 100px!important;
    	height: 35px!important;
    	/* turns the personnalToolbar on its side (from top-right, 90° CCW */
    	transform-origin: top right!important;
    	transform: rotate(-90deg)!important;
    	padding: 0!important;
    	margin: 0!important;
    }
    
    #personal-bookmarks {
    	height: 100%!important;
    	width: 100%!important;
    	padding: 0!important;
    	margin: 0!important;
    	/* to have the icons in the previous listing order, rotate the list-of bookmarks 180° CW */
    	transform: rotate(180deg)!important;
    	transform-origin: 50% 50%!important;
    }
    #personal-bookmarks .bookmark-item {
    	/* Icons are on theire side due to the 90° + 180° rotation. Put them back with a rotation, 90° CCW */
    	transform: rotate(-90deg)!important;
    	height: 100%!important;
    	width: 25px!important;
    }
    
    /* this is to make room for the toolbar besides the browsing area of Firefox */
    #browser,
    #browser-bottombox {
        margin-right: 35px!important;
    }

    Et voilà le résultat :

    capture d’écran de Firefox avec la barre de favoris verticale sur la droite
    Bien-sûr, en modifiant quelques trucs, on peut aussi l’afficher sur la gauche de la page.

    Oh et en cas de soucis avec mon code, supprimez le code du fichier, ou bien supprimez le fichier, puis relancez Firefox. Ce fichier permet de grandes choses, mais ce n’est pas un fichier critique.

    ÉDIT : Malah me signale que cette astuce fonctionne également avec Firefox 55.

    ÉDIT2 : Il y a un petit bug avec mon astuce : l’espace blanc sur le côté droit (celui qui décale la partie "page web" pour donner de la place à la barre) se retrouve présente également en plein écran. Si je trouve une solution, je la publierai, mais c’est pour moi un soucis minime donc n’attendez pas que je planche dessus dans l’immédiat.

    Dans l’histoire de taper du texte sur un bout de papier, on est passé des moines copistes, aux presses à imprimer, puis à la machine à écrire mécanique (puis électronique) et enfin à l’ordinateur. Inutile de dire que beaucoup de choses ont changée d’une technologie à la suivante, mais il est remarquable de noter certaines choses qui n’ont, elles, pas changées du tout !
    On peut faire la même remarque avec l’internet, le téléphone et le télégraphe : certains héritages subsistent encore aujourd’hui.

    Voici une courte liste de ces choses, en espérant que vous aurez appris, comme moi, certaines choses nouvelles.

    Certaines touches du clavier

    Savez-vous à quoi sert la touche Pause/Attn sur votre clavier ? J’en avais déjà parlé dans mon article dédié aux touches du clavier : cette touche remonte à l’histoire du télégraphe ! Avec le télégraphe, il fallait noter chaque lettre transmise à la volée et manuellement. Si l’émetteur bipait trop vite, le récepteur le faisait savoir en appuyant sur la touche Pause pour demander un peu de temps.

    Les touches Syst, AltGr, Backspace et d’autres ont également une histoire ancienne (cf. l’article).

    Shift

    Le terme shift utilisé pour désigner la touche de majuscule tire également son origine des machines à écrire mécaniques.
    Sur ces appareils, chaque tige portant une lettre comportait la variante minuscule et la variante capitale. Taper sur un touche permettait de placer une des deux variantes face au ruban contenant de l'encre et donc de taper une lettre.

    Pour taper l'autre variante, il fallait décaler (to shift en anglais) les touches par rapport au ruban, d'où le nom anglais de cette touche.
    Le terme majuscule me semble inapproprié ici : en effet, sur les touches de chiffres, il n'a pas pour effet de faire des majuscules, mais d'autres caractères (sauf sur les dispositions comme FrOSS) . De plus, la touche de verrouillage majuscules ne verrouille pas les majuscules, mais les capitales (le premier est un terme orthographique, le second typographique). Notons que le terme anglais Caps Lock ne fait pas cette erreur...

    L’Azerty

    Les touches du clavier ne sont pas disposées dans l’ordre alphabétique. La raison à cela remonte à la machine à écrire mécanique. Les premières machines à écrire étaient effectivement construite de façon à garder l’ordre alphabétique sur les touches.

    Le problème c’est que l’ordre alphabétique n’est absolument pas optimisé pour les machines à écrire. Deux touches proches dans l’alphabet peuvent être très utilisées, comme très peu. Sur le clavier d’une machine à écrire mécanique, où les lettres sont au bout d’une tige métallique qui vient heurter le papier avant de revenir à sa place, frapper trop vite des touches proches avait parfois pour désagrément de bloquer la machine à écrire : les tiges métalliques n’avaient pas le temps de revenir à leur place et elles s’entremêlaient rapidement.

    Une solution qui permettait de continuer à taper aussi vite tout en limitant les problèmes était de déplacer les touches : séparer les touches les plus utilisées, afin que les tiges métalliques soient moins proches et donc moins susceptibles de s’accrocher les unes dans les autres :

    une machine à écrire emmêlée
    ↑ une machine à écrire « emmêlée » (image)

    Bien-sûr, toutes les langues ont des fréquences de lettres différentes et donc toutes les langues ont des claviers différents (bien que souvent assez proches) : Azerty pour le français, Qwerty pour l’anglais, Qwertz pour l’allemand, etc. (et je ne parle ici que des langues latines, mais on retrouve ce principe également sur d’autres claviers, comme le grec ou le russe).

    Cette disposition est restée sur les ordinateurs, même si elle n’est plus justifiée : il n’y a plus de parties mécaniques susceptibles de s’entremêler. Il est même plutôt question de choisir des dispositions de clavier adaptées à d’autres choses : nos mains.
    Pour taper toujours plus rapidement et surtout sans se faire mal au poignet (y compris à long terme), des dispositions « ergonomiques » sont de plus en plus populaires : Dvorak pour l’anglais, Bépo pour le français. Les touches ont une disposition précisément étudiée pour correspondre à la langue utilisée. La frappe est alors facilitée moins pénible et accélérée.

    L’underscore, ou « tiret du 8 »

    Je parle du tiret là : « _ ». Je ne sais pas si vous avez déjà fait attention, mais ce tiret se trouve plus bas que la ligne de texte. Ça se voit bien une fois que le document est imprimé. Aujourd’hui les traitements de texte permettent de souligner du texte très facilement, mais sur les machines à écrire, on utilisait ce tiret là. On tapait le texte, puis on revenait en arrière en restant sur la même ligne et on appuyait sur l’underscore : les lettres étaient alors soulignées une à une.

    Le « tiret du 6 », lui, ne correspond en réalité à rien en typographie, contrairement à la flopée d’autres types de tirets que j’ai listé dans les tirets typographiques, qui ont tous un usage bien précis.

    Le retour chariot et la nouvelle ligne

    Toujours sur les machines à écrire, quand on finissait une ligne sur le papier (matérialisé par le son d’un petite clochette), il fallait revenir au début de la ligne puis faire défiler le papier d’une hauteur de ligne. De cette façon on se retrouvait au début d’une nouvelle ligne et on pouvait reprendre la frappe.

    Sur les logiciels de traitement de texte et même le simple éditeur de texte, comme le Notepad de Windows, il existe des caractères invisibles mais qui correspondent à ces deux actions : le caractère « \n » correspondant à une nouvelle ligne, et le caractère « \r » correspond au retour au début de la ligne. On peut d’ailleurs les voir dans un terminal (ici, la console python) :

    >>> print "a b c d e f"
    a b c d e f
    >>> print "a \nb \nc d e f"
    a 
    b 
    c d e f
    >>>

    Le « \n » signifie d’ailleurs « newline » (nouvelle ligne) et « \r » correspond à « [carriage] return » (retour chariot ; le « chariot » étant le cylindre physique de la machine à écrire sur lequel le papier était plaqué). Il en existe d’autres : « \t » pour une tabulation, « \a » pour émettre un son. Aujourd’hui, ils sont parfois utilisés pour indenter ou rechercher des syntaxes dans les textes, mais restent assez techniques.

    Bas-de-casse et haut-de-casse

    Ou en anglais « lower-case » et « upper-case » : ils désignent les caractères minuscules (abcdef…) et capitales (ABCDEF…). Cette terminologie dérive d’une pratique plus ancienne encore que les machines à écrire : l’imprimerie, avec les caractères en plomb que l’imprimeur venait aligner, avant de les enduire d’encre et de presser le papier dessus.

    Les caractères étaient rangées dans des boîtes appelées « casses » : les capitales en haut (haut-de-casse) et les minuscules en bas (bas-de-casse) :

    casse typographique
    ↑ une casse, avec les plombs, capitales en haut et minuscules en bas (image)

    Dans ces cas là, chaque casse (chaque boîte complète) correspondait à une fonte (une police d’écriture) donnée, avec lettres, chiffres, capitales, minuscules, mais aussi l’italique (qui n’est pas oblique), le gras. Le terme « fonte » est lui-même resté dans le vocabulaire (anglophone) pour désigner une police d’écriture différente d’une autre.

    CC, CCi

    Lorsque l’on envoi un e-mail, on peut l’envoyer à plusieurs personnes en même temps : on utilise pour ça le champ « CC », signifiant « copie carbone ». Avant, pour avoir plusieurs exemplaires d’un même document (manuscrit ou tapé à la machine), on utilisait une feuille de papier carbone : ce papier (salissant rapidement les doigts) était recouverte de poudre de graphite (du carbone, le même que les crayons à papier). Intercalée entre deux feuilles blanches, ce papier permettait d’écrire en double, en appuyant suffisamment fort :

    exempe avec du papier carbone
    ↑ utilisation du papier carbone (image)

    C’est encore utilisé pour certains document administratifs. À la Poste, quand on souhait envoyer une lettre recommandé, le double qui vous revient est rempli à l’identique grâce à un papier carbone également.

    Un des problèmes dans le cas de l’e-mail est que tous les destinataires savent que la copie est envoyée aux autres. Si une telle chose n’est pas souhaitée, on doit utiliser le champ « CCi », qui correspond à « copie carbone invisible » : le courriel est toujours envoyé à tout le monde, mais personne ne sera au courant ni des destinataires en question, ni de leur nombre.