134 liens privés
Mr Mondialisation parle de Bees Coop, le "supermarché" coopératif qui se lance à Bruxelles. J'ai eu des contacts avec eux, ils cherchent des développeurs Python pour adapter des modules Odoo à leurs besoins.
À force de voir passer des articles vantant Neovim, j'ai eu envie d'essayer.
Quelques détails pendant l'installation :
Je suis passé à vim-plug pour la gestion des plugins. C'est vraiment pas mal du tout! Vim-plug télécharge lui-même les plugins via Github.
J'ai eu des soucis avec les plugins utilisant Python (Gundo et NERDTree dans mon cas). On peut tester le fonctionnement de python en tapant dans neovim ":python print 1" (par exemple). Si ça ne renvoie pas "1", on peut trouver de l'aide en tapant ":help nvim-python" directement dans Neovim.
L'aide conseille de faire :
$ sudo pip install neovim
Les plugins ont fonctionné ensuite.
Je vais essayer de faire un article un peu plus détaillé sur mon blog... Si je trouve le temps.
Vitalus, une solution pour utiliser Rsync pour gérer ses backup via Python.
(via http://links.yome.ch/?eJfBFw )
Des clients en ligne de commande pour MySQL et PostgreSQL. Coloration syntaxique, autocomplétion, ... :-)
Un tutoriel expliquant comment envoyer des mails avec Python. Intéressant, je garde ça dans un coin de ma tête. :-)
Installation sur une Debian 8 :
Installer les setuptools de Python ( pour avoir easy_install )
| ========
$ sudo aptitude install python-setuptools
| ========
Installer pip :
| ========
$ sudo easy_install pip
Searching for pip
Reading https://pypi.python.org/simple/pip/
Best match: pip 7.1.0
Downloading https://pypi.python.org/packages/source/p/pip/pip-7.1.0.tar.gz#md5=d935ee9146074b1d3f26c5f0acfd120e
Processing pip-7.1.0.tar.gz
Writing /tmp/easy_install-NyGRPr/pip-7.1.0/setup.cfg
Running pip-7.1.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-NyGRPr/pip-7.1.0/egg-dist-tmp-Hnm6hi
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching '.mailmap'
warning: no previously-included files found matching '.travis.yml'
warning: no previously-included files found matching 'pip/_vendor/Makefile'
warning: no previously-included files found matching 'tox.ini'
warning: no previously-included files found matching 'dev-requirements.txt'
no previously-included directories found matching '.travis'
no previously-included directories found matching 'docs/_build'
no previously-included directories found matching 'contrib'
no previously-included directories found matching 'tasks'
no previously-included directories found matching 'tests'
Adding pip 7.1.0 to easy-install.pth file
Installing pip script to /usr/local/bin
Installing pip2.7 script to /usr/local/bin
Installing pip2 script to /usr/local/bin
Installed /usr/local/lib/python2.7/dist-packages/pip-7.1.0-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip
| ========
Chercher avec pip :
| ========
$ pip search jrnl
klink - Klink is a simple and clean theme for creating Sphinx docs, inspired by jrnl
jrnl - A command line journal application that stores your journal in a plain text file
| ========
Installer jrnl avec pip :
| ========
$ sudo pip install jrnl
Collecting jrnl
Downloading jrnl-1.9.8.tar.gz
Collecting parsedatetime>=1.2 (from jrnl)
Downloading parsedatetime-1.5-py2-none-any.whl (50kB)
100% |████████████████████████████████| 53kB 1.1MB/s
Collecting pytz>=2013b (from jrnl)
Downloading pytz-2015.4-py2.py3-none-any.whl (475kB)
100% |████████████████████████████████| 475kB 771kB/s
Requirement already satisfied (use --upgrade to upgrade): six>=1.6.1 in /usr/lib/python2.7/dist-packages (from jrnl)
Collecting tzlocal>=1.1 (from jrnl)
Downloading tzlocal-1.2.tar.gz
Collecting keyring>=3.3 (from jrnl)
Downloading keyring-5.3.zip (87kB)
100% |████████████████████████████████| 90kB 1.0MB/s
Collecting python-dateutil==1.5 (from jrnl)
Downloading python-dateutil-1.5.tar.gz (233kB)
100% |████████████████████████████████| 237kB 1.3MB/s
Installing collected packages: parsedatetime, pytz, tzlocal, keyring, python-dateutil, jrnl
Running setup.py install for tzlocal
Running setup.py install for keyring
Running setup.py install for python-dateutil
Running setup.py install for jrnl
Successfully installed jrnl-1.9.8 keyring-5.3 parsedatetime-1.5 python-dateutil-1.5 pytz-2015.4 tzlocal-1.2
| ========
Plus qu'à apprendre les commandes par cœur ( voir "$ jrnl --help" ), trouver un moyen pour que toutes les commandes utilisant jrnl ne soit pas stockées dans l'historique et puis synchroniser ça entre les différentes machines.
[Edit 03/11/2015:
J'ai finalement commencé à utilisé "jrnl". Voici quelques commandes de base. Pour éditer les notes, il faut ajouter un éditeur dans ~/.jrnl_config :
| ========
$ cat .jrnl_config
{
"default_hour": 9,
"timeformat": "%Y-%m-%d %H:%M",
"linewrap": 79,
"encrypt": true,
"editor": "vim",
"default_minute": 0,
"highlight": true,
"journals": {
"default": "/home/simon/jrnl/journal.txt"
},
"tagsymbols": "@"
}
| ========
Initialisation du journal (chiffré) :
| ========
$ jrnl now: Titre. Contenu.
Path to your journal file (leave blank for ~/journal.txt):
~/jrnl/journal.txt
Enter password for journal (leave blank for no encryption):
Do you want to store the password in your keychain? [Y/n]
Journal will be encrypted.
[Entry added to default journal]
| ========
Écrire du contenu pour aujourd'hui (à 9am par défaut):
$ jrnl today: Titre. Contenu.
Écrire du contenu pour aujourd'hui à 8pm:
$ jrnl today at 8pm: Titre. Contenu.
Écrire du contenu pour "maintenant" :
$ jrnl now: Titre. Contenu.
OU, simplement :
$ jrnl Titre. Contenu.
Voir le(s) journal(aux):
$ jrnl -ls
Voir le dernier ajout dans le journal :
$ jrnl -n 1
Éditer le dernier ajout dans le journal :
$ jrnl -n 1 --edit
Éditer toutes les notes de 2015 :
$ jrnl -until 2015 --edit
Pour supprimer une note, il faut simplement l'éditer et tout effacer.
Pour ajouter un tag, il suffit de mettre un arobase devant :
$ jrnl Test des @tags.
[Entry added to default journal]
Afficher les notes correspondantes au tag "@tags" :
$ jrnl @tags
2015-11-04 11:19 Test des @tags.
Supprimer toutes les notes contenant le tag "@tags" :
$ jrnl @tags --edit
(et tout effacer avant d'enregistrer.)
[Edit 03/11/2015:
Pour empêcher l'historisation des commandes "jrnl", dans Zsh, on rajoute deux lignes dans le fichier "~/.zshrc" :
| ========
HIST_IGNORE_SPACE="true"
alias jrnl=' jrnl'
| ========
Dans Bash, il faut modifier "~/.bashrc" :
| ========
export HISTCONTROL=ignorespace
alias jrnl=' jrnl'
| ========
Un outil pour faire du scan réseau et bien d'autres choses.
(via http://sebsauvage.net/links/?O4AeMQ et plein de gens.)
Python porté en javascript et donc utilisable depuis un navigateur. Pour la beauté du geste. ;-)
Pratique ! À garder dans un coin. J'aime bien les exemples de codes ( http://permissions-calculator.org/examples/ ). :-)
Je me rends compte que j'ai lu pas mal d'articles sur l'installation de Pelican et que chacun fait ça un peu différemment...
Un autre blog utilisant Pelican. Il utilise Isso pour les commentaires. (Isso que j'essaye péniblement d'installer...)
[autre lien pour installer Isso : https://blog.jeanchampemont.com/installation-serveur-commentaire-libre-isso/
Un article expliquant l'utilisation de la bibliothèque OpenCV pour faire de la détection de visage (et non pas de la reconnaissance...).
Il y a aussi un lien vers un autre article qui explique comment faire pour détecter des bananes.
( http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html )
J'ai continué à jouer avec PyLab en suivant le tutoriel de chabotsi sur "import this" ( https://chabotsi.fr/blog/tracer-une-fonction-avec-python-vagues-ndeg1.html )
Je m'amuse à faire des fonctions simples, juste pour me rendre compte à quel point c'est simple une fois que tout est bien installé.
http://simonlefort.be/zerobin/?982ded2bc4bc1286#OVqQhI/Hh+ihKN9nylBTTY3L6a8FKoQc2phedsmZTTk=
/!\ C'est du code moche avec des tests etc...
Backup Checker, un outil en Python pour vérifier l'intégrité des archives (tar, gz, bzip2, lzma, zip). À tester.
Convertir des graphiques réalisés avec Matplotlib en html pour les utiliser directement dans une page web avec la possibilité de zoomer sur le graphique et/ou de sélectionner des points. Très impressionnant !
La documentation de matplotlib qui permet de faire des graphiques en Python. C'est impressionnant ce qu'on peut faire avec, il suffit de regarder les screenshots pour s'en convaincre ( http://matplotlib.org/users/screenshots.html ). J'adore le "XKCD-style".
La liste des paquets python. Ils annoncent 55 873 packages. J'imagine qu'il y a les paquets pour différentes versions de python et qu'ils ne sont pas tous super stables mais c'est tout de même impressionnant !
Petit tutoriel pour dessiner une vague (une simple fonction cosinus dans un premier temps) avec Python.
Quelques notes :
---> J'ai eu un problème lors de l'affichage de la figure (au moment où on tape "show()" dans l'interpréteur). La fenêtre était vide. Par contre, je pouvais sauvegarder l'image avec un "savefig('fig.pdf')" :
plot(x, y)
[<matplotlib.lines.Line2D object at 0x7fe77aecba50>]
savefig('fih1.pdf') #enregistre un fichier avec l'image
show() #ouvre une fenêtre vide (à part quelques boutons)
Pour résoudre le problème, j'ai du installer "python-gi-cairo" ("sudo aptitude install python-gi-cairo" sous Debian).
J'ai eu d'autres problèmes et je n'ai finalement pas réussis à faire tourner le code chez moi. Par contre au boulot ça tourne du tonnerre.
Quelques tests :
Un cosinus :
http://zerobin.simonlefort.be/?886daf77db59d5d9#BfAi1Ykyftq1OO4HCtyoUncqV7x3NzsfvYu2TcgmEqk=
Un sinus, un cosinus et la somme des deux :
http://zerobin.simonlefort.be/?cda69e419b9545ca#DMJKoEn7MqWhKkaPyzmd3DPX9nkjSLPRm92SYHIMbhg=
Un sinus, deux cosinus et la somme des trois : (on commence à avoir des effets sympas!)
http://zerobin.simonlefort.be/?b1305dba1255dbff#IN96F34hD/Z7cfoDeOWh4t2j0Hgi2nQyNLK5XGCOSUU=
Quelques explications pour transformer Vim en IDE pour Python. (avec autocomplétion, vérification du code, etc..)
On utilise principalement ce module : https://github.com/klen/python-mode#debian-packages
(voir sa doc : https://github.com/vim-scripts/Python-mode-klen/blob/master/doc/pymode.txt#L97 )
Documentation résumée sur le Restructured Text (reST).