PROJET AUTOBLOG


Sam et Max

source: Sam et Max

⇐ retour index

Installer SSH Plus sur Ubuntu

jeudi 24 octobre 2013 à 15:54

Je vous avais parlé de SSH Plus, mais sans mentionner son process d’install, un peu chiant.

Pour rappel, c’est un petit indicateur qui vous permet de lancer une commande arbitraire. Son usage principal est d’ouvrir un terminal qui se connecte immédiatement en SSH à un serveur distant, mais on peut y mettre n’importe quoi.

Pour l’installer :

# on installe les dépendances
sudo apt-get install python-appindicator
# on se calle dans le dossier temporaire
cd /tmp
# on download le script en Python
wget https://raw.github.com/anilgulecha/misc/master/sshplus.py
# on le copie dans le dossier des exécutables
sudo mv sshplus.py /usr/bin/sshplus
# on le rend exécutable
sudo chmod +x /usr/bin/sshplus

Pour le lancer, il n’y a plus qu’à faire :

sshplus

Dans un terminal.

Moi, je le rajoute dans ma liste des programme automatiquement lancé au démarrage, comme ça je n’y pense plus (“Dash” > “Applications au démarrage”).

Après, vous pouvez lui faire lancer les commandes que vous voulez, en les mettant dans le fichier de config (~/.sshplus) en suivant la syntaxe

Nom à afficher|commande|options

Par exemple :

Server Prod 12|guake|-t -n "new" -e "ssh username@adresse_ip"

Ceci va rajouter une entrée dans le menu nommée “Server Prod 12″. Si on clique dessus, ça lance guake -t -n "new" -e "ssh username@adresse_ip", ce qui m’ouvre un nouvel onglet dans mon terminal guake avec lance la commande ssh username@adresse_ip juste après.

flattr this!

Profiter du notebook de IPython

mercredi 23 octobre 2013 à 15:53

IPython est un des outils qui me font trouver la programmation Python plus agréable que dans tous les autres langages : un shell avec tellement d’astuces intégrées que ça donne envie de vomir des arc-en-ciel.

Aujourd’hui je vais vous parler d’une fonctionnalité fantastique est très peu connue de IPython : le notebook.

Si vous êtes scientifique ou manipulez pas mal de graphiques et de données numériques, c’est un must have. Mais personnellement je trouve que c’est aussi un fantastique outil d’éducation, c’est génial pour les cours, les démos, et expérimenter avec du code inconnu.

Ça se présente sous la forme d’un shell IPython intégré dans une page Web, mais que l’on peut avoir sur son desktop, pas besoin d’avoir un serveur distant. Si vous avez un peu de temps, voici une vidéo de démo (avec un musique horrible) :

L’installation sous Ubuntu, c’est juste :

sudo apt-get install ipython-notebook

Pour Windows, il me semble, de mémoire, que c’est intégré dans l’exe. Pour Mac, je ne sais pas.

Et derrière il suffit de lancer la commande :

ipython notebook

Et il va vous ouvrir votre navigateur avec un onglet sur votre notebook.

L’intérêt principal du notebook est que TOUT le code est coloré et est modifiable comme sur dans fichier mais TOUT le code est exécutable (et affiche son résultat juste après chaque ligne) comme dans un shell iPython, avec completion du code. Le meilleur des deux mondes quoi.

En prime on peut embeder du markdown (et donc des liens, des images, etc) dans le même notebook, sauvegarder ça pour plus tard, le partager, etc.

Personnellement, j’ai ceci dans mon .bashrc :

notebook () {
    processes=$(ps aux | grep -i -P "ipython notebook" | wc -l)
    if [[ $processes -lt 2 ]]
    then
        pushd /tmp
        nohup ipython notebook --port 8889 $1 &
        popd
    else
        firefox http://127.0.0.1:8889
    fi
}

Comme ça en une commande je lance le serveur du notebook sur le port que je veux si il ne tourne pas, et si il tourne, j’ouvre firefox et ouvre un onglet dessus.

Quelques autres options très utiles :

–pylab : Charger plein de libs pour transformer IPython en un matlab killer.
–gui=lib : permet d’intégrer l’event loop de QT, wx, gtk, etc.
–ip=0.0.0.0 : si on veut que d’autres puisse accéder à notre notebook.

Il existe un espèce de pastebin spécialement fait pour le notebook, qui permet de partager ses expérimentations.

flattr this!

Rapide test d’Ubuntu 13.10

mardi 22 octobre 2013 à 14:45

Ubuntu 13.10 vient de sortir et j’ai donc fait une micro partition pour le tester.

Installation sans histoire, un peu plus de config que d’hab car il faut virer toutes les merdes intrusives pour la vie privée (mais heureusement, y a des settings pour ça). Pas beaucoup de modifs, apparemment ils ont bossé la vitesse et la stabilité, ce qui est rare pour une non LTS.

Le résultat est qu’on a un OS qui est beaucoup plus stable que ce que Canonical avait l’habitude de donner les premiers jours de release. Et légèrement plus rapide.

En fait je suis tenté de migrer (mais pas con au point de le faire avant quelques mois), c’est globalement agréable à utiliser, épuré et fluide. On a pas encore Mir installé par défaut (OUF), donc ça reste un truc viable, qui tourne bien, avec des paquets plus récents à dispo.

Mon seul chagrin, c’est la nouveau Nautilus. La recherche est maintenant récursive par défaut, et impossible à changer. En prime, plus d’extensions possibles, du coup “open terminal here” et “compare with meld” partent à la poubelle, et je les aimais beaucoup.

flattr this!

Minibelt, la petite soeur de batbelt

lundi 21 octobre 2013 à 12:54

Quand j’ai créé batbelt, j’ai voulu en faire une boîte à outils pour des trucs pratiques qu’on ne trouve pas dans la lib standard, et qui n’ont pas de thèmes particuliers. Une genre de collection de snippets que j’utiliserais pour tous mes gros projets.

Mais voilà, il y a des choses qu’on utilise souvent, et d’autres moins. Et certaines personnes ne veulent pas installer un package complet avec plusieurs modules juste pour quelques fonctions. Surtout que tous les projets ne sont pas des gros projets.

C’est pourquoi j’ai créé minibelt.

C’est un subset de batbelt qui tient dans UN fichier, et qui contient uniquement les fonctions qu’on utilise le plus souvent. Vous pouvez bien sûr l’installer avec pip, mais le plus simple, c’est de juste copier / coller le fichier et le mettre à côté de votre code, puis de l’oublier.

L’autre bonne nouvelle, c’est que puisqu’il y a moins de code, je me suis bougé le cul pour rendre minibelt compatible Python 2 et Python 3 (enfin je crois :-)). Le README contient aussi l’ensemble de la documentation nécessaire.

Peut être même qu’un jour de pluie, j’ajouterai des tests unitaires, soyons fou.

Enjoy.

flattr this!

Calcul décimaux avec norme IEEE 754/854 en Python

dimanche 20 octobre 2013 à 22:25

Peut-on faire titre plus chiant que celui-là, je vous le demande ?

Toujours est-il que cet article n’interessera que des gens parfaitement chiants, à savoir des scientifiques tatillons, mais je sais qu’il y en a dans notre lectorat alors on va leur jeter un os.

Bref, vous savez que la division par zéro en Python, ça lève une exception :

>>>  1 / 0
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-1-b710d87c980c> in <module>()
----> 1 1 / 0
 
ZeroDivisionError: integer division or modulo by zero

Certains esprits chagrins n’aiment pas ce comportement, et voudraient, par exemple, que cela retourne l’infini. Après tout, pourquoi pas.

N’y a-t-il rien qu’on puisse faire pour calmer la rétention anale qui se prépare à cette déconvenue ?

Bien sûr que si, on parle de Python voyons !

>>> from decimal import setcontext,ExtendedContext, Decimal 
>>> setcontext(ExtendedContext)
 
>>> 1 / Decimal(0)
Infinity
>>> -1 / Decimal(0)
-Infinity

Voilà. Si vous êtes une personne normale et manipulez des objets concrets comme des sous, des joujoux, des choux non additionnés avec des carottes ou des hashtags, les réglages par défaut sont parfaits. Mais si vous êtes un fan de scipy, traitant des matrices par bottes de douze, ça peut servir.

Spéciale dédicace à mes amis au CNRS. Bisoux partout !

flattr this!