Archives de catégorie : geekeries

Hyphe un web crawler pour l’HNA !

Je travaille depuis une semaine pour la Chaire « Capital Environnemental et la Gestion Durable des Cours d’Eau » de la fondation universitaire de Limoges. L’objectif est de travailler sur la dimension collective de gestion de l’eau et plus particulièrement sur les formes sociales qu’elle peuvent prendre.

La première chose que j’ai voulu faire a été de crawler un peu de web pour espérer comprendre comment étaient structurées les organisations autour de la gestion de l’eau sur mon terrain.

Pour cela, j’ai cherché pendant plusieurs heures un outil qui puisse, à partir d’une URL, identifier les liens et retrouver la constellation des renvois que font les sites institutionnels entre eux ; ce que les anglo-saxon appelle le HNA (hyperlink network analysis).

Si ma première réaction a été de me tourner vers R, je n’ai pas vraiment trouvé mon bonheur, et je ne voulais pas ré-écrire un web crawler. Du coup mes explorations m’ont poussé à découvrir :

  • SocNetv (un logiciel de réseau en Qt)
  • voson (un webservice sur inscription)
  • hyphe (un logiciel libre basé sur python et mongoDB)

Il se trouve que j’ai particulièrement aimé ce que propose hyphe, mais il n’est pas (encore) à proprement parlé multi-plateforme. Je me suis dit que ce serait l’occasion de tester Docker qui est une solution de virtualisation d’applications.

Docker quezako

Pour avoir un bon aperçu de ce qu’est Docker pour la virtualisation je vous encourage à lire un très bon post sur le blog de neogeo.

Utiliser Docker c’est magique ! Pour créer un conteneur sous Ubuntu voilà la marche à suivre.

sudo docker run -i -t ubuntu /bin/bash
adduser delaye
apt-get install sudo wget nano
nano /etc/sudoers
nano /usr/sbin/policy-rc.d
exit 0 #à la place de 101

Vous avez alors accès à une machine dans laquelle vous allez pouvoir monter un serveur, une application ou tout autre chose qui peut servir dans la vie d’un chercheur. Mais encore plus fort, vous pourrez déplacer le tout comme un fichier. Ce qui veut dire que vous pourrez échanger avec d’autres vos applications fonctionnelles dans des conteneurs.

Docker + Hyphe = <3

Revenons à nos moutons, la beauté du couple Docker / Hyphe, c’est que vous disposez sur le github de Hyphe d’un Dockerfile. Le Dockerfile vous permet dans un seul ficher texte de définir la configuration d’une application multi-conteneur. Dans notre cas @oncletom nous propose de faire fonctionner hyphe sur 4 conteneurs Docker :

Pour cela vous devez ajouter une brique à Docker : docker-compose. Cette brique s’installe facilement en suivant les indications de la doc.

Une fois que c’est fait, vous pouvez vous rendre dans le répertoire dans lequel vous avez cloné hyphe et lancer l’installation des conteneurs grâce au Dockerfile.

cd github/hyphe/
docker-compose up

Il est temps d’aller prendre un café parce que l’installation prend un certain temps (15 min chez moi). La prochaine fois que vous lancerez l’application avec docker-compose up l’instanciation des composants se fera beaucoup plus rapidement.

Vous accédez à l’application via votre navigateur (pour le moment, Firefox n’est pas supporter et vous devrez utiliser chrome ou chromium) à l’url suivante http://localhost:8000/#/login.

hyphe is workingVous pouvez explorer des projets « test », mais aussi et surtout vous lancer dans un nouveau projet et lâcher vos petits robot dans les méandres de la toile !

hyphe is crawling

Note

Si vous avez besoin de relancer l’installation des conteneurs (s’il y a eu des maj de hyphe par exemple) vous pouvez reconstruire les conteneurs avec

docker-compose build

Fedora : un script post-install pour géographe

Depuis 2011, je prenais soin d’un petit archlinux. Je m’en occupais et faisais bien attention logo Archlinuxà chaque mise à jour, ce qui se révélait parfois sportif, quand tout à coup, sans savoir pourquoi X11 ne répondait plus …

Quand il a fallu rentrer en rédaction de thèse, la première mise à jour difficile m’a fait chercher un système stable… et j’ai essayé Fedora. Voilà maintenant 1 an que je suis donc dans le monde bleu, l’antichambre de Redhat… Et contre toute attente, j’en suis très satisfait. Mais voilà, peut-être à cause du manque de temps, je n’avais pas fait la migration de Fedora 20 à 21… donc il y a quelques semaines, les dernières mises à jour sont arrivées… et rien n’est plus triste que d’avoir un système figé…

Je me suis lancé dans la sauvegarde et la réinstallation du système, mais il faut bien avouer que le pire de tout est la phase de logo Fedorapost-install… les quelques jours où, à chaque besoin logiciel, il faut procéder à une installation.

En soi ce n’est pas forcément problématique, mais en cas de déplacement ou de perte de connexion … rien de plus frustrant. Aussi suis-je partie en quête d’un script de post-install Fedora. J’en ai trouvé un, proposé par Sam Hewitt sur gitHub.

Il ne me restait plus qu’à y ajouter quelques petites choses pour obtenir un beau script de post-install Fedora pour un géographe ! J’ai donc forké !

githuboctacat

On y retrouve toutes les librairies spatiales qui vont bien (gdal, geos, proj4, etc), mais aussi R (et ses packages super comme rgdal, ggplot2, etc), et enfin une fresh build de texlive !

De quoi gagner du temps aux prochaines installations !

ScreenCast facile sous linux

J’utilise depuis 2 ans un très bon framework HTML et JavaScript du nom de reveal pour faire faire mes présentations. Comme on est en HTML, on peut bénéficier du lecteur de vidéo HTML5!

J’ai donc de temps à autre besoin de faire une capture d’écran sous forme de vidéo pour les intégrer aux présentations. Pour cela j’utilise un utilitaire en ligne de commande : recodremydesktop.

Comme près requis, il faut connaître l’ID de la fenêtre à screencaster. Ce qui est possible grâce a :

xwininfo

J’utilise ensuite recodremydesktop en lui indiquant la fenêtre d’intérêt :

recordmydesktop --no-sound --windowid 0x640001

Et parce que c’est pour intégrer ces vidéos dans reveal en html5 il faut faire une petite transformation en webm

ffmpeg -i foo.avi foo.webm

Et voilà ready !

Présentation ThéoQuant

Un petit post rapide au retour de Théoquant 2015 (un grand rassemblement des géographes quantitativistes en France) qui se tient à Besançon tous les deux ans grâce au laboratoire Théma.

IMG_0140

Ces rencontres ont été une belle opportunité de mettre des visage sur des noms et de découvrir des usages (en particulier de modélisation) particulièrement intéressant.

L’occasion également pour moi d’aller présenter le programme vitiTerroir et les approches multi-agents qui vont se mettre en place. On pourra retrouver ma présentation ici sur github.

Un peut d’espace pour openMole

openmoleSi vous voulez passer un de ces jours à openMole, voilà 2-3 astuces :
openMole va demander beaucoup de ressource à votre ordinateur (d’autant plus s’il tourne en local). Il peut donc s’avérer utilise de de pousser un peut les limites du système. ça se passe dans `/etc/security/limits.conf` vous pouvez coller à la fin du fichier de conf

*               hard    as              110000000
 *               hard    rss             100000000
 *               soft    nproc           20000
 *               hard    nofile          50000
 *               soft    nofile          50000

Les limites soft sont celles qui seront allouées par défaut à votre système et les limites hard sont celles que vous pourrez pousser à la main avec la commande ulimit…

Ensuite vous pourrez si le besoin se fait sentir également déverrouiller certaines limites avec :

ulimit -c unlimited

Voilà on est un peut moins à l’étroit pour jouer avec la mole!