XD blog

blog page

2014-09


2014-09-30 Graphs, Large Datasets, Algorithm, 3D printing

I was looking at some papers, this one is particular: Community Detection via Local Dynamic Interaction which made me discover a link to website with many datasets on graphs Stanford Large Network Dataset Collection. And if you are looking for a way to show your facebook connections in your living-room, maybe you will be interested by this one: Using 3D Printing to Visualize Social Media Big Data.

2014-09-27 Comment récupérer un notebook ?

Il existe de nombreux notebooks disponibles sur internet comme A gallery of interesting IPython Notebooks. Pour récupérer un notebook comme ceux de mon cours, le plus simple est de les télécharger pour les enregistrer dans le répertoire courant de Python une fois que les notebook sont lancés. Pour obtenir cette information, le plus simple est de créer un nouveau notebook et d'exécuter le code suivant :


more...

2014-09-22 Une délicieuse part d'inconnu

Quand papa raconte l'histoire de mon premier ordinateur, il évoque toujours le fait qu'il a vendu le piano. C'était il y a presque 30 ans. Papa n'a jamais été musicien mais je pense qu'il a toujours souhaité qu'on le devienne. On projette toujours un peu ses fantasmes sur ses enfants. Le piano était au milieu du salon pour nous donner envie.

Mon premier ordinateur était un Amstrad 464. J'ai dû l'avoir entre 10 et 12 ans, je ne sais plus. Ca fait loin maintenant. Je l'ai demandé comme cadeau pour mon anniversaire après avoir vu des T07 et MO5 traîner chez des amis. Ce qui me fascine le plus dans cette histoire est qu'à cette époque, l'ordinateur était un objet incongru. Je le désirais sans vraiment savoir ce que je pourrais en faire. J'ai encore l'image en tête. Mais le plus étrange est que mon père non plus.

Quand j'y repense, ce doit être le seul cadeau que j'ai jamais reçu et dont personne à cette époque n'avait une idée précise. Mon père a pris la décision de m'offrir un cadeau qui coûtait très cher et sans savoir si celui-ci finirait comme oeuvre d'art ou contribuerait réellement au développement de son enfant, pas parce qu'il ne savait si l'objet me plairait mais plus parce que l'objet sortait du champ de son monde connu. Je crois que c'est le seul cadeau dont la fonction comportait une grande part d'inconnu.

Aujourd'hui ça me fascine. Sans doute parce que les ordinateurs sont un peu mon métier.

De son point de vue, il ne s'agissait que d'une expérimentation de plus, un prolongement de sa vie d'architecte et d'artiste. Je ne sais pas trop comment interpréter cette phrase. Je sais seulement que je n'ai pas vu de manageurs ou patrons agir comme cela.

2014-09-21 How to compare two text files?

Many tools can be used to compare the differences between two files: Comparison of file comparison tools, Top 5 diff tools. Python has a module fsdifflib but this is not very visual. Another option is to use javascript and a tool such as jsdifflib.


more...

2014-09-20 Magic command %%CS for IPython Notebook

The notebooks IPython offer a couple of magic command to run others language such %%R, %%octave or %%julia. I found one option for F# but nothing on something like %%CS. However, magic commands are quite easy to handle. It is not that difficult to add one which allows me to do that:

%%CS mypower System.dll
public static double mypower(double x, double y)
{
    if (y == 0) return 1.0 ;
    return System.Math.Pow(x,y) ;
}

To be able to call it that way:

mypower(3.0,3.0)

more...

2014-09-17 An issue or something to know with pythonnet

pythonnet is a module which can access .net assemblies (written in C# for example).

from clr import AddReference
AddReference("something.dll or .exe")

It only works if the DLL can be found in one path in sys.path and also if all dependencies are located in the same folder. If it is not the case, dependencies must be loaded first.

from clr import AddReference
import sys
sys.path.append("path to dependencies.dll")
AddReference("dependencies.dll")
sys.path.append("path to something.dll")
AddReference("something.dll or .exe")

2014-09-14 Ajouter des commandes magiques en IPython

IPython a beaucoup de magic commands. Et on peut même ajouter les siennes. Comme je suis sûr d'oublier la syntaxe, je l'ai mise ici : custom_magics.py.

2014-09-13 La programmation à l'école

J'écoutais l'émission Le téléphone sonne sur France Inter à propos du contenu des enseignements. Je faisais autre chose à côté donc je ne me souviens pas de tout et puis le ton du dialogue nous amène un peu partout sans vraiment construire une réflexion. Toutefois, au milieu de l'émisssion, Cédric Villani prend la parole pour dire que les enfants devraient pratiquer un sport, jouer d'un instrument de musique, apprendre un langage de programmation et puis l'anglais pour voyager.

Le plus étrange est qu'il a pris le temps de préciser que l'anglais était indispensable pour voyager sans justifier les autres ingrédients de la liste. En guise de réponse, je citerais une conférence de François Elie qu'un élève m'a fait découvrir.

Pourtant dans l'article Ces branchés qui débranchent (voir aussi La soeur du patron de Facebook conseille aux enfants de se déconnecter), on y apprend que les patrons des startups les plus célèbres désirent une éducation presque sans écran pour leurs enfants.

Peut-être faut-il en déduire que le numérique à l'école ne passe pas nécessairement par un écran.

2014-09-09 How to get version and license for installed modules

I run into the package license-info. It did not work as it is but after a couple of modifications, it gives:

sphinxjp.themes.revealjs==0.2.0 #MIT
tessera-client==0.4.1 #Apache
antlr4-python3-runtime==4.4.1 #BSD
basemap==1.0.8 #OSI Approved
cvxopt==1.1.6 #GNU GPL version 3
Cython==0.20.2 #Apache Software License
Flask==0.10.1 #BSD
numpy==1.8.1 #BSD
openpyxl==1.6.2 #MIT/Expat
pymc==2.3.3 #Academic Free License
pywin32==219 #PSA
pyzmq==14.3.0 #LGPL+BSD
selenium==2.42.1 #Apache Software License
Sphinx==1.2.2 #BSD
sphinxcontrib-fancybox==0.3.4 #BSD
spyder==2.3.0 #MIT
statsmodels==0.5.0 #BSD License
tables==3.1.1 #http://www.opensource.org/licenses/bsd-license.php
tornado==3.2.1 #http://www.apache.org/licenses/LICENSE-2.0

The code follows.


more...

2014-09-08 Chercher, essayer, apprendre

On parle beaucoup des nouveaux horaires à l'école. Il n'est pas facile de savoir quoi en penser. Tout au plus, je me dis qu'il y a des sujets plus intéressants et puis qu'un professeur passionné et intéressant est sans doute plus important que l'horaire auquel il officie. Quand je raconte ma scolarité, j'ai souvent tendance à citer les professeurs qui m'ont marqué. Je regardais la vidéo sur TED liée à cet article Histoire : Bill Gates a réussi à changer les programmes scolaires. Je me demandais si cette façon d'aborder l'histoire lui était venue jeune ou si elle était issue d'une forme de recherche pédagogique continue. L'article suivant m'a fait un peu sourire Prof, je suis prêt à être évalué par mes élèves. Je pense que si cela était plus répandu, il n'y aurait plus d'appréhension. L'article suivant fait un peu peur : Pourquoi une petite ville du Tennessee a l'Internet le plus rapide du monde. Je me demande à quoi correspond le prix que je paye pour Internet. Et puis je suis tombé sur cet article : Céline Alvarez, une institutrice révolutionnaire. Je me suis demandé comment les écoles du type Montessori, Freinet, Steiner-Waldorf appréciaient ce genre d'expérience puisqu'apparemment il est possible d'appliquer Montessori à l'école publique. Satisfaction ? Concurrence ? Amusement ? Je suis surpris qu'avec le temps les frontières entre ces différentes pédagogies ne soient pas plus poreuses. Je me suis retrouvé Wanda écouter une histoire à La Maison des Contes et des Histoires. Si seulement les cours de maths pouvaient ressembler à ses histoires, je serais comblé.

2014-09-07 Four issues I had when using IPython, R and rmagic

I wanted to use R through IPython notebook to mix Python and R. I did it on Windows and I guess it requires to be more careful. I went through four issues.


more...

2014-09-05 Rentrée scolaire

C'est reparti pour une année et je m'aperçois que beaucoup de choses ont changé en un an. Mes cours ont quitté Latex pour Sphinx et ont trouvé place sur GitHub. Toujours aussi peu désireux de répéter toujours les mêmes tâches, je n'ai que deux scripts à lancer pour compiler les cours et les mettre à jour sur mon site. J'ai testé pas mal de template (intraduisible en français) sphinx pour finalement un choisir un facile à lire sur ordinateur, tablette et téléphone portable : ENSAE - Programmation - Xavier Dupré. J'ai ajouté une présentation au format revealjs : ENSAE 1A - PROGRAMMATION qui passe tout aussi bien sur presque tous les téléphones. L'éditeur SciTE, tellement simple que je n'ai pas encore réussi à m'en passer, a pourtant laissé une grande place aux Notebook. J'ai commencé un module python pyensae afin d'y mettre les bouts de code que je transmets aux élèves. Il inclut une fonction download_data qui télécharge des données directement depuis mon site.

Je me souviens encore d'une discussion voici presque 10 ans avec un ami qui me disait : Il faut arrêter le C++, c'est trop compliqué pour une première découverte de la programmation. Il s'occupait des cours d'informatique à l'ENSAE. Un peu au même moment, un élève m'annonçait fièrement après les examens qu'il avait grandement contribué à sept projets. Mais pourquoi Python, lui demandais-je ? C'est le langage avec la plus petite spec, me répondit-il. Et il n'y a pas de point virgule, c'est l'indentation qui détermine les blocs. C'est vrai qu'un langage à point virgule mène souvent à des poèmes à la Prévert. J'ai acheté un livre et j'ai appris le Python trois semaines avant la rentrée et j'ai préparé mes cours dans le même temps. Plus de C++, voilà Python. Le nom du langage a également disparu de l'intitulé du cours. Il y a dix ans, Python, ça ne faisait pas assez sérieux.

Et aujourd'hui ? Python ne cache plus son nom. Le premier résultat de recherche fait référence au langage et non au serpent. Les chercheurs s'y mettent aussi. En deux ans, le langage s'est beaucoup étoffé. Et l'écart entre ce que j'enseigne et l'usage que j'ai du langage s'est considérablement réduit. Au quotidien, je notebooke beaucoup.

Mais si j'écris aujourd'hui, c'est ce que je suis stressé. C'est la rentrée.

2014-09-01 Henri IV

Un jour, j'aurais le temps de regarder tout ça : Henry VI par Thomas Jolly au Festival d'Avignon 2014 - Épisode 1.


Xavier Dupré