Archives de l’auteur : Fab

Le rail est énergétiquement plus efficace que le pneu

Une question qui me taraudait depuis un moment : un véhicule roulant sur des rails est-il plus efficace qu’un véhicule roulant sur des pneus et du bitume ? Si ce n’est pas le cas, ne serait-ce pas plus efficace de ne construire que des routes et d’avoir des bus/autocars, plus flexibles ?

Réponse: Le rail est plus efficace car:

  • en autres la roue ne se déforme pas (qui donne une déperdition d’énergie sous forme de chaleur), ce qui donne une plus faible résistance au roulement. Selon cette page (en anglais), la résistance au roulement d’un train est de 5 à 10 fois moins importante que pour une voiture (un train chargé ayant une résistance moindre car cela augmente la pression sur le rail), et de 3.5 à 7 que pour un camion.
  • la roue gare un bon contact avec le rail (pas de petits sauts et autres instabilités)

« Lazarus: Form Recovery » makes forms submit slow :-(

« Lazarus: Form Recovery » is a Firefox add-on that saves the text of the forms so it can be restored later (very handy, for example if you have typed a long mail/message/Wikipedia contribution and something bad happens, like a crash or a computer shutdown).

Unfortunately, I realized that it causes a small delay (something like 1.5s) when submitting a form. It is perceptible in the case of an Ajax form (or even an « offline » form where nothing is sent but data is processed locally in Javascript; in this case the result should be instant). I spend some times searching around, it was crazy! No problem with a simple « onClick » but only with « onSubmit ». Was it the debug version of React? No! Or the fact that I used the Javascript compilation of React JSX? No! There was nothing special in the Performance analyser. Then I realized that Chromium was fast. And Firefox dev edition was fast. Then I began the Firefox add-on hunt…

That’s strange that saving is not asynchronous…

(by the way, if you want to compile JSX files using Node.js, don’t install « node » on Ubuntu, that’s not « Node.js »! Install « nodejs » instead, and make a symlink from « /usr/bin/nodejs » to « node » somewhere on your path. Otherwise you may ask yourself why the JSX compiler does nothing. It’s just that the executable « node » is completely unrelated)

Atom: police japonaise / Japanese font

(English below)

Dans l’éditeur de texte Atom, sous Kubuntu 15.04, les caractères japonais s’affichaient comme un carré (□), alors que les autres éditeurs (Emacs, Kate, Geany…) n’avaient pas ce problème. Pour obtenir un affichage correct, j’ai mis comme police dans les préférences «Oxygen Mono, TakaoPGothic». Par contre, comme avec les autres éditeurs de textes, les caractères japonais ne s’affichent pas avec une longueur fixe (vu que la police TakaoPGothic n’est pas une police à chasse fixe), mais ce n’est pas grave.

In the text editor Atom, in Kubuntu 15.04, the Japanese characters were displayed as a square (□), whereas the other editors (Emacs, Kate, Geany…) behave correctly. In order to obtain a correct display, I set in the settings the font as «Oxygen Mono, TakaoPGothic». However, as in the other editors, the japanese characters were not displayed with a fixed length (given that the font TakaoPGothic is proportional), but that’s not really a problem.

 

Mutuelle: un coup de fil suspect

J’ai reçu un coup de fil du «09 83 21 66 60» qui sent l’esbroufe à plein nez. Cette brève discussion a ressemblé a peu près à:

  • Interlocutrice: Bonjour monsieur [mon nom écorché], c’est la mutuelle.
  • Moi: Oui?
  • Interlocutrice: Avez-vous bien reçu la carte de la mutuelle?
  • Moi: Euh, quelle mutuelle?
  • Interlocutrice: C’est plate-forme des mutuelles de santé. Avez-vous reçu la carte de la mutuelle.
  • Moi: Quelle mutuelle?
  • Interlocutrice: [raccroche rien dire de plus]

Ça me change de ceux qui ne vous laisse pas en placer une, histoire que vous ne raccrochiez pas (parce ce que ce n’est pas poli de raccrocher au nez des gens). Ou bien des indiens qui se font passer pour Windows. Ou bien du gars de SFR qui vient chez moi me proposer de la fibre (pourquoi pas), soit disant sans engagement (mais pour lequel je dois fournir mon numéro de compte IBAN) et avec une réduction de 10€ reconductible (ce qui n’est pas mentionné dans le contrat). Ou de ces même SFR qui me rappellent plusieurs fois par semaine pendant des semaines jusqu’à ce que je décroche.

Monde de merde!

Kubuntu 15.04: really full of bugs

I upgraded from Kubuntu from 14.04 to 15.04 (in order to get MTP support for my phone), and unfortunately it is really beta quality.

  • My settings from the previous version of KDE were not migrated.
  • When opening a session, some programs are not restored (ex: Konsole). Super annoying.
  • And also some windows are restore under my bottom bar.
  • I get prompted to install Flash at each session.
  • The auto-execution of programs at the session opening now only works for « programs » (having an associated « .desktop » file), not for shell scripts (though the configuration interface still allows adding such scripts). The list of the auto-executed programs is now located in « ~/.config/autostart » (and not anymore in « ~/.kde/Autstart »).
  • Why is there two distinct directories for the thumbnails (~/.thumbnails and ~/
    .cache/thumbnails) ?
  • The only way to add a program to a panel is by browsing the program hierarchy via the program menu widget (on the same panel). Searching a program by name will not allow you to add a program. Neither will the application launcher widget.
  • In order to associate a keyboard short-cut to Klipper, I need two icons of Klipper in my bar.

I also noticed that the « open file » dialog boxes (in particular the one for choosing a wallpaper image) does not display preview images larger than 5 Mo (default limit). If you want to choose a photo taken with your DSLR it can be annoying. There is no global way to change this settings. To change it for a given application, open or create the configuration file « ~/.config/APPNAMErc » (for Kate: ~/.config/katerc ; for everything related to the desktop: ~/.config/plasmashellrc), and make sure the following section is present.

[PreviewSettings]
MaximumRemoteSize=0
MaximumSize=50000000
UseFileThumbnails=true

« MaximumSize » is the maximal size of the files. In this example: 50Mo.

My recommendation: if you want stability and the current version is satisfying for you, do not migrate.

Android, DAVdroid, Owncloud, TLS

Pour accéder sur Android à une liste de contacts via CardDav (ce que permet par exemple Owncloud), on peut utiliser DAVdroid par exemple. Il y a quelques pièges au niveau des certificats HTTPS.

Format CSR

Le certificat doit être au format CSR, et pas au format PEM (avec ce format, Android ne vous affichera pas le moindre message d’erreur, et le certificat n’apparaîtra mystérieusement pas dans la liste). Pour convertir de PEM à CSR:

openssl x509 -in mon_certificat.pem -outform DER -out mon_certificat.crt

CA:TRUE

Comme l’indique la FAQ de DAVdroid, le certificat doit avoir l’attribut «CT:TRUE». Premièrement il faut que le certificat soit un CA. J’avais essayé de créer un CA avec cet attribut, puis un certificat-fils avec cet attribut, sans succès (ça semble être un problème d’Android 4.x). J’ai donc créé uniquement un certificat CA pour mon serveur owncloud.

Pour le généré, j’ai créé un fichier de configuration basé sur celui de base «openssl.cnf». Dedans, j’ai modifié la section suivante (comme indiqué dans les commentaires de ce blog):

[ v3_ca ]
 subjectKeyIdentifier=hash
 authorityKeyIdentifier=keyid:always,issuer
 basicConstraints=CA:TRUE

J’ai créé la clé et le certificat d’un trait (et donc sans passer par le mécanisme de requête de certificat):

openssl req -x509 -new -config my_server.cnf -nodes -key private/my_server.key -days 1024 -out certs/my_server.pem

Attention, vous devriez comprendre ce que vous faites quand vous générez des clefs/certificats (quel durée de validité? quel algorithme? etc…).

Samsung ne veut pas que vous lisiez sa licence (confortablement)

Les sales coup des diverses sociétés pour rendre la vie de leurs clients difficile me fatiguent. Un exemple récent: pour utiliser son téléphone Samsung, il faut accepter les termes du contrat de licence… affiché dans une petite boîte qui ne fait que 20% de la hauteur de l’écran (4cm sur 10 cm). Si vous faites basculer l’écran en paysage, le texte est à nouveau positionné au début. Bref, tout est fait pour que vous mentiez et cochiez «je comprends et j’accepte».

Samsung, pourquoi méprisez-vous ainsi vos clients?

Je cherchais un téléphone qui tiennent dans la main. Avec cette mode des écrans extra-larges, le choix est réduit. Moi choix c’était porté sur un Sony Xperia Z3 Compact qui avait tout pour plaire, sauf que:

  • Débloquer le bootloader, outre annuler la garantie dans la plupart des cas, supprime du téléphone des clés DRM, ce qui… supprime la réduction de bruit de l’appareil photo. Les photos en basse lumière font alors vraiment peine à voir.
  • Il n’y a sur les firmwares Lollipop officiels actuels pas de faille permettant de passer root. Ça aurait permis d’avoir l’avantage de la stabilité du firmware de base, et les fonctionnalités vraiment sympa des applications root (backup, filtrage des droits des applis…).

Dur dur. Je ne demande pas la lune pourtant: un téléphone simple et solide, qui tiennent dans la main et permettent d’être root et/ou d’installer des ROM alternatives. En passant du temps à écumer les forums et autre site de Cyanogenmod, je me suis rendu compte que:

  • être root est possible ou non selon les versions du firmware d’origine.
  • avec certaines ROM alternatives en cours de développement, certaines fonctionnalités de base ne fonctionne pas (comme le micro en réception d’appels, ouch!).

Bref, cette situation où les différents acteurs vendent les appareils bien verrouillés m’exaspère. Même les constructeurs qui le voudraient bien doivent respecter la volonté du tout puissant Google: pas de root sur les téléphones estampillés Android. Ou sinon pas d’applications Google, et notamment pas de Play Store, la plus indispensable à mon avis, étant donnés qu’un certain nombre d’applications (comme celle de la SNCF ou celle de votre banque), ne sont publiées que sur Google Play. Une belle position dominante. Monde de merde!

Compression of Wikipedia pages history

The Wikipedia foundation provides dumps for its projects. Among them, you have the full history of the pages: the dump is a compressed file containing the full text of each revision of each page. As you can guess, as new revisions of the pages are added, the overall space required exponentially grows. So I told myself that contributors should avoid adding tons of very small modifications (each of them adding the content of the full page in the history).

What about the compression of this history? It turns out than lzma (xz, 7zip) performs much better than bzip2. For example, for French Wikivoyage, the 7zip version is 5 times smaller than the bzip2 version. Here are some diagrams with:

  • in X: the size of the whole dump for a page after a given revision was added.
  • in Y: the size of the additional compressed data for this given revision.

For bzip2:

bzip2As you can see, the compression rate is decreasing.

For lzma:lzmaCompression rate over against the full data size for bzip2:

bzip2_rateCompression rate over against the full data size for lzma:

lzma_rateConclusion: lzma handles much better text that is the very repetitive and large.

I expect the bzip2 dumps to grow larger and larger. The French Wikipedia dump is currently 110Go in bz2 and only 15Go in 7z.