Qu’est-ce que #python ?
▻http://openclassrooms.com/courses/apprenez-a-programmer-en-python/qu-est-ce-que-python
Un #cours complet pour débuter la #programmation en python 3
Qu’est-ce que #python ?
▻http://openclassrooms.com/courses/apprenez-a-programmer-en-python/qu-est-ce-que-python
Un #cours complet pour débuter la #programmation en python 3
Bokeh - a Python interactive visualization library
▻http://bokeh.pydata.org
#Bokeh is a #Python interactive visualization library that targets modern web browsers for presentation. Its goal is to provide elegant, concise construction of novel graphics in the style of #D3.js, but also deliver this capability with high-performance interactivity over very large or streaming datasets.
Visualizing distributions of data
▻http://nbviewer.ipython.org/github/mwaskom/seaborn/blob/master/examples/plotting_distributions.ipynb #visualization #python
Aside, I’m just realizing that the illustrations are inline base64-encoded #PNG I didn’t know one could just <img src='https://seenthis.net/data:image/png;base64,whatever'> - one can completely self-enclose an #HTML page with its images !
By the way, these sets all have the same mean, median and variance. Lesson: Always visualize !
@Fil si ça t’intéresse, il y a aussi ▻http://www.bortzmeyer.org/python-imap-upload.html
“Creating Twitter bots, automated text-generators that spew spam, poetry, and other things, can be a bit of a confusing process. This tutorial will hopefully get you through the tough bits and make bot-building possible!”
▻http://www.jeffreythompson.org/blog/2013/12/02/tutorial-twitter-bots
#twitter #bots #programming #Python
The Return of “The Return of Peer to Peer Computing”. - Nicholas Tollervey
▻https://www.youtube.com/watch?v=xxSKmecZ09E
At last year’s Europython Holger Krekel gave a keynote called “The Return of Peer to Peer Computing”. He described how developers, in light of the Snowden surveillance revelations, ought to learn about and build decentralized peer-to-peer systems with strong cryptography. This talk introduces, describes and demonstrates ideas, concepts and code that a group of Pythonistas have been working on since Holger’s keynote.
We asked ourselves two questions: what are the fundamental elements / abstractions of a peer-to-peer application and, given a reasonable answer to the first question, what can we build? We will present work done so far, discuss the sorts of application that might be written and explore how peer-to-peer technology could be both attractive and viable from an economic point of view.
#p2p #politique #centralisation #programmation #surveillance #python #cccp via @karlpro
cf ►http://redecentralize.org
Install Scientific Python on Mac OS X | Pen and Pants
▻http://penandpants.com/2013/04/04/install-scientific-python-on-mac-os-x
sur 10.9.4 j’ai suivi cette doc ; seule modif : gfortran est désormais dans gcc
#scipy #numpy #pandas #openblas #matplotlib #ipython #python
Don’t use Hadoop - your data isn’t that big - Chris Stucchio
▻http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html
In addition to being more difficult to code for, Hadoop will also nearly always be slower than the simpler alternatives. SQL queries can be made very fast by the judicious use of indexes - to compute a join, PostgreSQL will simply look at an index (if present) and look up the exact key that is needed. Hadoop requires a full table scan, followed by re-sorting the entire table. The sorting can be made faster by sharding across multiple machines, but on the other hand you are still required to stream data across multiple machines. In the case of processing binary blobs, Hadoop will require repeated trips to the namenode in order to find and process data. A simple python script will require repeated trips to the filesystem.
#PANDAS : #Python #Data_Analysis Library
▻http://pandas.pydata.org
pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.
L’INE (l’INSEE bolivien) est en train d’élaborer un code pour référencer de manière unique les quartiers (urbains) et les communautés (rurales).
Pour éviter toute interprétation politique dans un pays où les limites territoriales ne sont pas définies partout, il a été décidé que le code n’aurait pas de référence administrative (dans tel département, dans telle ville) mais au contraire seulement une référence géographique.
Dans un premier temps, il a été décidé que, pour chaque quartier ou communauté (auquel correspond un polygone de limite territoriale), la référence sera le centroïde du polygone (en gros, le centre de gravité, toujours inclus dans le polygone). Et une des possibilités est d’utiliser le geohash de ce point central comme code de référence du quartier ou de la communauté.
GeoHash est un algorithme qui transforme (latitude,longitude) en un code, par exemple : (57.64911,10.40744)
devient u4pruydqqvj
. Chaque caractère additionnel augmente la précision.
►https://en.wikipedia.org/wiki/Geohash
Le GeoHash est réversible, ce qui signifie que la connaissance du code permet de retrouver latitude et longitude avec une certaine précision, qui dépend du nombre de caractères du geohash. Par exemple, avec 8 caractères, la précision est d’à peu près 50m.
Par contre, ayant réduit le polygone à un simple point, il n’est pas possible de revenir au polygone à partir du geohash, même pas à une approximation grossière.
Dans la deuxière étape, on aimerait donc pouvoir coder les polygones, et non pas simplement leurs centroïdes.
Le souci, évidemment, est la taille du code résultant. Imaginons la méthode suivante : simplifier le polygone en le remplaçant par sa « bounding box », c’est à dire le « rectangle » qui contient le polygone (latitudes et longitudes min et max). Pour coder le polygone à partir de ces 4 points en concaténant leurs geohash, il faut 4 fois plus de caractères, disons 8x4=32 caractères. On peut imaginer comprimer pour arriver à 16 caractères, puisque les 4 geohash auront une grande partie en commun.
Pour coder très grossièrement le polygone, on multiplie déjà par deux la longueur du code. Et on aimerait pouvoir définir de façon beaucoup plus précise les polygones, avec 10 points par exemple. Plusieurs possibilités :
– geohash de chaque point du polygone, concaténation de tous les geohashs, puis compression de cette concaténation - un seul code, mais très long et pas directement utilisable pour indexer
– méthode RecursivePrefixTree : on liste tous les geohash contenus dans le polygone - autant de codes que de polygones inclus dans la géométrie, très facile à utiliser pour indexer - plus adapté aux machines qu’aux humain.e.s
Avez-vous déjà vu et essayé des méthodes pour coder la géométrie d’un polygone avec une seule chaîne de caractères, et qui soit utilisable par un humain (recopier, entrer la valeur dans une application) ?
Quelques références
GeoHash :
– ►https://en.wikipedia.org/wiki/Geohash
– ▻http://postgis.net/docs/ST_GeomFromGeoHash.html
– ▻https://github.com/davetroy/geohash-js
– ▻https://github.com/yinqiwen/ardb/blob/master/doc/spatial-index.md
– ▻http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves
GeoHash pour polygones :
– ▻https://www.npmjs.org/package/polygon-hash
– ▻http://elasticsearch-users.115913.n3.nabble.com/Doing-bounding-box-filtering-using-a-geohash-p
– ▻https://github.com/jillesvangurp/geogeometry
– ▻https://github.com/derrickpelletier/geohash-poly
Utilisation comme index de bases de données :
– ▻http://lucene.apache.org/core/4_7_1/spatial/org/apache/lucene/spatial/serialized/SerializedDVStrategy.html
– ▻http://lucene.apache.org/core/4_7_1/spatial/org/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy.html
– ▻http://blog.safe.com/2014/03/dynamodb-s3-geoindex-big-data
– ►http://www.opensourceconnections.com/2014/04/11/indexing-polygons-in-lucene-with-accuracy
– ▻http://www.lucenerevolution.org/2013/Lucene-Solr4-Spatial-Deep-Dive
– ▻http://www.slideshare.net/lucenerevolution/search-with-polygons-another-approach-to-solr-geospatial-search
– ▻http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-geo-shape-type.html
voir aussi la question sur gis stackexchange
▻http://gis.stackexchange.com/questions/102941/what-methods-exist-for-geohash-of-polygon
Déjà tu pourrais définir les coordonnées des sommets par rapport au centroïde, ça éliminerait (par translation) toute la phase que tu appelles de « compression ».
Plus tu veux de précision, plus il te faudra de « dimensions », mais commençons par le plus simple, la dimension 1 :
– « un disque de x km de rayon autour de C » => (c,x)
où c
est le geohash du point C.
Note que je parle de disque et de km, mais ça peut aussi être un carré de n surfaces de base (hectares par exemple)…
Un autre truc possible (et humainement compréhensible) pour coder une forme, c’est de fournir un alphabet de base et de dire « en forme de U », « en forme de N », etc. Ou encore les formes de tetris.
Bonne idée le tetris :)
Mais avant de tenter la #révolution #mathématique, je cherche déjà des pointeurs vers des méthodes existantes. Je n’ai pas trouvé grand chose pour l’instant.
Pour préciser l’objectif de ce code, l’INE veut pouvoir fournir une API de consultation de ses données, avec un code pivot pour les géométries, indexable et facile à copier manuellement.
Peut être aussi chercher du côté de la représentation et compression de contours en traitement d’image ou vidéos. Ce qui revient plus ou moins à utiliser un alphabet de base (le « sparse coding ») comme tu le proposes @fil.
Ça avance :
– GeoRaptor, un outil #python qui applique la méthode RecursivePrefixTree référencée plus haut :
▻https://gis.stackexchange.com/a/228496/32749
– ElasticSearch utilise le geohash comme une des deux stratégies (avec « quadtree ») pour indexer les polygones :
▻https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-shape.html
PVince81/pyocclient
▻https://github.com/PVince81/pyocclient
This library makes it possible to connect to an #owncloud instance and perform file, share and attribute operations in #python. Please note that this is not a sync client implementation but rather a wrapper around various APIs.
#api
Very good explanation of why #Python is slow, with emphasis on its representation of objects in memory. After a nice start, ends with a lot of code and hard internal details. A must-read for Python programmers.
▻http://jakevdp.github.io/blog/2014/05/09/why-python-is-slow
Récupérer les pages d’un livre numérisé en plusieurs images - Geekographie Maïeulesque
▻http://geekographie.maieul.net/Recuperer-les-pages-d-un-livre
Certains sites proposent des versions numérisées d’anciens livres. Lorsque ce livre m’est nécessaire pour mon travail, j’ai pris l’habitude de le récupérer en local, pour en avoir une copie. En effet, on n’est jamais certain de la pérennité d’une ressource internet. En outre je peux avoir besoin de revenir sur le livre dans un endroit où je n’ai qu’un accès difficile à internet.
Cependant ces sites ne permettent pas toujours de télécharger l’ensemble des pages du livre en un fichier, mais offrent simplement de visualiser chaque page une par une. Ce qui implique donc de les télécharger une par une, une opération fastidieuse et pénible. J’ai donc écrit un script permettant d’automatiser la chose.
Un testeur de #regex qu’il a l’air bien :
▻http://regex101.com/#pcre
an online regex tester for #javascript, #php, #pcre and #python
v/@karlpro
superalex/py-wetransfer
▻https://github.com/superalex/py-wetransfer
Python script for downloading #wetransfer files (►https://www.wetransfer.com) in command line mode
« J’aime principalement deux choses dans le langage de programmation #Python : la redoutable simplicité de sa syntaxe, et l’incroyable puissance des listes en compréhension »
▻http://gordon.re/developpement/listes-en-comprehension-en-python.html
LEARN programming by visualizing code execution
▻http://pythontutor.com
Online Python Tutor is a free educational tool created by Philip Guo that helps students overcome a fundamental barrier to learning programming: understanding what happens as the computer executes each line of a program’s source code. Using this tool, a teacher or student can write a Python program in the Web browser and visualize what the computer is doing step-by-step as it executes the program.
« Madame, c’est quoi un frigo sur #Internet ? »
►http://www.techn0polis.net/2014/02/12/madame-cest-quoi-un-frigo-sur-internet
OU : RACONTER LE RÉSEAU À CEUX QUI L’ONT TOUJOURS CONNU. Depuis la parution de #Hackers  ; : Au cœur de la résistance numérique, je me promène régulièrement, de conférences en débats (on n’y pense pas vraiment quand on écrit un livre, mais le fait est que le « service après-vente » est un des aspects les plus agréables et […] […]
@moderne Psst, pas besoin de te fatiguer, en cliquant sur le triangle noir devant les liens, on a la liste des posts où il se trouve !
Voui, je sais ; et en cliquant sur la petite étoile de « favoris » tu pourrais éviter de les dupliquer et garder les discussions au même endroit.
Sauf que j’utilise l’#API de #Seenthis avec la bibliothèque #PHP « officielle » ►http://seenthis.net/fran%C3%A7ais/mentions/article/api, et elle ne permet pas de vérifier si une URL a déjà été postée sur Seenthis à ma connaissance.
Certes, @stephane a développé une bibliothèque #python ►https://github.com/bortzmeyer/seenthis-python avec une fonction pour tester si une URL est déjà présente.
Un jour, je passerai mon script sur python et l’améliorerai.
Et du coup, à mon sens, la page de référence pour suivre les discussions sur un lien est celle accessible via le triangle. Pas celle du post original.
@Homlett Mais je n’utilise pas de truc particulier, juste une fonction de l’API SeenThis, qui pourrait être appelée depuis le code PHP. Le problème est que je crois que cette fonction particulière (▻https://seenthis.net/api/url) n’est documentée que dans un seen de @Fil (que je ne retrouve pas) et qu’il n’existe pas de documentation intégrée et à jour de l’API :-( #anarchie
@stephane Merci du tuyau ! J’ai trouvé, c’est ici : ►http://seenthis.net/messages/70484
Il faut que je fasse ça un de ces jours alors. Mais de toute manière je crois que je préfère passer sur python.
Je n’avais jamais lu un article expliquant jusque dans les derniers détails le fonctionnement du protocole #Bitcoin, avec les histoires d’encodage, les pièges, comment on trouve les pairs, etc. Du concret ! En guise de TP, l’auteur fabrique une transaction entière « à la main » et elle est acceptée par le réseau.
▻http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html
#techno_porn #bit #python #code
youtube-dl
▻http://rg3.github.io/youtube-dl/index.html
Un petit script #python qui permet de télécharger des vidéos depuis youtube, arte.tv et j’en passe... (liste complète des sites supprotés par ici ▻http://rg3.github.io/youtube-dl/supportedsites.html).
via ▻http://www.webupd8.org/2013/07/command-line-video-download-tool.html
Indispensable pour moi qui ait évincé #Flash de mes stations.
extremetube, youporn, xhamster, les geeks ne perdent jamais le nord.
Pareil, très pratique en effet. Pour envoyer le son d’une vidéo sur votre serveur MPD, via MPC :
mpc -h IP_MPD -P PASSWD_MPD add
youtube-dl -g --no-cache-dir -f 172/140/139/171 URL
je note l’option -x
pour extraire le son ; et l’ajout de rtmpdump à l’installation qui permet à #youtube-dl de récupérer du #streaming
Utilisation pour, par exemple, un film du #replay (#streaming) d’ARTE :
> youtube-dl http://www.arte.tv/guide/fr/048392-000/presse-vers-un-monde-sans-papier/
[arte.tv:+7] 048392-000: Downloading webpage
[arte.tv:+7] 048392-000: Downloading JSON metadata
[download] Destination: Presse - vers un monde sans papier -048392-000_PLUS7-F.flv
[download] 9.2% of ~1.70GiB at 1.14MiB/s ETA 23:01
…
Utile pour l’#archivage, et aussi pour les amis qui sont punis par un #paywall ou des barrières / frontières absurdes (▻http://seenthis.net/messages/288153).
kiln/cartograms
▻https://github.com/kiln/cartograms
Code for generating area cartograms (repéré via ▻http://seenthis.net/messages/223886)
Apprendre à programmer aux enfants : plus qu’un jeu, une nécessité
▻http://www.latribune.fr/technos-medias/informatique/20140127trib000812059/apprendre-a-programmer-aux-enfants-plus-qu-un-jeu-une-necessite.html
Accueilli au sein de Numa, le nouveau lieu du numérique et de l’innovation à Paris, le premier CoderDojo a permis à une trentaine de jeunes de 7 et 15 ans de s’initier à la programmation.
Au programme : le codage des programmes informatiques, la construction des sites Web, des applications, des jeux et plus encore.
Dans ce club, « ils apprennent entre eux et font ce qu’ils ont envie. C’est "freestyle" », assure Brenda O’Connell Dans la galaxie des initiatives qui incitent les jeunes à se frotter activement aux outils numériques, les CoderDojo occupent une place à part.
Depuis que James Whelton et Bill Liao ont organisé le premier rendez-vous en juillet 2011, à Cork, en Irlande, les CoderDojo se sont multipliés dans le monde entier avec 27 pays actifs aujourd’hui. Paris n’était pas sur la carte avant que Brenda O’Connell, une Irlandaise installée à Paris depuis neuf ans et baignant dans l’univers numérique, ne comble cette lacune.
Car, à l’heure où le gouvernement évoque la possibilité d’enseigner l’innovation à l’école, il est urgent de multiplier les occasions de mettre les mains dans le cambouis informatique, de concevoir, de programmer, de créer des objets que les jeunes bidouilleurs, innovateurs de demain, dotent d’intelligence dans un esprit d’échange au cours de rassemblements de types Coding Goûters, Hackidemia ou encore des FabLabs.
Il y a des outils libres pour initier les enfants à la programmation ?
+1 - Je me souviens d’outils pour apprendre le html, mais je ne les retrouve pas... Des projets comme #doudoulinux n’intègrent pas la programmation, il me semble...
#scratch ?
►http://scratch.mit.edu
mais si la version 1.4 est sous GPL V2
▻https://github.com/LLK/Scratch_1.4/blob/master/LICENSE
la situation de la version 2 est peu claire ...
Ben y a Logo que tous les enfants de 30-35 ans connaissent...
▻http://tortue-logo.fr/fr/apropos-logo-tortue
Scratch, j’ai essayé, j’ai pas tout compris. Et j’ai trouvé ça frustrant. Nécessité d’en passer par des images, qu’il faut créer, ou retravailler, pour que ça tienne dans le canevas proposé par défaut. Et ça suppose que la programmation, c’est fait pour faire des trucs qui bougent à l’écran. Moi j’aime la programmation qui résout des problèmes.
Bref, j’ai même pas essayé de le présenter à mon fils.
L’algorithmie est un truc complexe... et finalement, un truc pour écrire du code et le faire tourner, c’est pas mal déjà... Logo ou n’importe quoi d’autre... Tiens, un truc hyper simple du genre VBA dans Word ou Excel... :-) (je sais, c’est pas gratuit, mais c’est immédiatement accessible, et c’est juste pour l’image).
Bon, vous connaissez un outil de développement épuré où il n’y aurait qu’à écrire du code et à appuyer sur un bouton (ou une touche) pour voir le résultat ? (rapidement, on en arrive à vouloir déboguer, faire du pas à pas, le nombre de boutons et de raccourcis augmente..., ça devient de moins en moins immédiatement accessible... à croire que la programmation, c’est compliqué par nature...).
Bon, vous connaissez un outil de développement épuré où il n’y aurait qu’à écrire du code et à appuyer sur un bouton (ou une touche) pour voir le résultat ?
#python ?
▻http://showmedo.com/videotutorials/series?name=pythonJensFromKidsSeries
avec
▻http://sourceforge.net/projects/drpython
Moi j’ai appris avec QBasic sous MSDos, mais j’étais au collège je crois, donc déjà un peu plus âgé. Cela dit, en primaire il y a déjà tellement de savoirs de base à apprendre, que je suis plutôt partisan de se concentrer sur la maîtrise de l’écrit et de l’algèbre, et ne passer à l’algo (qui plus est devant écran) seulement quand on a le reste. Donc finalement au collège c’est pas si mal.
(Cf d’ailleurs les écoles où certains technos siliconiens mettent leurs enfants, et qui n’ont aucun écran avant le collège.)
Je pense qu’un des points importants, c’est d’avoir des programmes simples sous la main (pas avec des concepts hyper compliqués), dont on peut copier-coller les instructions pour ensuite bidouiller soi-même.
J’ajoute aussi que si j’ai envie de leur apprendre, c’est pour qu’illes comprennent mieux le monde (bizarre) dans lequel on vit. Et qu’illes soient du coup moins passif⋅ve⋅s avec tout ce qu’on nous impose. Certainement pas pour qu’illes deviennent des « innovateurs », pourvoyeur⋅euse⋅s de croissance dans 20 ans.
Je trouve que c’est plus intéressant de comprendre comment appréhender comment faire un programme et l’algo avant de commencer à coder des trucs pas intéressant car grosse marche d’apprentissage.
J’avais adoré « programmer » des mini-jeux avec klick&play et game factory à l’époque, et du coup ça stimulait plus l’imagination pour créer un univers de jeu et des règles, et des notions d’algo basiques (comment gérer les intéractions, le game play etc) sans devoir se farcir du code.
Le code c’est le plus facile et c’est interchangeable, ça peut s’apprendre plus tard.
Haha yes, Game Factory ! Je l’avais aussi !
#python - How do I install a script to run anywhere from the command line? - Stack Overflow
▻http://stackoverflow.com/questions/6967331/how-do-i-install-a-script-to-run-anywhere-from-the-command-line/6967354#6967354
The best place to put things like this is /usr/local/bin.
This is the normal place to put custom installed binaries, and should be early in your PATH.
Simply copy the script there (probably using sudo), and it should work for any user.
Python/Django web developer (Paris) — AFPY
▻http://www.afpy.org/jobs/python-django-web-developer-paris
Python/Django web developer (Paris)
NAO, le célèbre robot humanoïde d’Aldebaran Robotics, veut aider les enfants autistes et leurs familles à vivre mieux ! L’éducation spécialisée, en particulier pour les enfants autistes, est une des plus grandes aventures de NAO et nous avons besoin de développeurs web comme vous pour l’aider à la réussir !
BayesDB
▻http://probcomp.csail.mit.edu/bayesdb
BayesDB, a Bayesian database table, lets users query the probable implications of their data as easily as a SQL database lets them query the data itself. Using the built-in Bayesian Query Language (BQL), users with no statistics training can solve basic data science problems, such as detecting predictive relationships between variables, inferring missing values, simulating probable observations, and identifying statistically similar database entries.
Cool :
INFER salary FROM mytable WHERE age > 30;
ça a l’air bien intéressant, mais c’est étrange de devoir « enregistrer » ses données dans une pseudo-base pour les analyser — est-ce qu’il n’y a pas des modules #R ou #Python qui feraient les mêmes choses avec des sources de données « déjà-là » ?
(Bon après sur des petits volumes c’est pas grave, on recopie tout et puis voilà.)
Je t’avoue que je n’ai pas regardé de près, mais je suppose qu’un des intérêts est peut-être l’indexation ? Tu entres tes données une fois et après toutes les analyses sont rapides ? Je ne sais pas, mais le concept m’amuse.
Welcome to #Bokeh — Bokeh 0.3 documentation
▻http://bokeh.pydata.org/index.html