XD blog

blog page

references


2013-03-30 Python, R, MOOC, Big Data, quelques références

A chaque fois qu'on change de distribution Python, il faut réinstaller les modules dont on se sert et aussi ceux dont on se sert parfois et dont on découvre qu'ils ne sont pas toujours maintenus à jour. Le module Rpy2 permet de lancer des scripts R depuis l'interpréteur Python. Il permet également d'accéder à certains objets puisque l'espace de travail reste ouvert et garde la mémoire de ce qui a été fait. J'essaye de l'installer, ce que je n'ai pas encore réussi à faire avec la version 3 de Python, et ce faisant, je suis tombé sur le module RPython qui permet de faire exactement l'inverse, c'est-à-dire d'exécuter du code Python depuis R.

Je suis beaucoup plus à l'aise avec Python dès qu'il s'agit de faire les choses les plus ennuyeuses (charger des données, réarranger des colonnes, filtrer, appliquer des modifications textuelles...), je vais probablement l'essayer. Mais cela montre que le langage Python est plutôt populaire. La même chose existe avec Excel : le module pyxll permet d'écrire des macros en Python de façon plutôt simple. L'idée est plutôt séduisante, il est plus facile de maintenir un code Python plutôt que de VBA.

L'apprentissage de l'informatique se démocratique en ce sens qu'il devient de plus en plus facile de trouver des cours gratuits et de très bonne qualité. Le site du zéro propose également de nombreux tutoriels sur la plupart des langages informatiques courants. En langue anglaise, il y a code school ou Khan Academy qui dispose de nombreuses vidéos à propos de sujets allant de la programmation à computer science même si dans ce domaine le must est Coursera. L'école Polytechnique a décidé d'y participer : EP. edX est une autre plateforme choisie par Harvard, le MIT. Ces plateformes sont appelées MOOC, le blog suivant un MOOC c'est quoi au juste sera plus disert que moi sur le sujet. Le dernier cité est Udacity. Le premier (Coursera) est probablement le plus riche, on y trouve également des cours d'improvisation musicale.

Chose amusante, peu de cours apparaissent lorsqu'on en cherche un à propos de Big Data. Sans doute cette présentation Big Data, Sorry What Does a Data Scientist Do en donnera quelques raisons (j'ai trouvé cela depuis le blog Freakonometrics).

2013-03-13 L'ordinateur et le cloud

Je viens de changer d'ordinateur, j'ai remplacé mon vieux Windows par un tout neuf. Non pas que je préfère Windows à MacIntosh mais c'est une juste une question d'habitude. Tous mes cours, mes programmes mes images sont sous Windows et je n'imagine pas le temps qu'il me faudrait pour tout savoir refaire avec un autre système. Déjà là, je m'attendais à passer une paire d'heure pour tout remettre en place et je vais y passer une journée à télécharger, installer, changer quelques chemins... Une plaie. Il fut une époque où passer ce temps était envisageable car on devait vivre avec la même machine pendant quelques années. Aujourd'hui, si ça pète, on remplace, si ça bug, on remplace, si c'est trop vieux, on remplace. On ne répare plus. Et passer une journée à télécharger, installer (rassurez-vous, je ne fais pas que ça mais il faut quand même regarder l'écran de temps en temps)...

J'aimerais bien appuyer sur un bouton et tout retrouver en l'état car je dois installer pas mal de trucs pour tout faire marcher. Je me suis aperçu que j'ai besoin de plein de trucs pour mes enseignements, des modules Python, des logiciels comme 7zip, Acrobat Reader, Antivir, Chrome, doxygen, Filezilla, Firefox, Ghosscript, Ghostview, Graphviz, ImageMagick, InnoSetup, Itunes, Mailbird, Microsoft Office 365, Miktex, R Studio, Scite, SongBird, SQLiteSpy, TexnicCenter, TortoiseSvn, Visual Studio, VLC, ou des modules pour Python cvxopt, Matplotlib, Mingw, networkx, Numpy, PyGame, Pysvn, python coverage, Python3, Pywin32, rpy2, pour Python avancé, BeautifulSoup, flask, Sphinx, feedparser PyPi, Goose Python Git, des outils pour travailler à plusieurs github, et pour les plus geeks Bandizip (décompression du format egg), Cygwin, dependencywalker, GNUWin32, linqpad, NUnit, pyxll NLTK Python, ). Je me suis demandé s'il y avait un moyen de télécharger et d'installer chaque logiciel. Je pense que cela serait possible pour la plupart des logiciels libres mais je me suis arrêté à l'écriture d'un script permettant de récupérer les URLs affichés ci-dessus (find_url_for_software.py).

Le modèle est des applications sur téléphone arrive sur les ordinateurs : la même interface partout et aussi une multitude d'applications simples qui font des tâches plus petites et bien identifiés. Je n'aimerais pas toutes les installer à nouveau sur le prochain ordinateur. Tout est question d'habitudes, on passe du temps à les mettre en place, à choisir soigneusement les applications pour son téléphone. On s'apprête à faire de même pour son ordinateur. On peut maintenant converser son bureau, ses contacts quelque part dans le cloud (on devrait plus se soucier de ce quelque part car selon les législations, on peut faire plus ou moins de choses avec les données personnelles). Mes applications, leur emplacement sur mon écran, sur mon téléphone, mes contacts, mes données avec les SkyDrive, Google Drive ou DopBox... Je ne perdrai plus rien. J'appuierai sur un bouton et, après quelques heures, je retrouverai tout à l'identique.

Bientôt, on posera des revêtements lumineux sur tous les murs des appartements. On choisira d'afficher ici ou là un poster, de remplacer le poster par un film aussi facilement qu'en appuyant sur un bouton. On fera de grands gestes avec les mains pour dire à des capteurs de mouvements qu'on souhaite une ambiance tamisée de rouge. On pourra en un instant retrouver son décor préféré, son chez soi dans la plupart des chambres d'hôtels, l'ordinateur proposera un ré-arrangement des murs en fonction de la luminosité. On pourra retrouver son décor après un déménagement. Il n'y aura plus de différence d'un pays à l'autre, des logiciels traduiront les langues étrangères. Ca vaut peut être le coup que j'optimise le bureau de mon ordinateur. Je passe aux murs bientôt.

On verra ça demain. En attendant, la plupart des grandes compagnies vous incitent à vous identifier parfois de manière anodine. Pour avoir accès à des listes de lecture aléatoires, Itunes vous propose d'activer la fonctionalité Genius après avoir créé un compte... J'ai essayé SongBird qui me permet également de récupérer les pochettes.

D'aures suggestions d'outils ici.

2013-03-11 Big Data, Data Scientist, quelques repères

En rejoignant Yahoo il y a déjà cinq ans, j'ai découvert le langage PIG. Ce n'était pour moi qu'un nouveau langage très proche de SQL dont le seul attrait était de pouvoir accéder aux logs de recherches puis de les aggréger de différentes manières avant de pouvoir enfin les poser sur une machine isolée où je pouvais travailler simplement et rapidement. Aujourd'hui, cette technique est étiqueté Big Data et s'est considérablement étoffée. En passant chez Microsoft, j'ai découvert son équivalent chez Microsoft avec Scope. Google a developpé un langage Sawzall dont la syntaxe est plus proche d'un langage fonctionnel. Aujourd'hui, au fur et à mesure de mes discussions sur le Big Data, je garde quelques références sur le sujet, des idées. Cela n'a rien d'exhaustif mais je suis étonné qu'autant de projets fleurissent étant donné l'investissement que chacun d'entre eux nécessite. Ce billet rassemble quelques idées, termes, liens.

Quelques remarques sur l'utilité de ces techniques

Hadoop/PIG et ses extensions open sources


more...

2013-02-24 Références, modules

Pour ceux qui ont l'habitude d'utiliser Visual Studio pour développer, il existe un plugin qui permet de développer en Python avec Visual Studio : Python Tools for Visual Studio. L'outil inclut un débuggeur. Il propose également de créer des projets django pour développer des applications Web.

Lorsqu'on développe avec Python, on fait régulièrement appel à des modules externes qui nécessite une installation supplémentaire (numpy, matplotlib, ...) Il exite des solutions qui regroupent en une seule installation la plupart des modules couramment utilisés. C'est le cas de Python XY qui propose un environnement de travail qui ressemble à celui que R propose. Une autre solution est IPython. Il fait plus appel au travail collaboratif. Il inclut une ligne de commande un peu plus travaillée. La première release officielle est prévue pour juillet 2013.

2013-02-21 Références, modules

J'ai écrit un blog il y a presqu'un mois à propos d'une classe permettant d'effectuer rapidement des opérations sur une table, de faire des jointures, de regrouper les données un peu à la manière du langage SQL. Je pensais ajouter à la classe quelques notions de statistiques et des graphes mais je me suis aperçu qu'il existe des modules qui ont l'air de faire ça très bien :

2013-02-18 Références, livres, articles, modules

Quelques livres qu'on m'a conseillé récemment de lire sur tel ou tel sujet ou quelques modules Python qui ont croisé ma route récemment.

Modules Python

Livres

2013-02-09 Program to convert latex into gif picture in a html document

A couple of days ago, I wrote a blog (Insérer des formules en code Latex dans un blog) on how to insert Latex formulas in a blog post. Unfortunately, this way does not seem to work all the time. The browser will try to convert formulas using another site each somebody tries to read the post. And sometimes, the latex formula shows up instead of the picture. So, I decided to write a Python program to call http://latex.codecogs.com/latexit.js before publishing the blog post. I only push GIF images and let the latex code as comments. You will find this code latex_svg_gif.py. Basically, it looks for latex formulas, extract them, call the site mentioned below, stores the images, put the former latex code in a comments section and adds a link to the created image.

<div lang="latex_help">
N \frac{c^k-1}{c-1} \sim N \frac{\frac{S}{N}-1}{c-1} \sim \frac{S-N}{c-1}
</div>
Becomes:
<!--
<div lang="latex_help">
N \frac{c^k-1}{c-1} \sim N \frac{\frac{S}{N}-1}{c-1} \sim \frac{S-N}{c-1}
</div>
-->
<p class="latexcenter">
<img src="giflatex/blog_2013_2013-02-07.html__Nfracck1c1simNfracfracSN1c1simfracSNc1.gif"
alt=" N \frac{c^k-1}{c-1} \sim N \frac{\frac{S}{N}-1}{c-1} \sim \frac{S-N}{c-1} " />
</p>
The picture name is the concatenation of all symbols in [a-zA-Z0-9].

However, recently, I found another framework which seems to work better than this one. I did not try but it is available with wordpress for example: MathJax.

2010-10-10 Recueil de citations

C'est une idée qui m'a prise après avoir entendu d'autres personnes dire le faire. Depuis, je mets de côté, tout du moins j'essaye, les phrases qui m'ont marquées au cours de mes lectures. Un souvenir douloureux de ma scolarité m'a convaincu, celui de n'être jamais capable d'agrémenter ma rédaction, mon essai philosophique d'un extrait (si je puis l'appeler ainsi), d'un extrait, d'une citation récités de mémoire. Sa seule présence témoignait d'un effort de lecture et était rémunérateur. Apprendre trois citations, en choisir une ou deux. Je ne l'ai probablement jamais fait comme je n'ai jamais réussi à retenir aucune petite blague cochonne sauf à l'entendre dix fois, lorsque tout effet comique s'est évaporé. Aujourd'hui, je me demande pourquoi je continue à rassembler des phrases que je ne relis pas même si je concède que recopier ces phrases me replonge dans une courte lecture qui me surprend parfois.

Il faut préciser que je ne note jamais une citation sur le coup pas plus que je souligne le texte à l'aide d'un stylo. J'ai horreur de dégrader le texte et d'influencer un improbable futur lecteur. Je corne la page, ce qui, pour certaines personnes demeure encore un sacrilège. Et c'est pour cela que je dois relire ces pages dont je sais qu'elles contiennent une phrase, plusieurs même, qui ont retenu mon attention. Parfois, je les perds, incapable de retrouver ces mots qui, même sortis de leur contexte, exprime ce que j'ai retenu du livre. Cet exercice m'aide à figer l'histoire, le raisonnement que l'ouvrage développe. Il m'aide à en parler mieux en somme.

recueil_citation.pdf

Chagrin d'école de Daniel Pennac est l'un des premiers livres que j'ai cloué ainsi :

Une bonne classe, ce n'est pas un régiment qui marche au pas, c'est un orchestre qui travaille à la même symphonie. Et si vous avez hérité du petit triangle qui ne sait faire que ting ting, ou de la guimbarde qui ne fait que bloing bloing, le tout est qu'ils le fassent au bon moment, le mieux possible, qu'ils deviennent un excellent triangle, une irréprochable guimbarde, et qu'ils soient fiers de la qualité que leur contribution confère à l'ensemble.


<--

Xavier Dupré