XD blog

blog page

~technical


2015-07-20 Drawing tree with Python

I did not find any good module to draw trees with Python. I tried networkx or graphviz. The first one does not handle big tree very well. The second one does not optimize for trees and it needs to be called through the command line. ete seems a much better option and it is available on Python 3: github/ete3. See also the gallery, the notebook integration, an online visualizer, the documentation (for Python 2).

2015-07-18 Use virtual environment to develop robots

A decade ago, France stopped nuclear weapons testing and replaced them by simulations. I guess it now happens in virtual environment. Researchers starts to do the same with robots: Minecraft Shows Robots How to Stop Dithering, Using Minecraft to unboggle the robot mind. We do not need to actually build a robot to create a kind of artificial intelligence. It can just be developped in a virtual environment such as Minecraft and interact it with a python module such as picraft. We could try to build a robot which learns how to build a house which does not collapse.

2015-07-17 Short history of scientific computing with Python

This is a more the story of the speaker, Wes McKinney but mixed with Python. Wes McKinney founded DataPad recently acquired by Cloudera. You can find it on this blog: Scientific computing in Python. The story begins en 2007.


more...

2015-07-13 Using Antlr4 to write a grammar

Here are a few tricks I discovered when I implemented my first grammar using Antlr 4. First, it really helps to be able to test some parts of your grammar. One of the options is the plugin IntelliJ Idea Plugin for ANTLR v4 for the following tool: IntelliJ IDEA (the plugin works with the community edition, see also Installing, Updating and Uninstalling Repository Plugins). You will find many grammar examples at antlr/grammars-v4. The tool tells you if the grammar compiles and when it cannot parse an example as it displays a graphs with the recognized pieces.

source: https://github.com/antlr/intellij-plugin-v4
more...

2015-07-11 Apprendre à programmer, coding goûter

Ils sont de plus en plus populaires.

Quelques précédents liens déjà mentionnés : coding goûter.

2015-07-09 Machine Learning, framework, école 42

A few links around machine learning: a new Python module has been released machineLearningStanford. I quote the first sentance of file README.md: This module implements assignments of machine learning coursera Stanford by PYTHON.

A list of frameworks to do machine learning in many languages: awesome-machine-learning. Among them, some links to pieces of code for Kaggle competitions: Kaggle Competition Source Code.

A module to do deep learning in Python: keras.

Pour finir, une émission sur France 4 à propos de l'école 42 et son examen de passage : La Piscine. Un mois d'exercices aux consignes plutôt floues.

2015-07-05 Le voyant lumineux est allumé

Les stations de métros défilent sans que je m'en rende compte, le nez plongé dans un livre. Le dernier que j'ai lu, Loar de Loïc Henry, était proche de Dune, une sorte de mélange de magie et de futur qui semble très lointain voire improbable contrairement de celui de The Minority Report de Philip K. Dick qui pointe le bout de son nez soixante ans après son écriture. Qu'auraient dit nos grands-parents à mon âge si on leur avait dit que ce futur existerait dans soixante ans ?

On a le temps d'y penser...

Oui sans doute, mais on n'y pense jamais. Le réchauffement climatique est passé d'un danger qu'on peut empêcher à une certitude qu'on accepte avec fatalité. Conçu après la guerre, gratuit, le système de santé s'adressait à une majorité de gens en bonne santé qu'on soignait avec une médecine très peu chère car nous ne disposions pas de toutes ces machines très élaborées. Le régime de retraite fut imaginé aussi après la guerre mais l'espérance de vie a quelque peu évolué depuis. Beaucoup de systèmes sont pensés sur des données présentes - comment faire autrement - et sont fournis sans recommandations pour les années futures.

Ah au fait, le système ne marchera plus très bien si jamais on sort de ce cadre là...

Il est plus facile de stopper une centrale nucléaire que le régime de retraite. On mesure tout un tas d'indicateurs afin d'éviter l'accident. Et pour les retraites... Elles ont été mises sur pied car c'était possible à l'époque. Quelques années plus tard, au diable les aspects techniques, seul le principe demeure. Pourtant, faire durer le principe, techniquement, ce n'est pas aussi simple.

Et dans soixante ans, imaginez qu'il n'y ait plus que des métiers créatifs. Le moindre travail manuel est effectué par un robot. Que deviendrait le principe de vacances dans ce contexte ? Que deviendront les artistes si on le devient tous un peu ? On n'en voit d'ailleurs pas beaucoup dans les livres de science fiction. Avez-vous le souvenir d'une mise en abyme, d'un auteur de science-fiction se représentant lui-même dans la période qu'il décrit ?

2015-07-03 Livres, films, couches, prêts... Amazon en assurance ?

C'est paru il y a deux jours : Amazon va faire du crédit aux PME en Europe et en Chine. Amazon sera capable de décider de prêter ou non de l'argent en une journée pour des montants allant de 1000 à 600.000 euros à des taux de 6% à 14%. L'article met en avant la simplicité et la rapidité du système. Derrière ces deux mots, je suppose qu'Amazon aggrègera de nombreuses informations autre que celles récupérées depuis le questionnaire proposé à l'emprunteur (informations géographiques, économiques, web scraping, livres achetés chez Amazon...) Derrière la rapidité se cache probablement le machine learning et des modèles capables d'aggréger toutes ces informations disparates.

Je fais un parallèle avec la reconnaissance d'image ou plus particulièrement celle des chèques. Un ordinateur lit le montant à partir d'une image. Il retourne une prédiction (le montant) avec un score (un nombre entre 0 - mauvais et 1 - bon). Concrètement, l'ordinateur permet de traiter 80% des chèques les plus difficiles et laisse le reliquat à des opérateurs humains. Le modèle d'Amazon ne devrait pas être si éloigné : la société va s'emparer d'une part de marché correspondant aux empunteurs faciles à catégoriser tout en proposant des taux de d'emprunts plus faibles que ceux de la concurrence grâce à un coût de traitement plus faible expliqué par une chaîne de traitement automatisée. Le reliquat des autres emprunteurs devra être traité manuellement probablement par les acteurs de ce secteur qui se partageront la part la plus difficile à gérer et la moins rentable. Après les livres, les films, et à peu près tout ce qui se vend de non périssable, les prêts, que reste-t-il... Les contrats d'assurance ?

2015-06-18 Website to find interesting Python modules

2015-06-07 Custom Directive on Sphinx

I recently discovered a nice way to integrate plots in sphinx documentation with the custom directive bokeh-plot. I thought it would be quite easy to create mine to add a simple blogging system. However the documentation is pretty rare on that topic. All my searches ended up at Tutorial: Writing a simple extension. So here are my finding about creating a custom directive BlogPostDirective to process something like:

.. blogpost::
    :title: Migration to IPython 3.1
    :keywords: ipython, migration, jupyter, jenkins, pandoc
    :date: 2015-04-16
    :categories: ipython, documentation
    
    Any text this blog could contains and any RST tag::
    
        ...

more...

2015-06-03 Le chapeau du Petit Prince

L'année scolaire se termine et je suis encore surpris d'être arrivé au bout. J'ai changé tous mes cours, utilisé les notebooks que je ne connaissais pas il y a un an, préparé deux autres cours qui ont quasiment doublé mes heures de présence à l'ENSAE. J'ai passé des heures, souvent nocturnes, à chercher comment lancer facilement des jobs sur des clusters depuis des notebooks. Je regarde un peu effaré le nombre de téléchargements (19.000 durant le dernier mois) d'un des modules que j'ai commencé voici un an et demi pour automatiser la mise à jour de mes cours, la conversion des notebooks en page HTML, en slides, en PDF, la récupération des mails envoyés par les élèves.

Je me suis beaucoup amusé. J'ai aussi été agréablement surpris de voir les élèves inonder les clusters de jobs, se lancer dans des projets de machine learning avec plaisir, se montrer curieux, apprendre la programmation et l'apprécier. Et le dire !

Je me souviens d'un jour où je me suis retrouvé à La Maison des Contes et des Histoires. Une conteuse et des enfants de trois à dix ans, ils étaient tous conquis au bout de vingt minutes. Je n'imaginais pas que je vivrais quelque chose de similaire cette année, des enfants de huit à quatorze ans, tous regroupés autour d'une histoire de données. Et j'ai créé un autre site lesenfantscodaient.fr pour dire que les histoires d'algorithmes ressemblent aussi beaucoup à ça :

Un grand merci à tous ceux qui m'ont permis de faire tout ça.

2015-05-24 Install pip and setuptools

pip was recently updated. It cannot be updated using pip install -U pip on Windows because it has to replace itself. So read the documentation. You can:

Or you can just download the package from pipy, unzip and install them with python setup.py install.

2015-05-23 Jenkins, TortoiseGit and locked files on Windows

Some errors can be very annoying sometimes if they come back again and again. Here is one of them: TortoiseGit locks repository folders so that the user can't delete them which I throught was caused by Jenkins. So annoying that it was mentioned in a couple of issues 401, 497, 1880. I could avoid using TortoiseGit but that's the only git GUI I don't have to remember the usage.

So let's tweak the TortoiseGit's Settings even if some changes seem to fix it:

TGitCache now checks file sizes before checking file contents. 
This should mitigate possible "file is locked" problems.
TGitCache now does not check the contents of files with filesize > 10 MiB any more
and falls back to checking the timestamp of the files (as if TGitCacheCheckContent
is set to "false") according the the git index. This limit can be changed by adjusting
TGitCacheCheckContentMaxSize (measured in KiB) in TortoiseGit advanced settings.
The reason for this change is that libgit2 reads a file to memory for hashing and,
thus, locking the file and the repository for this time span.

A couple of tricks:

2015-05-21 Github Awards

I discovered this website Github Awards which ranks people implementing or contributing to open source projects. You can even drill down per language, city... And you find some popular script you did not even know about: ipycache or TimeSide (audio processing) or Facebook Python SDK.

2015-05-20 Jolla, Sailfish, OS pour SmartPhone

La guerre froide version smartphone. See Jolla, Sailfish.


<-- -->

Xavier Dupré