397 liens privés
Python to Debian source package conversion utility
Petit script python pour archiver et éventuellement supprimer ses tweets.
Ca s'appuie sur l'API, il faut donc créer une app twitter pour cela.
J'en avais créé une à l'époque où ils ne demandaient pas de numéro de téléphone, ça a visiblement changé.
Le script permet donc de sauvegarder les tweets dans un format texte dont voici un exemple (c'était mon premier tweet, notez l'originalité):
"""
Tweet id: 157061473858887680 -- Date: Wed Jan 11 11:29:08 +0000 2012 || hello world :) #helloworld
"""
A noter que la fonction d'archivage json de twitter est en panne depuis 1 mois quasiment:
https://twitter.com/search?q=archive%20twitter%20%40support&src=typd&vertical=default&f=tweets
Pour la partie serveur, j'utilise jolokia dont le jar est chargé en tant qu'agent de la jvm, de cette façon:
-javaagent:/var/lib/tomcat8/lib/jolokia-jvm-agent.jar=port=7777,host=localhost,agentContext=/jolokia
Pour la partie cliente, j'utilise la lib python 'pyjolokia': https://github.com/cwood/pyjolokia . Ce client me permet de faire un monitoring de la JVM en python. Ce qui est appréciable.
Voici ma méthode pour lister les mbeans, en mode intéractif via une console python:
initialisation
from pyjolokia import Jolokia
j4p = Jolokia('http://localhost:7777/jolokia/')
lister les mbeans dans java.lang:*
j4p.request(type = 'search', mbean='java.lang:')
{u'status': 200, u'timestamp': 1429886584, u'request': {u'type': u'search', u'mbean': u'java.lang:'}, u'value': [u'java.lang:name=Metaspace,type=MemoryPool', u'java.lang:type=Runtime', u'java.lang:type=Threading', u'java.lang:type=OperatingSystem', u'java.lang:name=Code Cache,type=MemoryPool', u'java.lang:type=Compilation', u'java.lang:name=G1 Young Generation,type=GarbageCollector', u'java.lang:name=CodeCacheManager,type=MemoryManager', u'java.lang:name=Compressed Class Space,type=MemoryPool', u'java.lang:type=Memory', u'java.lang:name=G1 Eden Space,type=MemoryPool', u'java.lang:name=G1 Old Gen,type=MemoryPool', u'java.lang:name=G1 Old Generation,type=GarbageCollector', u'java.lang:type=ClassLoading', u'java.lang:name=Metaspace Manager,type=MemoryManager', u'java.lang:name=G1 Survivor Space,type=MemoryPool']}
lister les attributs d'un mbean en particulier, par exemple java.lang:name=G1 Old Generation,type=GarbageCollector
j4p.request(type = 'list', path='java.lang/type=GarbageCollector,name=G1 Old Generation')
{u'status': 200, u'timestamp': 1429886821, u'request': {u'path': u'java.lang/type=GarbageCollector,name=G1 Old Generation', u'type': u'list'}, u'value': {u'attr': {u'CollectionTime': {u'rw': False, u'type': u'long', u'desc': u'CollectionTime'}, u'LastGcInfo': {u'rw': False, u'type': u'javax.management.openmbean.CompositeData', u'desc': u'LastGcInfo'}, u'Name': {u'rw': False, u'type': u'java.lang.String', u'desc': u'Name'}, u'ObjectName': {u'rw': False, u'type': u'javax.management.ObjectName', u'desc': u'ObjectName'}, u'Valid': {u'rw': False, u'type': u'boolean', u'desc': u'Valid'}, u'MemoryPoolNames': {u'rw': False, u'type': u'[Ljava.lang.String;', u'desc': u'MemoryPoolNames'}, u'CollectionCount': {u'rw': False, u'type': u'long', u'desc': u'CollectionCount'}}, u'desc': u'Information on the management interface of the MBean'}}
Voila voila, c'est un peu austère comme méthode mais ça marche.
Utiliser les virtualenv python pour du ruby. Exemple:
"""
mkvirtualenv test
workon test #if not already inside
gem install sass
which sass #> $VIRTUAL_ENV/lib/gems/bin/sass
"""
Un vrai virtualenv pour ruby, pas comme ce dont j'avais parlé ici (rvm) https://jeekajoo.eu/links/?sj8xXQ qui permet surtout d'installer des gem dans son homedir et de les isoler par version de ruby.
Une liste bien complète de générateurs de sites web statiques (html + css + js 'client').
A vous de choisir celui qui vous convient le mieux.
Pour ma part j'ai choisi pelican, logiciel notamment utilisé par kernel.org et bits.debian.org.
via les slides d'un developpeur de pelican http://justinmayer.com/talks/scale13x/rise-static-site-generators/
"""
It's AdBlock for Real Life.
"""
(camera + lunettes + écran) + (python + OpenCV + SIFT Brute-force Matcher) + banque d'images logo / publicité
des exercices pour manipuler des données via du code python afin de résoudre des problèmes
ça commence au niveau débutant
Flux Atom du Zapping de Canal+ : http://feed.cicogna.fr/zapping.atom
Flux Atom des Guignols de l'info : http://feed.cicogna.fr/guignols.atom
Flux Atom du petit journal : http://feed.cicogna.fr/lpj.atom
Flux Atom de Groland : http://feed.cicogna.fr/groland.atom
hum pas mal
donc pew remplace virtualenvwrapper dont j'ai déja parlé ici https://jeekajoo.eu/links/?-nQXbg
venv stockés ici: ~/.local/share/virtualenvs
pour apprendre à logguer en python, notamment en remote.
ok, je crois avoir compris que tu as raison ^^" #n00b
quelques notes pour moi-même: https://paste.jeekajoo.eu/?8b1657b49feb2641#eCqJLXJRTOmJzwksH5bGXEhTfEiY1mPqsBROeN4AtuY=
une lib python pour intéragir avec github via les api
pour l'instant il n'y a que github: http://seveas.github.io/git-spindle/github.html
gitlab pourrait également être de la partie si on en croit la doc.
via https://olivier.dossmann.net/liens/index.php (pas de permalink sur le shaarli)
gros listing de ressources python
via @sam_et_max
"""
...
I don’t trust python system packages : half are rotten. Virtualenv + Pip, just for providing a tool inside Docker? Oversized.
Lets PEX. PEX is one of the secret weapons of Twitter. PEX is for Python EXecutable. PEX is a single file, embeding dependencies and an executable module. This file is a ZIP archive. The ZIP format accepts arbitrary headers, and python can load modules in a ZIP, PEX married both.
...
"""
pex est un outil plutôt cool pour packager des applis python.
on est pas obligé d'utiliser docker pour en avoir besoin.
doc: http://pex.readthedocs.org/en/latest/
video: http://www.youtube.com/watch?v=NmpnGhRwsu0
logiciel de blogging en python.
c'est basé sur sphinx.
c'est une alternative à pelican (http://blog.getpelican.com/) que j'utilise et recommande.
une lib python pour automatiser l'extraction d'informations sur le web. Je cite ce qu'elle est capable de "scrapper":
"""
Main text of an article
Main image of article
Any Youtube/Vimeo movies embedded in article
Meta Description
Meta tags
"""
peut-être intéressant pour faire un clone de rss-bridge mais en python.
Version complète html du bouquin qui s'adresse à des pures débutants. Le seul prérequis c'est de comprendre un minimum l'anglais.
On trouve la version pdf et les vidéos associées en torrent.
Légalement ça coute $30 (https://paydiv.io/products/contents/2/): c'est typiquement le truc que je vous encourage à faire passer en note de frais si votre entreprise le permet.
Si j'en parle c'est que j'ai testé. Les cours sont bien fouttus et on apprend vite. Si vous avez envie d'apprendre python et que vous n'avez aucune connaissance dans ce language, foncez!
Via https://github.com/rasbt/python_reference où vous trouverez d'autres ressources.