samedi 30 mai 2015

Ubuntu Touch - Transférer ses contacts

La première chose à faire pour que mon Aquarius soit utilisable, c'est de transférer mes contacts. C'est là que l'on se rend compte que le téléphone n'est absolument pas prêt pour monsieur et madame tout le monde: la méthode la plus efficace requiert de s'intéresser de près à la ligne de commande.

Tout d'abord, il faut ouvrir un accès SSH sur le téléphone. J'aime beaucoup la solution de Robie Basak qui consiste à transférer sa clé SSH via netcat (nc), et évite d'avoir à se fader adb.

Une fois que l'on peut ouvrir une session SSH sur son téléphone, tout devient plus simple, parce que l'application "Terminal", aussi bien qu'elle soit, est quand même sérieusement pénible à utiliser avec un clavier tactile. Il faut donc copier ses contacts quelque part sur le téléphone, puis utiliser syncevolution pour les importer, comme indiqué par Nicolas Delvaux.

Une petite remarque en passant: il n'est pas rare de trouver des solutions qui s'appliquent aux versions beta d'Ubuntu Touch. Avec une version officielle pré-installée, c'est souvent beaucoup plus simple!

La prochaine étape sera d'importer tous mes SMS, que j'ai pu exporter de mon Nokia au format CSV. L'Ubuntu Touch gère les SMS via une base SQLite, j'espère donc pouvoir faire un peu de reverse engineering et comprendre comment pousser mes données là dedans.

mercredi 27 mai 2015

Ubuntu Touch - Premières impressions

Voilà, enfin, j'ai mon nouvel Ubuntu Touch (un BQ Aquaris 4.5 Ubuntu Edition) dans les mains! Bon, je ne peux pas encore téléphoner avec parce que je n'ai pas reçu ma nouvelle SIM, mais les débuts sont prometteurs. En particulier, l'application "terminal" qui m'a permis de faire un "df -h" (sur un téléphone!!!) m'a rendu tout fou. Je sens qu'il va y avoir beaucoup de bidouillage à faire, mais c'est justement ça qui me plait.

dimanche 17 mai 2015

Il est la!

g++-5 -O3 -flto hello.cpp -o hello -fuse-ld=gold

Alors certes, il va falloir que j'écrive un programme un poil plus intéressant qu'un bête Hello World, mais c'est un début. En particulier, je veux tester le changement d'optimisation des chaînes de caractères de COW à SSO. En faisant lire des listes de chaines de plus en plus grandes, l'on devrait observer un seuil (à 24 caractères, si j'en crois Stack Overflow) où l'on commence à devoir faire des allocations. Nos amis std::chrono et Valgrind confirmeront.

lundi 4 mai 2015

Vivement gcc 5.1

Les petits gars de Debian sont en train de bosser d'arrache pied sur le paquet gcc 5.1. Déjà disponible en experimental, il ne devrait pas tarder à atterrir en Testing, ce qui va me donner plein d'occasions pour poster, car il va y en avoir à expérimenter. En particulier, le support de C++14 sera complet, et l'on commencera à voir des fonctionnalités de c++17 (encore appelé c++1z par les pessimistes).

Supporté depuis un moment déjà, mais amélioré à chaque release, c'est la "link time optimization" avec laquelle il va me falloir sérieusement expérimenter. Pour faire simple, au lieu de générer du code machine lors de la transformation de chaque fichier source en fichier objet (.o), gcc génère un fichier au format "Gimple", qui est la représentation intermédiaire du code. Lors de la phase d'éditions de liens, il y a donc beaucoup plus d'informations disponibles pour permettre une optimisation entre les modules, par exemple passer certaines fonctions inline bien que leur corps soit dans le fichier source plutôt que l'en-tête. La contrepartie, c'est que cette phase d'édition de lien peut prendre un temps considérable. C'est là qu'intervient le Gold Linker, avec son mode incrémental et son support du parallélisme.