XD blog

blog page

~technical


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-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.

2017-02-04 Loin des élections, Entrepreneur d'intérêt général, Algorithmes et transparence

J'avais beaucoup d'idées en commençant cet article et j'ai finalement opté pour la rédaction de sa diagonale. Je reviens sur le très cours article écrit sur le projet Entrepreneurs d'Intérêt Général auquel j'ai participé. La liste des lauréats a maintenant été publiée Découvrez la 1e promotion des Entrepreneurs d’intérêt général ! (voir aussi Les lauréats désignés et le dossier de presse). On y retrouve 10 candidats aux profils très variés dont deux que j'avais déjà croisés au cours de mes voyages professoriques. Marion Paclot qui a été élève à l'ENSAE et Frédéric Bardolle qui est le CTO de Data For Good. Pour la petite histoire, Data For Good est l'association qui m'a mis en contact avec la Croix-Rouge grâce à laquelle nous avons pu oragniser le premier hackathon de l'ENSAE. Au delà du fait que cette initiative me paraît très positive, j'ai découvert des personnes qui ont réussi à partager leur plaisir de travailler pour l'Etat. J'ai beaucoup apprécié faire partie du projet en tant que jury.

Depuis ce point de départ, je déroule la pelote des hyperliens et, loin des élections, je découvre l'image d'une administration qui bouge. C'est du moins l'image que j'en ai via Le portail de la modernisation de l'action publique et pour en avoir eu un aperçu de l'intérieur, je suis plutôt confiant que ces projets comme Les services publics se simplifient et innovent sont l'expression d'une réforme ou plutôt d'un mouvement continu de réforme qui dépasse les débats politiques. L'Etat met aussi à disposition des outils qui permettent d'en suivre l'avancement : Tableau de bord des services des services publics numériques - Edition 2016, liste des projets en cours. Les fonctionnaires ne sont pas les seuls à exprimer leurs envies pour l'Etat. Ce dernier organise des hackathons comme celui-ci Design à la BNF : 20 nouveaux services imaginés par les étudiants de l'ENSCI, une façon comme une autre de recueillir des idées imaginées par ceux qui en bénéficieront plus tard.


more...

2017-01-24 Python is better than Perl

Blindspot season 1, episode 6, from Anyone here a fan of "Blindspot"? They had a perl/python smackdown in the last episode.

You might agree or disagree. The fact is that's first time I heard Python in a TV show.

2017-01-09 Les journaux sont sur GitHub

Petit voyage sur GitHub : Los Angeles Time/datadesk, NYTimes, Le Monde, Libération. Je n'ai pas trouvé de GitHub pour Le Figaro. On ne voit que la partie visible mais dans l'ensemble, il y a surtout du javascript et peu de python. Les journaux américains paraissent plus avancés que les journaux français. Le site la BBC proposent un package Python clever-thumbnailer capable d'extraire un échantillon d'une musique ou d'un extrait sonore.

2017-01-08 La chevauchée informatique de 100 notebooks

Articule publié dans Variances 18/01/2017.

Je coordonne et j'anime environ 60 heures de cours et travaux pratiques à l'ENSAE chaque année depuis trois ans et la création de la voix datascience. Si vous allez sur mon site, vous découvrirez que la plupart de ces heures s'appuient sur des exercices écrits sous formes de notebooks et qu'une bonne partie fonctionne par paire, un énoncé, une correction, d'autres contiennent la correction des examens, d'autres répondent à des questions d'étudiants, d'autres... Le notebook est apparu il y a une dizaine d'années et est récemment devenu populaire sous le nom Jupyter. Un notebook Jupyter est un endroit où on écrit du texte, des formules, du code et où on garde la trace des graphiques et des sorties que ces petits bouts de code ont produits. C'est même un lieu où on peut insérer une carte interactive pour zoomer ou dézoomer à volonté. C'est un outil qui a rapidement trouvé son public. Rares sont les professeurs de mathématiques ou d'informatiques qui n'ont pas de notebooks d'autant plus que les étudiants peuvent les télécharger, les exécuter, que tout le monde peut aisément les convertir en PDF, html ou présentations. Essayez, allez sur un moteur de recherche, écrivez le nom d'un professeur, d'une université suivi de notebook et github... (berkely notebook github) C'est un sacré chemin parcouru depuis les polycopiés qui sentaient l'alcool. Ce sont les premières reproduction de support pédagogique qu'il m'ait été donné de découvrir. Cela vous donne d'ailleurs une idée de mon âge. J'ai découvert l'école, j'ai vécu la transition du polycopié vers la photocopie. Un pas fou ! Et depuis je mets en ligne tout ce que je produis pour mes cours, plus d'une centaine de notebooks. Tout est accessible depuis GitHub, le lieu des projets open source, tout est compilé en plusieurs sites web.


more...

2016-11-21 Liens GitHub

Tous les notebooks sont maintenant facilement accessibles sur GitHub : DataFrame et Graphes. Il en est de même pour les fonctions et classes enumerate_permutations.

2016-10-12 Convertir un notebook après filtrage

On m'a demandé récemment s'il était possible de convertir un notebook au format PDF après avoir supprimé les portions de code. La réponse est oui : Export a notebook with no code.

2016-09-25 add_notebook_menu

La plupart des notebooks que je créé commencent par ces deux lignes.

from pyquickhelper.ipythonhelper import add_notebook_menu
add_notebook_menu()

La fonction ajoute une bout de javascript qui produit un menu permettant d'accéder directement à tel ou tel paragraphe. Si la fonction ne fonctionne, c'est que le module pyquickhelper n'est pas installé. Ce n'est pas très grave dans la mesure ou la plupart du temps, le module n'est pas utilisé autrement que pour ce menu. Comme il requiert diverses dépendances, j'ai décidé d'extraire cette fonction et de la placer dans un module plus petit et sans dépendance : jyquickhelper. On peut maintenant écrire :

from jyquickhelper import add_notebook_menu
add_notebook_menu()

2016-09-21 A few tricks with Anaconda

Anaconda hides some undesirable behaviors sometimes. I ran into this one a few days ago: cannot import name 'QtCore' which I solved by applying the following trick: ImportError: cannot import name 'QtCore'. Another unexpected behavior happened when I tried to create a virtual environment on a different drive. Finally, I'd like to have a way to avoid copying everything when I need a new virtual environment. At least, this is what happens on Windows.

2016-09-20 Digging into a random forest

A few links. Help yourself. Interpreting random forests, Reading and interpreting random forest models, treeinterpreter.


-->

Xavier Dupré