Firefox : à la recherche de la fonctionnalité perdue

Depuis que Firefox est passé à son nouveau cycle de release tellement rapide que t'as pas le temps de mettre à jour avant que la version suivante soit sortie, les nouveautés sont en général plus que minimes (en six semaines, forcément on fait pas grand chose).

Par contre, dans le cadre de la grande opération d’hystérie collective généralisée sur le thème du "moins j'ai de boutons dans mon interface, mieux c'est", on voit régulièrement disparaitre des choses jugées trop peu utilisées pour rester visibles par défaut (en gros tout ce que Chrome n'a pas dans son interface).

Autant je comprends bien la volonté d'élaguer les fonctionnalités les moins utiles d'un logiciel (on fait la même chose sur Change régulièrement), autant le fait que ce soit systématiquement à la suite des changements initiés par Chrome me convient nettement moins. Fut un temps où Firefox se voulait une alternative innovante à Internet Explorer mais maintenant on a plus le sentiment qu'il se transforme en l'ombre de Chrome et ça c'est franchement dommage.

Quoiqu'il en soit, quand on est un utilisateur un peu plus avancé que l'internaute lambda pour qui Internet se résume à Youtube et Facebook, ben ces fonctionnalités il arrive qu'on s'en serve. Pas forcément toutes les cinq minutes, mais ça arrive. Et donc on peut avoir envie de les garder. La plupart du temps c'est possible, soit par configuration, soit via une extension...

Petit tour (non exhaustif) de ce qui a disparu des écrans l'année passée et de la manière d'y remédier :

  • L'icône de flux RSS dans la barre d'adresse : même s'il est effectivement rare d'utiliser Firefox comme agrégateur de flux, elle était tout de même bien pratique pour les détecter. Il suffit alors de regarder toujours au même endroit pour trouver l'adresse d'un flux plutôt que de fouiller la page pour trouver l'icône. C'est d'autant plus pratique quand le site propose plusieurs flux distincts (par exemple sur un blog : les articles et les commentaires), car souvent tous ne sont pas accessibles facilement dans la page.

    Solution : celle-ci se réactive par simple configuration puisqu'au lieu d'apparaitre dans la barre d'adresse, elle est disponible en tant que bouton que l'on peut insérer dans n'importe quelle barre d'outils en faisant clic droit/personnaliser.

  • Détection des moteurs dans la barre de recherche (via Open Search) : c'est une fonctionnalité très secondaire, j'en conviens mais ça m'a déjà servi. Sauf qu'elle a disparu avec Firefox 4...

    Solution : installer l'extension Open Search Notification.

  • Fond blanc lorsqu'on affiche une image seule : depuis Firefox 11, lorsqu'on affiche une image hors du contexte d'une page, celle-ci est centrée (ça ce n'est pas particulièrement gênant) et sur fond très sombre, ce qui n'est pas forcément pratique quand on visualise une image transparente. Et ceci n'est pas modifiable par configuration.

    Solution : passer par l'extension Old default Image Style. Elle a de plus l'avantage de ne pas nécessiter de redémarrage et d'être configurable en ce qui concerne la couleur de fond et le centrage de l'image (ce qui accessoirement peut être utile pour tester une image transparente sur plusieurs fonds).

  • Marquer tous les onglets : ajouter l'ensemble des onglets ouverts aux marque-pages peut servir dans pas mal de cas... comme par exemple quand on n'a pas le temps de chercher pourquoi il n'enregistre plus les onglets à la fermeture. L'option était avant présente dans le menu "Marque-pages" (logique).

    Solution : en fait la fonctionnalité n'a pas disparu, c'est juste qu'elle n'est maintenant présente que lors d'un clic droit sur un onglet et plus dans le menu "Marque-pages".

  • Affichage du protocole dans la barre d'adresse : depuis Firefox 7, le protocole disparait de la barre d'adresse (comme d'hab, on copie Chrome, hein). C'est pourtant agréable je trouve en tant qu'utilisateur expérimenté de savoir précisément ce qu'on fait (ça me rappelle l'idée stupide de Microsoft d'avoir masqué par défaut les extension de fichiers : la première chose que je fais en installant un Windows c'est de les réactiver, parce que notamment quand j'ouvre une pièce jointe, j'aime bien savoir ce que j'ouvre !). Puis accessoirement quand copier/coller un domaine sans son protocole est impossible avec cette barre. Je ne suis décidément pas fan de cette habitude de vouloir sur-simplifier les choses au point que l'utilisateur perd de vue que même si c'est simple, il faut faire attention à ce qu'on fait.

    Solution : dans la barre d'adresse, entrer about:config. Firefox vous met alors en garde mais comme vous savez ce que vous faites, cliquez sur « Je ferai attention, promis ! ». En haut de la liste, dans le champ précédé de la mention "Rechercher :", saisir browser.urlbar.trimURLs. Il ne reste alors plus qu'une entrée dans la liste, double-cliquez dessus pour passer sa valeur de "true" à "false".

Voilà voilà, vu comme les choses évoluent, nul doute que cet article aura une suite un jour !


Je ne saurais trop vous conseiller de... réfléchir avant de parler

Il arrive qu'on emploie des expressions ou des tournures de phrases sans y penser, juste parce que dans notre entourage il y a des gens qui l'utilisent. On les absorbe avec les temps et elles finissent par sortir naturellement, sans que pour autant on les comprenne forcément. Mais parfois c'est bien de réfléchir un peu avant de les utiliser, histoire de ne pas raconter n'importe quoi.

Un exemple que j'ai relevé au moins quatre ou cinq fois ces deux derniers mois, en particulier dans les quelques podcats que je suis, c'est la tournure de phrase "Je ne saurais trop vous conseiller de [...]", qui devient trop souvent "Je ne saurais que trop vous conseiller de [...]". Quelques fois ça fait sourire, notamment dans la bouche d’Éric Dussart (à 3'27) vu le thème de ses chroniques, mais le reste du temps on se dit juste qu'il serait bon de réfléchir un peu avant de parler.

Parce que bon, il ne faut pas beaucoup plus de 2,6 secondes de réflexion pour se rendre compte que rajouter un "que" ici, ça inverse juste le sens : dans un cas on explique qu'on pourra le conseiller tant qu'on veut ce ne sera jamais assez, dans l'autre on explique qu'en fait le simple fait de l'évoquer c'est déjà trop.


Un nom plus court pour la commande change.php

Cet article n'intéressera pas forcément grand monde. En même temps, le but premier de ce blog était bien à l'origine de me servir de bloc-notes pour garder une trace de certaines choses que j'ai eu plus ou moins de mal à trouver et/ou retenir, pas forcément à intéresser un public très large.

Donc là on parle de développement avec RBS Change et plus particulièrement de la commande change.php. Avant la version 3.5 il fallait installer une commande globale sur le serveur pour pouvoir l'exécuter, à partir de la version 3.5 cette commande globale n'est non seulement plus nécessaire mais carrément gênante (parce qu'on passe dans du code qui n'est plus compatible, même si on ne s'en rend pas compte tout de suite).

Mais toujours est-il que taper php framework/bin/change.php c'est vite lourd. Une solution possible est de passer par un alias de commande dans le .bashrc :

alias change.php="php framework/bin/change.php"

Mais par moment ça marche moyen. Surtout si la commande globale de la version 3.0.x est installée, parce que des fois on se retrouve à exécuter quand même la commande globale alors qu'on voulait exécuter celle contenu dans le framework.

Une meilleure solution est de passer par une commande personnalisée. Sur Ubuntu Serveur inclut par défaut (cf le fichier .profile) le dossier ~/bin dans le PATH. Ainsi il suffit de définir un fichier ~/bin/change.php (sans oublier de lui donner les droits d'exécution : chmod +x ./change.php) contenant :

#!/usr/bin/env php
<?php
if (file_exists("framework/bin/includes")) {
  $script = "framework/bin/change.php";
}
else
{
  $script = "/usr/local/bin/change.php";
}
if (file_exists($script))
{
  array_shift($argv);
  $script = $script . ' ' . implode(' ', $argv);
  system($script);
}
else
{
  echo "Could not find $script";
}

Personnellement j'ajoute aussi un lien symbolique pour pouvoir exécuter simplement c au lieu de change.php :

ln -nfs change.php c

Voilà voilà exécuter juste c plutôt que php framework/bin/change.php c'est quand même nettement plus agréable, surtout quand on développe et qu'on tape la commande toutes les 5 minutes :o


Rollovers compatible iPhone

En intégrant la nouvelle charte par défaut d'RBS Change (à venir avec la prochaine version 3.6), j'ai intégré quelques blocs avec du rollover (notamment le sélecteur de langues ou le bloc de récap du panier).

Ça fonctionne très bien via du CSS avec la pseudo-classe hover, si ce n'est que sur iPhone tous ne passent pas : le menu déroulant marche sans problème, par contre le bloc de sélection des langues ne passe pas. Le point qui bloque c'est que dans le menu il y a des liens sur les items qu'on survole, du coup au premier "clic" l'iPhone active le hover au lieu de suivre le lien (qui n'est suivi qu'au second clic) alors que quand on n'a pas de liens il n'active pas le hover.

J'ai cherché des solution sur le net et je suis tombé sur pas mal de chose pas super convaincantes :

  • une solution basée sur des événements spécifiques au tactile : "touchstart" et "touchend" (comme expliqué par exemple) mais que je n'ai pas réussi à faire marcher...
  • passer par l'événement "clic" pour placer puis enlever comme dans solution précédente une classe "hover" sur les éléments

Dans les deux cas c'est loin d'être parfait... Notamment dans le 2e cas, ça merdouille si on a les style à la fois sur la pseudo-classe hover (pour tout ce qui n'est pas tactile c'est quand même mieux vu qu'on ne dépend pas de JavaScript) et sur la classe ajoutée.

Finalement, du coup j'ai compris que l'iPhone active le hover à partir du moment où on place un listener sur l'événement "clic" ! Du coup j'ai simplement mis un listener au clic sur mon élément où je veux appliquer le hover qui ne fait rien de particulier et mon problème est réglé sans pourrir mes styles avec une classe ajoutée à la volée \o/

Donc concrètement, si par exemple j'ai ce code HTML :

<div class="test">
  Toto
  <p>Visible uniquement au survol</p>
</div>
Associé à ce CSS :
.test p {
  display: none;
}
.test:hover p {
  display: block;
}

Ça fonctionnera très bien sur un ordinateur mais pas sur un iPhone ou un iPad, à moins d'y ajouter ce code JavaScript (utilisant jQuery mais j'imagine que ça doit marcher sans aussi...) :

jQuery(document).ready(function() {
  jQuery('.test').click(function() {});
});

Quelques trucs sur Windows #1

Clavier azerty reconnu comme un querty

Par moment, Windows commence à se comporter bizarrement : on écrit de q au lieu des a, les mots de passe ne sont plus reconnus, tout ça... Rien d'ésotérique là dedans, la reconnaissance du clavier a juste switché en qwerty...

Comment ça s'est produit ? En général c'est que vous avez sans vous en rendre compte, tapé le raccourci clavier alt (gauche) + shift (gauche). Je ne sais pas pourquoi un tel raccourci est défini dans Windows mais c'est comme ça. Donc pour revenir à la normale, il suffit d'utiliser ce raccourci.

Pour que cela ne se reproduise plus, il est aussi possible de désinstaller le clavier anglais au niveau de Windows.

Sous XP, ça se trouve dans le panneau de configuration : Démarrer > Paramètre > Panneau de configuration > Options régionales et linguistiques > langues > détails cliquer sur anglais et supprimer (au besoin on peut le rajouter quand on veut avec le même menu).

Sous Seven c'est presque pareil mais pas tout à fait : Démarrer > Panneau de configuration > Horloges, langue et région > Modifier les claviers et les autres méthodes d'entrée > Modifier les claviers... > sélectionner l'anglais et supprimer.

Faire une capture d'écran de la fenêtre courante sous Windows XP/Seven

Sur mac on a pas mal de possibilités pour faire une capture d'écran mais ce que je ne savais pas c'est que sur Windows aussi on dispose de plusieurs raccourcis différents.

En effet, si toute seule la bien connue touche Impr écran capture tout l'écran, combinée avec la touche alt elle ne capture que la fenêtre courante. Ça peut éviter de re-découper la capture après, donc c'est bon à savoir ^^

Sinon Seven est également livré avec un outil de capture d'écran où on sélectionne la zone à capturer. Il est accessible depuis le menu démarrer > Tous les programmes > Accessoires > Outil Capture.

Oui j'essaie de purger un peu les brouillons qui trainent... celui là avait quand même presque trois ans ^^