XD blog

blog page


2017-07-17 Atoll de données

Je me souviens pas d'avoir lu une phrase aussi proche techniquement de mon quotidien de travail et pourtant celui-ci ne m'a pas aidé à la comprendre. "Camden avait mené un coup exceptionnel d'investissement en limites croisées d'un atoll de données.", extraite de L'une rêve, l'autre pas, de Nancy Kress. La science fiction est toujours à la frontière entre le possible et l'impossible. Comme cette phrase est un des éléments qui justifie l'intrigue, j'ai naturellement voulu la ranger dans la première catégorie sans pour autant pouvoir lui donner un sens précis. J'ai pourtant mené ma petite enquête auprès de mes amis sans pouvoir dégager un début de piste sensé. Je pensais trouver une idée en allant chercher le texte original. Le titre complètement différent Beggars in Spain promettait quelque succès. La traductrive ne devait pas être très inspirée non par cette phrase qu'elle a simplement transcrite mot à mot :Cross-border data-atoll investment.

Quelques recherches sur internet ont suffi pour déformer l'expression en Cross-border data flow puis finalement Transborder dataflow qui traduit le fait que les données traversent différentes législations qui les protègent différemment. Cela rappelle étonnamment une technique d'optimisation fiscale Double irlandais qui exploite plusieurs législations. L'interprétation continue avec un article Transborder Data Flows at Risk puis Declaration on Transborder Data Flows. Je dirais alors que l'expression initiale évoque une transformation et un déplacement astucieux d'un ensemble de données intéressant depuis une législation stricte quant à leur usage vers une autre plus permissive afin de les exploiter. Cela évoque d'ailleurs des problèmatiques assez récentes liées au Machine Learning éthique, à l'anonymisation des données Anonymisation des données, à la notion de vie privée au regard de tout ce qu'on sait de votre double numérique.

2017-07-02 Include output of a script in the Python documentation

The directive runpython runs a python script and insert the output in the documentation.

.. runpython::
    
    import sys
    print(sys.version_info)

Every printed information is added to the documntation :

sys.version_info(major=3, minor=6, micro=1, releaselevel='final', serial=0)

Two intersections options :

One extension must be added to configuration conf.py:

    extensions = ['sphinx.ext.intersphinx',
        ...
        'pyquickhelper.sphinxext.sphinx_runpython_extension']

One example (in French) : demo runpython. The second one shows how I use to build content (still French): rendering and source.

2017-07-01 Python module with C functions

This a small module I created with C functions called from Python. The documentation is here cpyquickhelper and the code github/cpyquickhelper. Enabling travis took me some time but I got it finally working.

2017-06-18 Administrateur général des données sur GitHub

Etalab maintient un compte GitHub : github/Administrateur général des données dans lequel on peut trouver des bouts de codes, des jeux de données, comme ces références sur l'anonymisation des données : anonymisation.

2017-05-31 Qu'est-ce qu'un data scientist ?

La réponse en vidéo et l'interview d'un ancien de l'ENSAE, Pierre Cordier, MÉTIER - Antho à la découverte du métier de Data Scientist.

2017-05-17 Les petits détails des ordinateurs portables

Je passe énormément de temps avec les ordinateurs et je réalise qu'un certain confort est indispensable si on ne veut pas devenir fou. Voici quelques détails auxquels je pense quand j'achète un portable.

Je n'aime pas trop les écrans brillants. C'est épuisant et la luminosité doit pouvoir être ajustée depuis le clavier tout comme le son. (OLED vs LED LCD – Which display tech is the best?) Les écrans LCD sont plus mats ce que je préfère. Je ne sais pas vraiment ce qui est meilleur pour les yeux. Ensuite, je n'ai pas besoin d'écran très puissant car je ne joue pas trop avec mes ordinateurs.

Je n'aime pas que la touche CTRL ne soit pas dans le coin inférieur gauche. Sur certains clavier, elle est inversée avec la touche fonction (c'est le cas des Lenovo). Enfin, les anglais n'aiment pas trop les clavier Azerty. Ils font parfois des trucs bizarre quand ils adaptent un Qwerty en Azerty. Mon dernier portable a une touche >< près des touches de déplacement, soit de l'autre côté. Pas possible ! De même pour les touches de défilement de pages et même début et fin de ligne, elles doivent être accessibles directement, sans pression d'une autre touche. Une petite précision pour ceux qui choisissent des Mac ou Apple, le clavier français rend difficile d'accès tous les symbols [] {} qui sont très fréquents quand on programme. C'est joli mais agaçant.

Sur un portable récent, j'ai eu un problème de touche lente à la répétition : j'écrivais normalement comme sur n'importe quel ordinateur mais lorsque je tapais deux fois sur la même touche, seule une lettre apparaissait. On m'a dit : il suffit de ralentir. Celui qui m'a dit ça ne doit pas utiliser un ordinateur tous les jours. HP Spectre X360 Missing Double Keystrokes).

Sur un autre portable, il était impossible de booter depuis réseau (touche F12 au redémarrage), Boot issue after installation on Acer Swift 3 laptop (only with 64 bits version)).

Le disque SSD 256 Go. Je préfère SSD à autre chose même si le disque SSD est plus cher et plus petit.

Le ventilateur ne doit pas faire trop de bruit. Difficile à tester sans faire des calculs. De même, il faut pouvoir le poser sur les genoux sans que ça brûle. Si c'est juste pour écrire, cela ne devrait pas chauffer.

2017-05-11 PyParis

PyParis est la déclinaison parisienne du cycle de conférence pydata. Le programme de cette année est plutôt alléchant. Outre les sujets scientidiques, j'y ai découvert une palanquée de modules que je ne connaissais pas.

camisole est un module (documentatino) qui implémente un service de compilation et exécution de code. Ceci peut se réveler assez pratique pour l'enseignement. La liste des langages supportés est plutôt longue. Une machine virtuelle est mise à disposition. Le module implémente uniquement une API REST. Au détour de la documentation, on voit le package isolate (C). Je vous laisse découvrir ce qu'il fait.

Un talk parlera de PDF. Je n'avais pas imaginer qu'on puisse parler de PDF pendant tout un talk. Mais a priori, c'est possible. Quelques moduless : weasyprint, pdftk, reportlab.

Je ne vais pas assez souvent les extensions Unofficial Jupyter Notebook Extensions. Sans doute parce que qu'elles ne marchent pas toujours. Néanmoins, parmi celles que j'ai déjà utilisées, il y a execute_time, hide_input, ScratchPad (pratique celle-ci). Parmi celles que j'ai envie d'essayer, il y a nbTranslate, Table of Contents (2) (même si je rêverais de l'inclure en javascript plutôt que sous forme d'extension), tree filter, Collapsible Headings qui s'exporte aussi en HTML jupyter nbconvert --to html_ch FILE.ipynb.

Côté machine learning, nous avons Surprise pour construire des systèmes de recommandation (documentation). FreeDiscovery automatise quelques opérations standard d'analyse des données. Il y a pas mal de choses au niveau texte : Python API Reference. Un article Extremal Bootstrapping à propos de Conformal Field Theory. pomegranate qui implémente des modèles bayésiens tels que les Hidden Markov Models (à comparer avec hmmlearn.

Enième workflow engine MRQ mais il a l'air assez simple. FluidDyn est une autre option qui incluent également des fonctionalités de calculs numériques. L'objectif est de réaliser des simulations numériques.

Parmi ceux que je n'utiliserai pas tout de suite PySpice qui encapsule SPICE, un langage pour des circuits électroniques. Un bloq boontadata pour lire à propos de différentes architectures de workflow de données en temps réel.

Enfin Ch'ti code ou comment parler de programmation dans les écoles primaires.

Maintenant, il va falloir que j'aille regarder si tout cela s'installe facilement.

2017-05-10 Un vieux livre remis à jour

En 2009, le support de mon cours sortait sous forme de livre Programmation avec le langage PYTHON. Quand j'y pense ça fait huit ans et j'utilisais Python 2.5. En informatique, huit ans ressemblent à une éternité. Aujourd'hui, j'ai repris le contenu, je l'ai converti au format HTML et j'utilise Python 3.6 : Apprendre la programmation avec Python. J'ai commencé à faire pareil avec ma thèse mais ça risque de prendre un peu plus de temps : Les maths d’abord, la programmation ensuite. Et tout est sur GitHub.

2017-04-26 dotAI

J'ai passé l'après-midi à la conférence dotAI. J'ai vu neuf présentations aux théâtres des variétés. Un lieu insolite pour ce genre d'événements. J'ai pris quelques notes que j'ai intégrées aux références du cours que je donne à l'ENSAE. C'est pourquoi vous les trouverez sous la forme d'un commit dotAI.

Le deep learning était la star de la conférence. La moitié des orateurs ont parlé de transfer learning. Je terminerai par deux librairies javascript reinforcejs et synaptic qui ne sont pas aussi puissantes que les outils disponibles en python mais plus vivants depuis une page web.

Bref, ce post est plus m'inciter à y retourner l'année prochaine que pour vous.

2017-04-07 Sherlock Holmes le détective des marginales

Même si je ne suis pas convaincu par la dernière saison, les premiers épisodes contiennent quelques séquences de déductions statistiques symbolisées par les incrustations à l'écran.

Le dessin animé Basil le détective livre aussi quelques séquences de réflexions intéressantes. Sherlock sait où on a le plus de chance de trouver un taxi à telle heure, le nombre de voyageurs problables dans telle zone de Londres, la durée de transport moyenne en fonction du traffic.

Sherlock se penche sur le corps d'une femme. Son manteau est mouillé et n'a pas eu le temps de sécher. La météo indique qu'il a plus au Sud de Londres il y a quelques heures. C'est comme si Sherlock faisait de la traingulation. Chaque indice réduit l'ensemble des possibilités à quelques unes. Plusieurs indices finissent par lui donner une image précise de la personne qu'il ausculte.

Pourquoi les lois marginales... Une personne regarde facebook tous les matins avant de partir au boulot. Si elle ne le fait pas un jour, c'est qu'il s'est peut-être passé quelque chose d'important le matin. Si on n'en sait pas plus, alors on utilise ce qu'on sait des gens en général, les lois marginales. Que les gens le matin ? Ils vont travailler. La personne en question a dû arriver en retard. On vérifie. C'est le cas. Lorsque Sherlock n'a pas assez d'indice, il fait des hypothèses en partant de que feraient les gens qui ressemblent au sujet de son enquête.

2017-03-13 Table ronde sur la numérisation de l'Etat

9 mars. J'assiste à une table ronde autour de la numérisation et la simplification de l'état. Ca bouge beaucoup et bien. Quelques pitchs qui commencent toujours par ce qui irrite et ce qui est proposé. Les ministères communiquent entre eux et le modèle choisi est simple et efficace. Tout le monde communique via des API. Les ministères ne travaillent pas sur un immense système communs mais mettent à disposition des autres leurs données via une API. C'est plutôt futé. Chaque entité gère ses données et contrôle son accès. Les équipes fonctionnent en startup, pitch, font des prototypes en trois mois, on teste avec des cobayes, et passent à l'industrialisation si c'est convainquant. La loi a aussi changé, les échanges de données entre ministères sont gratuits, et un citoyen n'est plus obligé de renseigner ses informations plusieurs fois à partir du moment où ses données sont déjà détenues par un ministère. Il est en quelque sorte très démocratique puisque chaque service échange ce qu'il veut avec qui il veut. Il l'est aussi car l'état ne force pas la numérisation mais donne les moyens d'y parvenir. Regardez FranceConnect, DataAsso, Palyma, Miquado Idée, Alicem, Liquid immat, ApiCarto. Le tout est chapeauté par SGMAT.

On parle d'agilité. Il faut beaucoup de temps pour former quelqu'un à être agile.


more...

2017-02-25 Système de votes

Quelques articles intéressantes sur des systèmes de votes infalsifiables : Theoretical online voting system, Survey of Fully Verifiable Voting Cryptoschemes.

2017-02-24 Open Data

J'ai imaginé des énigmes algorithmiques ou de données. Rien de tel pour apprendre qu'un mystère. Je cherchais à reproduire ce que j'avais fait avec les données vélib sur Paris (Busy areas in Paris) mais pour une ville américaine. J'ai finalement opté pour Chicago car le site open data City Of Chicago est juste incroyable. Par comparaison, (Open Data Paris propose 204 jeux de données, Chicago 1097 et le site est plus simple d'utilisation. On ne trouve rien à Paris lorsqu'on cherche velib ou vélo et on trouve beaucoup de données lorsqu'on cherche bike à Chicago. A quand un seul point d'entrée pour tous les jeux de données ? Bref, l'énigme est accessible : City Bike. Il s'agit de trouver les zones habitées et les zones où l'on trouve une majorité de sociétés. L'énigme se termine par une question : que font les habitants de Chicago après le boulot ?

2017-02-16 Pourquoi je n'aime pas l'informatique

Ca c'est tout ce qui pète en ce moment. J'utilise Jenkins pour vérifier tous les notebooks que j'utilise pour mes enseignements. Un site web a décidé de rendre l'âme et boom deux ronds rouges. Et bim Python 3.6 est sorti. Et plein de rouge à nouveau.

Fais chier !

J'en suis à plus de 150 notebooks et ça prend cinq à six heures de tout tester.

Les ronds rouges, ça fait chier.

2017-02-12 Corrélation de variables catégorielles

Parmi toutes les questions, ce n'est pas l'une de celle qu'on m'a posée cette année et pourtant j'ai vu beaucoup de corrélations entre variables catégorielles. C'est très difficile d'en tirer quoi que ce soit. Au lieu d'essayer de répondre à cette question, je me suis dit qu'il serait sans doute plus amusant d'essayer de traficoter une corrélation entre catégorie qui ait plus de sens. Je me suis dirigé alors vers l'idée d'une corrélation non linéaire et puis sur le fait que si deux variables sont liées alors peut-être qu'on peut prédire l'une à partir de l'autre... Bref, si vous êtes curieux, la suite est là : Corrélations non linéaires.


-->

Xavier Dupré