comments
28/04/2013 14:45:00
Introduction
Pendant un moment j'utilisais mutt puis j'avais arrêté, je m'étais laissé
séduire par une interface dont je vais taire le nom. Finalement, je reviens à
mutt c'est vraiment ce qui se fait de mieux. Je pense que l'une des raisons à
la base de mon changement était du au fait que je ne l'avais pas spécialement
configuré correctement cette fois-ci j'ai pris le temps et je vais certainement
continuer à ajouter des choses, je vais d'ailleurs faire je pense une série
d'article sur ma configuration, les différents outil que j'utilise avec,
et les raisons de mon retour sur mutt.
Goobook
Il est pratique de pouvoir avoir sa liste de contact et pouvoir bénéficier de
completion lors de l'écriture de mail. Goobook est un petit projet développé en
Python et disponible sur pypi. Il permet d'accèder à sa liste de contacts
google en ligne de commande, il est donc possible facilement de l'intégrer
et l'utiliser avec mutt. Il permet aussi d'ajouter de nouveaux contacts.
Installation
Le projet est disponible sur pypi, il suffit donc d'utiliser pip:
sudo pip install goobook
Pour le coup je l'installe sur le système et pas dans un virtualenv, c'est pour
cette raison que j'utilise la commande sudo.
Configuration
Il y a un petit fichier de configuration pour indiquer notamment son adresse et
mot de passe:
[DEFAULT]
email: user@gmail_or_your_domain.com
password: mot_de_passe
cache_filename: $HOME/.goobook_cache
cache_expiry_hours: 2400
Insérer ces lignes dans le fichier $HOME/.goobookrc.
Utilisation en ligne de commande
La commande reload permet de mettre à jour le cache goobook et récupérer sa liste
de contact google:
goobook reload
Pour chercher un contact il faut utiliser la commande query:
goobook query nom
Il est aussi possible d'ajouter un contact:
goobook add "nom prénom" adresse@nom_de_domaine.com
Utilisation dans mutt
L'intérêt maintenant c'est de l'utiliser avec mutt, pour chercher un contact
il faut ajouter ceci dans le fichier muttrc:
set query_command="goobook query '%s'"
bind editor <Tab> complete-query
Maintenant lors de l'envoi d'un mail, il est possible d'utiliser la tabulation
pour completer l'adresse mail.
Il est aussi possible d'ajouter un contact:
macro index,pager a "<pipe-message>goobook add<return>" "add the sender address to Google contacts"
Sur la liste de mail, placer le curseur sur un mail et appuyer sur a pour ajouter
l'adresse aux contacts google.
Problème avec certaines adresse
Lorsque j'ai commencé à utiliser goobook, j'ai eu un problème. Certaines
adresses étaient bien dans le cache goobook, mais je n'arrivais pas à les avoir
avec la commande query par exemple. Google a ajouté une notion de tri pour les
adresses mail, fonctionnalités que je n'utilise pas. Les contacts se trouvant
dans Autres contacts tant-donné qu'ils ne sont pas
triés ne sont pas accessible. Pour résoudre le problème il faut trier les contacts
pour ma part j'ajoute tout dans Mes contacts. Merci à marcel pour
son article qui m'a permis de résoudre mon problème.
Conclusion
Un outil vraiment pratique qui me manquer dans mutt, c'est pratique d'avoir la
complétion de ses conctats.
comments
09/04/2013 19:30:00
Introduction
Bien que le développement soit un métier individuel on est rarement plusieurs à
coder ensemble mise à part lorsqu'on fait du pair-programming mais ce qui reste
assez rare. Malgré tout, il arrive parfois qu'on est besoin d'aide car nous
sommes bloqué sur un bout de code qui nous résiste et nous savons que des yeux neufs peuvent
parfois débloquer la situation, ou encore parce-que nous avons besoin d'une review.
C'est dans ces moments qu'intervient les pasteurs. Je remercie tshirtman
qui m'a pointé un super plugin Vim gist-vim qui utilise comme son nom l'indique
le pasteur de github qui est vraiment très bien. Le plugin a été initié
par mattn il est donc de très bonne facture.
Installation
J'utilise Vundle pour ma part donc pour les personnes dans le même cas, ajouté
ceci:
Bundle 'mattn/gist-vim'
Sauver puis lancer:
:BundleInstall
Configuration github
Pour commencer il faut configurer son compte github, le plugin utilise l'api
v3. Il est possible de stocker son nom d'utilisateur et son mot de passe dans
un fichier, mais ce n'est pas recommandé.
Il est plus prudent d'utiliser Oauth pour ça il suffit de configurer son
utilisateur github dans le fichier de configuration git:
git config --global github.user nom_utilisateur
A la première utilisation gist.vim demandera le mot de passe pour créer une
autorisation.
Utilisation
Pour paster tout le contenu du fichier, il suffit d'utiliser la commande Gist:
:Gist
Par défaut les pastes sont en mode privé.
Il est aussi possible de sélectionner une portion à paster, utiliser le mode visuel:
:'<,'>Gist
Si le plugin est configuré en mode privé, il est possible de demander un paste
public:
:Gist -P
Si le plugin est configuré en mode publique, il est possible de demander un paste
privé:
:Gist -p
Il est possible de créer un paste anonyme:
:Gist -a
Une option que je n'ai pas encore utilisé mais qui peut s'avérer utitle, c'est
de paster un gist de tous les buffers ouverts:
:Gist -m
Si vous avez une erreur dans un de vos pastes et qu'il faut l'éditer c'est aussi
possible, il faut cependant qu'un buffer avec le gist soit ouvert:
:Gist -e
Une fois paster un gist n'a pas de durée de vie, il est donc bon de faire un peu
le ménage de temps en temps, encore une fois le gist doit être au préable ouvert:
:Gist -d
Il est aussi possible de lister vos gist:
:Gist -l
Pour ouvrir l'un des gist de la liste il suffit d'appuyer sur entrée, le gist
s'ouvre dans un buffer splitter de manière horizontale, pareil que pour la liste.
Il est aussi possible de lister les gist d'un utilisateur:
:Gist -l utilisateur
Ou encore tous les gist:
:Gist -la
Il est possible de forker un gist si il est ouvert:
:Gist -f
Si un gist vous plait, il est possible de lui ajouter une étoile:
:Gist +1
Si au contraire vous vous êtes trompés et vous souhaitez retirer votre étoile:
:Gist -1
J'ai listé les principales commandes qui me paraissent les plus utiles et les plus
utilisées, il en existe encore d'autres pour le reste je vous laisse lire la
documentation du plugin.
Configuration
Il est possible de configurer quelques options. Comme par exemple indiquer si
les gist doivent être publique ou non par défaut. Toutes ces variables de
configurations sont à ajouter dans le fichier de configuration vim le vimrc.
Pour indiquer de détecter le type de fichier, qui est le fonctionnement par
défaut:
let g:gist_detect_filetype = 1
Pour demander à ouvrir le gist automatiquement après l'avoir posté:
let g:gist_open_browser_after_post = 1
Indiquer le navigateur à utiliser:
let g:gist_browser_command = 'chromium %URL% &'
Spécifier de montrer aussi les gist privés avec la commande Gist -l:
let g:gist_show_privates = 1
Indiquer que les gist doivent être privés, fonctionnement par défaut:
let g:gist_post_private = 1
Il est aussi possible d'utiliser github enterprise et donc de spécifier l'url:
let g:github_api_url = 'http://your-github-enterprise-domain/api/v3'
Il y a encore d'autres possibilités, voir la documentation du projet pour le
reste.
Conclusion
Un article assez simple qui reprends globlament la documentation pour vous
présenter un plugin très pratique et intéressant. Comme on peut le constater
le plugin utilise l'api de github et il s'avère très complet.
comments
13/02/2013 22:30:00

Introduction
Montrer votre amour pour le logiciel libre, et dites aux développeurs que vous
les aimer pour la saint-valetin.
Lorsque j'étais au fosdem cette année, je suis passé par le stand de la fsfe
sur lequel j'ai acheté un pullover, après mon achat la personne qui me l'avait vendu,
m'a présenté les prochains mouvements de la fsfe. J'ai trouvé l'idée du Valentine day
intéressante et amusante.
Le principe
Chaque jour, nous utilisons des logiciels libres et nous en sommes contents. On
écrits des rapports de bugs, on indique les améliorations à apporter aux
logiciels, ou on rapporte des bugs, et on ne prend pas toujours des pincettes.
Pour encourager les developpeurs de logiciel libre, il existe le jour du I love free software.
Voici une liste de suggestions:
- Ecrire un mail, ou twetter, aux contributeurs pour leurs
dire à quel point vous aimer ce qu'ils font,
- Inviter son contributeur favoris à prendre un verre. Ou une autre personnes et
pendant ce moment de partager, présenter votre logiciel libre favoris,
- Donner à un hug à un contributeur (demander lui la permission avant),
- Prennez une photo de vous, montrer votre feeling pour le logiciel libre, et
poster ça en ligne,
- Faire une donation pour la fsfe ou toutes autres iniative en faveur du
logiciel libre pour exprimer sa gratitude. Ils dépendent de vos contributions
pour pouvoir continuer leurs travail,
- Pour finir vous pouvez aider à diffuser la bannière, par mail, ou réseaux
sociaux avec le hashtag ilovefs.
Conclusion
Une iniative que je trouve plutôt agréable et sympathique, ça ne coûte rien, et
ça fait toujours plaisir, je pense. Bien que je sois un tout petit contributeurs, si vous
voulez me faire passer un message, ça m'aidera à me remotiver pour coder plus et
avancer.
comments
12/02/2013 21:55:00
Introduction
Il y avait un petit moment déjà que le projet n'avait pas beaucoup bougé. J'ai
lu un livre sur Vim il y a peu de temps, et j'ai découvert un concept
intéressant, la possibilité d'avoir des tooltips sur des onglets.
Nouvelle fonctionnalités
Je peux comprendre qu'il peut être contraignant d'avoir un écran splitté
lorsqu'on ouvre un fichier pour avoir des tips Vim qui s'affiche, cependant ça
ne signifie pas forcément qu'on ne souhaite pas avoir des tips. J'ai donc pensé
qu'il pourrait être intéressant d'implémenter ce fonctionnement lorsqu'on utilise
Gvim, ça peut être une bonne alternative, à la place d'avoir les tips dans
le buffer.
Fonctionnement
J'utilise l'option guitabtooltip de Vim pour pouvoir faire ça, j'ai ajouté
une option fortune_vimtips_display_in_tooltip qui est fausse par défaut.
Bien-sûr cette nouvelle fonctionnalités fonctionne uniquement pour Gvim et non
pour Vim. Pour l'activer il faut donc ajouter cette ligne dans son vimrc:
g:fortune_vimtips_display_in_tooltip = 1
Conclusion
Un peu d'autopromotion ça fait pas de mal. Un petit article pour présenter une
petite fonctionnalité, mais qui je pense peut intéresser des gens.
Drapeau En Fortune vimtips
comments
16/01/2013 22:20:00
Introduction
J'ai déjà présenté un repl en Perl, il y a quelques temps de ça PerlConsole,
développé par Sukria, je fais pas mal de Python maintenant, j'en ai donc
cherché pour ce langage. L'interpréteur par défaut Python offre un repl, mais
je le trouve un peu rudimentaire.
Installation
Pour une distribution Debian et ses dérivées il est packagé, et si vous utiliser
l'interprète du système il suffit donc d'utiliser apt-get:
sudo apt-get install bpython
J'ai pour habitude d'utiliser virtualenv qui est vraiment génial, pour lequel
je ferai un article plus tard, dans ce cas, il est aussi bien de l'installer par
projet, déplacer vous dans le répertoire bin à la racine de votre projet après
l'avoir activé et utiliser pip:
source bin/activate
cd Project/bin
./pip install bpython
Utilisation
L'utilisation est vraiment très simple et agréable. Il n'y pas grand chose à
connaitre pour l'utiliser, et un récapitulatif des commandes et lister en bas
de l'écran. Lorsque vous lancez bpython et que vous commencer à taper le nom
d'une méthode vous pourrez bénéficier de la complétion via la tabulation, il va
ouvrir une bulle avec les différentes fonctions matchées, ce qui est intéressant
c'est qu'il affiche aussi la documentation de la dite fonctions, par exemple:
bpython
>>> set(
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ set: (obj, ...) │
│ x.__init__(...) initializes x; see help(type(x)) for signature │
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
>>> date = datetime.datetime.now()
>>> date.
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│astimezone combine ctime date day dst │
│fromordinal fromtimestamp hour isocalendar isoformat isoweekday │
│max microsecond min minute month now │
│replace resolution second strftime strptime time │
│timetuple timetz today toordinal tzinfo tzname │
│utcfromtimestamp utcnow utcoffset utctimetuple weekday year │
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ce qui est très intéressant. Ensuite l'autre aspect que je trouve utile,
c'est le fait de pouvoir paster directement via une touche ce qui est affiché
à l'écran avec F8, il utilise bpaste.net, le pasteur de bpython. Il est aussi
possible de nettoyer ce qui est à l'écran avec la touche ctrl+r. La touche
F2 permet d'afficher le source d'un module autre point très fort:
bpython
>>> import json
>>> json
r"""JSON (JavaScript Object Notation) <http://json.org> is a subset of
JavaScript syntax (ECMA-262 3rd edition) used as a lightweight data
interchange format.
:mod:`json` exposes an API familiar to users of the standard library
:mod:`marshal` and :mod:`pickle` modules. It is the externally maintained
version of the :mod:`json` library contained in Python 2.6, but maintains
compatibility with Python 2.4 and Python 2.5 and (currently) has
significant performance advantages, even without using the optional C
extension for speedups.
Taper le nom du module appuyer sur F2 un pager s'ouvre avec le code source. Je
n'ai bien-sûr pas tout pasté dans l'exemple ci-dessus. En revanche, ça ne fonctionne
pas pour les fonctions builtin.
Un autre aspect très bien offert par bpython et de pouvoir sauver ce qui
est à l'écran dans un fichier, par exemple:
bpython
>>> import datetime
>>> date = datetime.datetime.now()
>>> print date.hour
23
Il est alors possible de faire ctrl+s pour sauver ces instructions dans un fichier,
ce qui va donner:
import datetime
date = datetime.datetime.now()
print date.hour
# OUT: 23
On peut constater des commentaires avec la valeur affichée par le print. Cette
fonctionnalité peut s'avérer très utile, lorsqu'on tests des choses, dont on
pourrait avoir besoin plus tard.
Conclusion
Un projet très intéressant moins puissant que ipython mais plus userfriendly
est très largement suffisant, et beaucoup plus agréable que celui par défaut. Je
le recommande vivement à tout développeur Python, qui devrait toujours avoir un
terminal d'ouvert sur un repl pour pouvoir tester rapidement des petits bout de
codes, fonctions ou méthodes. Je pense que ce petit repl change vraiment la vie
d'un développeur.
First page: First page
Next page: 2
Last page: Last page