Table of Contents
Commit 2014-06-04
Linux sur garfield
Ce commit est mon premier commit depuis ma nouvelle installation Linux. Beaucoup de choses ont dû être configurées pour obtenir un environnement de développement un peu correct. Au final, je suis plutôt satisfait; le but étant à moyen terme, de faire du parallèle avec Metafor (MPI, etc.)
Pour ceux qui voudraient un jour passer du côté microfuck de la force, voici ce que j'utilise:
- OS: Xubuntu: pourquoi Ubuntu? c'est une des versions des plus populaires. De plus, elle est basée sur Debian qu'on utilise sur les stations. Apprendre à mieux utiliser Ubuntu, c'est apprendre aussi à mieux utiliser les stations. Pourquoi la version Xubuntu? Je trouvais Unity pas très pratique.
- libs de Luc: rien ne doit être recompilé sous Linux pour pouvoir compiler Metafor! On peut utiliser les depots officiels ubuntu! (sauf pour tetgen)
- Environnement de développement: j'ai choisi Eclipse. Cet environnement est aussi bien, voire meilleur, que le visual studio. Quelques avantages d'Eclipse sur Visual Studio, outre sa gratuité:
- Possibilité de faire du developpement python dans un projet C++.
- Debugging de cas tests possible (points d'arrêt dans des jeux de données)
- Projet beaucoup plus “geek”: on voit tout, y compris l'intérieur des bibliothèques dynamiques (cfr
depends.exe
sous windows) - Intégration SVN (et git) dans le même environment. Le “repo browser” est vraiment très bien fait.
- Editeur: pour l'instant j'utilise gedit, emacs et vi; parfois Eclipse… J'ai pas encore vraiment décidé lequel est le meilleur pour remplacer EditPad Pro.
- Diff viewer: J'utilise Meld pour les diffs de répertoires et Eclipse pour les
svn diff
. Ca ressemble à Araxis Merge et c'est gratuit. - Batterie Windows: une Virtualbox permet de faire passer la batterie sous Windows. J'ai actuellement quelques problèmes de perfs liés aux accès disques.
- Intégration SVN/explorateur de fichier: Aïe, c'est le point faible… Je n'ai rien trouvé de convaincant actuellement. En pratique, j'essaye de m'en passer. Je me débrouille avec d'une part Eclipse et d'autre part RapidSVN.
- Backups du travail: FreeFileSync. C'est un programme similaire à SyncBack SE… Il fait plus ou moins le même job (mais il est plus laid).
- Bureau à distance: J'utilise NoMachine. Ca marche assez bien pour se connecter sur des machines Windows ou se connecter de chez soi sur son PC.
- Captures d'écran/retouches rapides d'images: J'utilise gimp mais je vais essayer de trouver quelque chose de moins lourd, similaire à IrfanView sous Windows.
Vous allez me dire: “OK, mais Linux, c'est laid”. Je confirme: c'est pas très très joli… ça fait parfois même un peu mal aux yeux… mais c'est pratique une fois que c'est bien configuré et c'est très rapide. Pour rappel, Metafor tourne 10% plus vite sous Linux que sous Windows. Et puis quelle satisfaction de voir son imprimante imprimer en A4 par défaut (au lieu du format Letter) après une journée de recherche sur le web et d'essais infructueux!
Venons-en aux modifs de ce commit:
CMake
- Adaptation des configs
ubuntu.cmake
etubuntu-icc.cmake
que j'utilise sur garfield. - Modification de
FindMKL.cmake
pour pouvoir compiler avec l'environnement Ubuntu actuel.
LicenseManager
- Suite au partage de Metafor avec l'ENIT, Olivier Pantalé a adapté la lecture des adresses MAC lors de la vérification de licence pour que ça marche même si l'ordinateur ne possède pas de carte ethernet (
ethX
). Dans ce cas, les adresses MAC des cartes wifi (wlanX
) peuvent être utilisées pour identifier la machine.
NodalInternalFieldValueExtractor
- Dans le cas de l'utilisation de ressorts, il n'était pas possible de sortir facilement la force interne en un noeud si ce noeud était également relié à un maillage volumique. En effet, les éléments volumiques retournaient “0” vu qu'ils n'ont pas de force interne de ressort et ça s'arrêtait là. Maintenant, la demande est transférée aux ressorts et une valeur non nulle est sortie.
— Romain BOMAN 2014/06/04 07:22