mardi 23 avril 2013

Coder efficacement avec Emacs - Partie 7 - Tramp mode

Le mode "Tramp" d'Emacs permet d'éditer des fichiers distants, typiquement par ssh. En plus de l'édition, toute une série de modes fonctionnent également en distant, notamment la compilation et le debug.

Ma découverte du mode Tramp a commencé lorsqu'il a fallu que je développe depuis ma machine de bureau Windows sur des serveurs Linux situés un peu plus loin que d'habitude. Tout d'un coup, mon installation habituelle à base de Putty + Exceed ou XMing (des serveurs X pour Windows) était horriblement lente. C'est parce que le protocole X est fait pour des réseaux locaux à basse latence, et devient complètement inutilisable même avec 1ms de délai. Une solution est d'utiliser VNC, qui est bien plus efficace dans ces conditions. Une autre est de faire tourner Emacs sur sa machine locale et d'utiliser Tramp.

Son utilisation est simple: il suffit d'ouvrir un fichier via C-x C-f et d'utiliser la syntaxe /ssh:user@machine:~/chemin. L'auto-complétion fonctionne, et l'on peut aller chercher son fichier. Une fois ouvert, on l'édite normalement, et on le sauve sur le chemin distant de manière complètement transparente.

Mais ce sont les modes de compilation et le mode gud qui rendent la fonctionnalité si utile. Une fois un fichier ouvert en distant, une commande de compilation, ou une ouverture du debuger se fera également en distant.

La réactivité d'une application locale, comme si on tournait là-bas!

mercredi 10 avril 2013

Meuh

Un bon mal de crâne avec le framework Android qui n'en fait qu'à sa tête, très mal au bras droit après avoir importé 280 pages dans Confluence parce que mes admins ne savent pas automatiser la chose, des tests unitaires qui foirent parce que l'on a perdu de gros fichiers de données qui seront très difficile à régénérer, la découverte que notre stratégie de gestion des fuseaux horaires est complètement foireuse, mon moral de programmeur n'est pas au beau fixe. Et pourtant, j'ai réussi à convertir mon équipe à IRC, j'ai gagné la bataille des bases de données en imposant Postgresql, et j'arrive à développer sur des machines situés sur des réseaux à haute latence sans avoir à utiliser VNC (simple snobisme), grâce au mode Tramp d'Emacs dont il faudra que je vous cause plus avant. Finalement, les choses vont plutôt bien!