Pourquoi l’altitude du GPS semble fausse sur Android

Bizarrement, plusieurs de mes programmes Android (SatStat, Firefox) rapportent une altitude fausse (50m de plus). Par contre GPS Test retourne une altitude qui me semble plus correcte. Je supputait que cette différence était due au fait que le calcul était fait par les programmes (d’après les données GPS brutes). En fait, l’API Android fournit l’altitude, mais celle-ci est relative au système géodésique WGS 84 qui est différent du niveau moyen de la mer. Une conversion est donc requise, ce que fait GPS Test. Information sur Stackoverflow.

KDE: Firefox ouvre les répertoires avec Nautilus et pas Dolphin

Voilà un bug un peu irritant, dû au fait que Firefox n’utilise pas un moyen standard pour déterminer quel gestionnaire de fichier utiliser. Il y a plusieurs moyens de résoudre ça (de manière peu élégante):

  • Pas terrible: désinstaller Nautilus.
  • Mieux mais pas pérenne: lancer au démarrage de la session KDE un service Dolphin avec la commande « /usr/bin/dolphin --daemon ». Cela se fait dans « Configuration du système / Démarrage et arrêt / Ajouter un programme ».

C’est ce genre de problème qui fait qu’utiliser Linux au quotidien est tristement pavé de bugs et comportements bizarres…

Openstreetmap: Generate heatmaps using Osmosis

I thought it would be nice to create heatmaps from the Openstreetmap data (i.e. for displaying the areas lacking « addr:housenumber »). I created, OsmosisHeatmap (jar file, source), a plug-in for Osmosis (a command line tool for processing Openstreetmap data) that generates a JavaScript file with the coordinates, JS that can be used by the sample HTML page based on Leaflet and Leallet.Heat.

And it gives something like that:

sample

Écouteur sports: Jabra Sport Pace ou Plantronics BackBeat Fit

J’ai pu tester ces deux modèles, cherchant un casque dont le fil ne m’encombre pas quand je vais courir et qui tiennent bien en place. Les deux sont Bluetooth et dans les 90€ environ.

Résumé: Aucun des deux ne me convainc vraiment. Le Plantronics est pour moi le casque de tous les jours parfait, mais assez désagréable pour le sport (enfin, peut-être pas pour du vélo d’appart…). Le Jabra est plutôt bien pour courir, mais presque uniquement pour ça.

  • Plantronics BackBeat Fit:
    • Bien:
      • Solidité: La construction a l’air bien solide. Avec son tour-de-cou bien épais je j’ai pas peur qu’une jointure de câble s’abîme. Le cache du connecteur USB (pour la recharge) a l’air bien solide.
      • Confort: L’écouteur m’a un peu fait mal au début (peut-être avais-je le conduit irrité), problème que je n’ai plus ressenti par la suite. Porté en environnement non-sportif, je l’oublie totalement (littéralement!): aucun frottement sur mon coup ou mes oreilles. C’est vraiment magique.
      • Ergonomie: Il faut un peu d’habitude pour l’enfiler rapidement, mais avec l’habitude je peux le faire machinalement. Le câble semi-rigide ne s’emmêle jamais (on sort le casque de la poche et s’est posé). Les deux boutons pour faire pause, éteindre et augmenter/diminuer le son se révèlent bien pratique. La voix indiquant l’allumage et le taux de charge est pile au bon volume.
      • Autonomie: Longue.
    • Pas bien:
      • Pendant le sport: Nettement moins bien. Je n’arrive pas à faire tenir les deux oreillettes correctement. Il y en a toujours une qui finit par sortir et c’est énervant. D’autre part, je l’avais choisi pour l’isolation limitée de ses écouteurs (afin d’entendre les voitures en traversant la route), mais au final l’isolation n’est pas suffisante: dès qu’il y a un bruit de circulation à proximité ou du vent, je n’entends plus vraiment la musique.
  • Jabra Sport Pace: (un peu l’inverse)
    • Bien:
      • Pendant le sport: L’isolation est assez bonne vu la nature des écouteurs. Ceux-ci tiennent mieux dans mes oreilles, mais il y en a toujours un qui finit toujours par glissement lentement (sans sortir complètement comme le Plantronics). À ce moment là, le volume ressenti diminue, je perds la sensation d’être dans ma bulle et je dois essayer de les recaler.
    • Pas bien:
      • Solidité: Avec leur câble « classique » de tour de cou, ils n’inspirent pas confiance, et je sens qu’il ne faudra pas tirer brutalement dessus pour les sortir du sac. Le cache USB en caoutchouc a l’air vraiment fragile: son attache est trop proche du connecteur et donc il faut le plier à 90°. D’autre part, il n’est pas facile à ouvrir (il faut des ongles).
      • Confort: Bonne déception une fois habitué au Plantronics: je ressens en bougeant la tête soit le frottement du câble dans le cou, soit celui des écouteurs dans les oreilles (ce qui donne des sons parasites typiques des intras).
      • Ergonomie: Le volume de la voix est bien trop fort (niveau « désagréable ») par rapport à mon volume d’écoute normale. On ne peut régler le volume que lorsque du son est en train d’être joué, ce qui est super nul si vous écoutez des sons assez courts (comme dans Anki). Les contrôles sur le câble (3 boutons) sont moins pratiques, mais ce n’est pas rédhibitoire. Pour le moment j’ai dû mal à l’enfiler et l’enlever rapidement (pas terrible quand quelqu’un vous parle).
      • Autonomie: Il faut recharger assez souvent. C’est à dire qu’il ne faut pas compter sur une journée d’écoute au bureau.

Si vous êtes comme moi victime du syndrome du casque qui tient mal, alors attendez-vous à la possibilité qu’aucun ne vous satisfasse. Triste.

Kubuntu 16.04: configurer ibus et anthy pour taper en Japonais

Kubuntu et KDE ne permettent pas de configuration facile pour taper du japonais (c’est le bug 329032, pas d’intégration de KDE avec les méthodes de saisie). Voila comment faire depuis une nouvelle installation.

1) Installer « ibus » et « anthy »

Ibus est une « méthode de saisie », un composant du système qui permet de taper des caractères complexes. Anthy est un greffon (aussi appelé « plugin ») pour taper du japonais.

Pour l’installer en ligne de commande, taper ceci puis rentrer son mot de passe:

sudo apt-get install ibus ibus-anthy

Note: si vous préférez la méthode « mozc », rajouter « ibus-mozc » ou bien remplacez « ibus-anthy » par celui-ci.

On peut sûrement l’installer de manière graphique, mais je n’ai pas l’impression que les outils de base de Kubuntu (« Logithèque / Découvrir ») le permettent.

2) L’activer au lancement de la session

Il faut qu’ibus soit lancé automatiquement quand on se connecte.

  • Aller dans « Configuration du système » et dans la section « Démarrage et arrêt »

  • Cliquer sur « Ajouter un programme » et dans la boîte « Choisir une application » taper « ibus-daemon » puis « ok ».

ibus-02-config-sys

  • Dans la boîte suivante liée à ce programme, cliquer « ok ». Si vous avez une boîte d’erreur vous indiquant une erreur d’écriture, pas de problème. Maintenant vous avez « ibus-daemon » dans la liste de programme de démarrage.

3) Configuration pour les programmes

Il faut un réglage additionnel pour que les programmes utilisent ibus. En ligne de commande, exécuter la commande:

im-config -n ibus

Cela créera dans votre répertoire personnel un fichier « .xinputrc ». Il sera lu par je-ne-sais quel programme, et aura pour effet de remplir les variables d’environnement suivantes:

CLUTTER_IM_MODULE=xim
GTK_IM_MODULE=ibus
QT4_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus

4) Déconnectez-vous

Et ouvrez une nouvelle session afin d’avoir les configurations ci-dessus activées.

5) Configurez les langues de ibus

Normalement vous devriez avoir dans la « boîte à miniature » une icône ibus.ibus-03-config-sys

  • Clic droit, « Préférences »
  • Dans l’onglet « Méthode de saisie », cliquer sur « Ajouter », aller à « japonais » et sélectionner « Anthy ».
  • Note 1: Vous pourriez préférer la méthode « Mozc ». Il parait qu’elle aurait ses avantages, mais elle a l’inconvénient rédhibitoire de ne pas taper par défaut en hiragana (et ce n’est pas configurable), donc je ne vous la recommande pas.
  • Note 2: dans l’onglet « Général », j’ai choisi la combinaison de touche « <Control><Alt> Down » (sic) pour passer d’une langue à une autre. Cela évite d’avoir à cliquer sur l’icône pour changer de langue.

6) Utilisez

Maintenant, dans la plupart des programmes (mais pas les programmes Java), quand la méthode Anthy est activée, vous taperez en hiragana (taper au clavier «toukyou» donne «とおきょう»). Une fois les hiraganas d’un mot tapés, taper « espace » une ou plusieurs fois pour qu’il vous propose différentes écritures en kanji. Taper « entrée » pour choisir l’une d’entre elles.

On peut configurer les raccourcis d’Anthy (dans la fenêtre de configuration d’ibus). Par exemple, j’ai choisi « control-h » et « control-k » pour basculer respectivement en hiragana et en katakana.

Firefox: problematic extensions, slow closing, extensions data loss

For (at least) several months, the first start-up of Firefox after a Linux logout gives me a session-restore page, indicating that it did not stopped properly. It also causes data loss in some add-ons. After some investigation, it turned out the causes were the following:

  • Some add-ons made closing Firefox very slow (about 1 minute!): there is a conflict between « Privacy Badger » et « Self Destructing Cookies« , and also « Tab Memory Usage » by itself is a problem.
  • When closing the Linux session, the session managers of the desktop environments (KDE, XFCE, Unity) gives the programs some time to shutdown properly (7-15 seconds I think). In my case, Firefox was killed every single time. This timeout not being configurable (without modifying the code et recompiling), the only solutions were either make the closing faster or manually closing Firefox before disconnecting. I find the way Windows handles it better: after the timeout, it asks the user if he wants to kill the remaining programs.
    Now that I disabled « Self Destructing Cookies » and « Tab Memory Usage », it takes a bit less that 10s for Firefox to stop, which it still not enough for it to close properly 100% of the time.
  • The add-ons using the « Simple storage » API (like MyKanji) save their data on the disk when the browser stops (even if the data was not modified recently!), and the data may be lost if the browser is killed at this moment.

Conclusions:

  • It may be one of the reasons why Mozilla wants to normalize the add-ons API (in addition to the security and the multi-process browser). Investigating the conflicting add-ons can be time-consuming, and a majority of users may think that Firefox itself is slow. Once I disabled the offending add-ons, my browser had a second youth.
  • Hard-coded time-outs (also known as « magic numbers ») are bad. It’s better to have a default value and a configurable setting (even if not documented).

Firefox: extensions problématiques, fermeture lente, perte de données d’extensions

Depuis plusieurs mois (au moins), le premier démarrage de Firefox suivant une fermeture de session Linux m’accueille avec une page de restauration de session (due à un incident lors de la fermeture). Cela entraînait également la perte de données de certaines extensions. Après investigation, les causes étaient les suivantes:

  • Certaines extensions rendaient la fermeture très lente (1 minute!): d’une part il y a un conflit entre « Privacy Badger » et « Self Destructing Cookies », et d’autre part « Tab Memory Usage » en lui-même pose problème.
  • Lors de la fermeture de session, les gestionnaires de session des différents environnements de Linux (KDE, XFCE, Unity) laissent aux programmes un délai limité (7-15 s je crois) pour se fermer proprement avant de les tuer. Et donc dans mon cas, Firefox était tué à tous les coups. Ce délai n’étant pas configurable (sauf modification et recompilation), les seules solutions sont soit de rendre la fermeture plus rapide, soit de fermer manuellement Firefox avant de se déconnecter. J’aurais préféré que ce soit comme sous Windows: qu’après le délai, le système demande à l’utilisateur si il veut vraiment tuer les programmes restant.
    Maintenant que j’ai désactivé « Self Destructing Cookies » et « Tab Memory Usage », le temps de fermeture de session est d’un peu moins de 10 s, ce qui reste toujours trop pour clore la session avec succès à tous les coups.
  • Les extensions utilisant l’API « Simple storage » (comme « Mes Kanjis ») sauvent sur disque leurs données à la fermeture du navigateur (même si les données n’ont pas été modifiées récemment !), et si le navigateur est tué à ce moment, les données peuvent être perdues.

Conclusions:

  • Ça donne une explication supplémentaire à la volonté de Mozilla de normaliser les API des extensions (en plus de la sécurité et de la répartition sur plusieurs processus). Partir à la chasse aux conflits peut être fastidieux, et de nombreux utilisateurs tireront la conclusion que Firefox est un navigateur poussif. Une fois les extensions fautives désactivées, mon navigateur a connu une seconde jeunesse.
  • Les délais en dur dans le code (aussi connu sous le nom de « nombre magique »), c’est mal. Mieux vaut avoir une valeur par défaut pouvant être remplacée par une valeur configurable (même si celle-ci n’est pas documentée).

Mise à jour Kubuntu 16.04: du mieux

Bravant tous les risques, j’ai mis à jour ma Kubuntu de 15.10 à 16.04. Moins de surprises que lors des mises à jour précédentes: la seule erreur que j’ai eu est la reconfiguration de PhpMyAdmin qui échoue… parce que MySQL est arrêté (pas encore mis à jour). Une bonne surprise même: plus de pause de plusieurs secondes en branchant/débranchant un écran, et plus de crashs de programmes à ce moment. Par contre un nombre de problèmes restent.

Problème d’affichage du texte dans Visual Studio Code sur Kubuntu 16.04? Changez de police!

Après la mise à jour de Kubuntu 15.10 à la version 16.04, le texte avait une sale tronche: il était plus sombre et avait l’air moins précis.

En fait cela venait du fait que la police par défaut était devenue « Courier New ». La solution, qui n’avait rien à voir avec la couleur du texte (!), a été de modifier le fichier de réglages (menu Fichier / Préférences / Paramètres utilisateur) en rajoutant un entrée comme:

"editor.fontFamily": "Liberation Mono"
"editor.fontFamily": "Oxygen Mono"

J’ai galéré pour trouver pourquoi cela ne touchait que Kubuntu 16.04 (que ce soit sous KDE ou XFCE), et pas Ubuntu 16.04 (sous Unity) ou Ubuntu 15.10 (sous KDE): grâce à des VM j’avais comparé (avec « strace ») les différents fichiers chargés par vscode, sans réussite: il semblait que les fichiers étaient les même, notamment les fichiers de thème de GTK 2.

En fait, j’aurais pu trouver plus rapidement en utilisant des outils de dev de vscode (ceux de Chromium; on les active dans le menu aide et on les ouvre avec F12): j’aurais pu voir quel était la police utilisée en pratique dans l’éditeur.