XD blog

blog page

programmation


2019-09-27 Petit plaisir de professeur

C'est un petit plaisir de professeur : arriver en cours et exposer ce qu'on sait déjà mais sans vraiment l'avoir vérifié de ses propres mains : la régression Lasso permet de sélectionner les variables. Et puis finalement, le jour où je le dis, je ne suis pas plus convaincu que les étudiants en face de moi. Pourquoi ça marche avec cette norme et pas la norme L2 ? Bref, devant le silence d'un cours 20 minutes avant la pause déjeuner, après 2h30 de cours magistral, je me suis pris d'envie de calculer un gradient. Et là, en voyant la formule, l'intuition, je comprends qu'il y a une impossibilité car le gradient ne s'annule pas autour d'un point en particulier contrairement à la régression L2. En gros, si le gradient est mal foutu, il ne peut pas exister de solution autour. J'ai eu un peu de mal à partager cette intuition et j'ai laissé les étudiants avec un début de phrase pas faux mais pas suffisamment complet pour être tout-à-fait vrai. Je me suis dit qu'il fallait compléter la preuve : Normalisation des coefficients. La preuve n'est pas valable dans tous les cas mais l'idée suffit juste d'être poussée un peu plus loin. L'idée est développée un peu plus dans Regularization and Penalized Regression (Arthur Charpentier).

2019-06-25 V

J'ai lu l'article car le langage V m'évoquait la vieille série américaine V. De là à penser que ce langage allait contaminer tous les autres, il a l'air suffisamment rapide à la compilation pour rendre obsolète les langages interpréter tels que Python. Le nombre de contributeurs est encore assez réduit mais c'est comme une oeuvre d'art. Le partie C est ici v.c.

2018-08-30 Python 3.7

For those would want to install many packages on a :epkg:`Linux` machine, here are the instruction I followed for most of the content I write for my teachings : Install Python 3.7 and many packages on Linux Debian 9.

2018-05-30 The practice of reproducible research

Common rules, common formats, documentation, small steps, unit tests, it seems obvious to many and not that obvious for every who tried to put that in practice. Some inspiration: The Practice of Reproducible Research (or the PDF). To my opinion, reproducible research is not a goal, it is a need.

2016-05-25 2 Challenges Big Data

Data Science Game 2016 C'est une compétition internationale regroupant des équipes de 4 étudiants d'une même école (doctorants inclus !). L'évènement étant en partie créé par l'ENSAE, l'école se doit d'y participer! Princeton, la National University of Singapour, Télécom ou la TSE se sont déjà inscrits... Bref, l'évènement est parrainé par Capgemini et Microsoft, il y aura du beau monde et de la visibilité !

Paris Summer Innovation Fellowship En partie organisé par Data for Good x Bayes Impact, c'est un programme d'innovation intensif de 2 semaines pour vous permettre de développer un projet de data science à impact social. Les participants recevront une bourse de financement et des conseils d'experts tels que Paul Duan (fondateur de Bayes Impact), Rand Hindi (fondateur de Snips) ou Max Song (ex genetic engineer à la NASA). Ça se déroule dans les superbes locaux de FiveByFive (Paris 10ème) avec une présentation prévue à la mairie de Paris en septembre.

A propos des Big Data, Olivier Grisel (un des concepteurs de scikit-learn) est passé sur France Inter dans la tête au carré Nos vies à l'heure des "big data".

2016-04-23 5 polyèdres réguliers en pâte à modeler

Lors de la semaine Digigirlz organisée par Microsoft (Microsoft lance les vacances 100% geek réservées aux filles, Madame Le Figaro, 21/04/2016), j'ai animé un atelier d'initiation aux algorithmes durant lequel je ne fais pas toujours des algorithmes mais parfois des mathématiques afin de montrer que ce n'est pas la torture à laquelle tout le monde pense. Même si les énoncés sont souvent très formels, il est difficile de croire qu'ils aient émergé sous cette forme dans l'esprit de leur inventeur. Cela naît d'une intuition qu'on éprouve, qu'on teste, à l'aide de pâte à modeler par exemple : A Issy, les collégiennes passent leurs vacances en « colo » numérique, Le Parisien, 23/04/2016. En voici un peu plus sur ce que j'ai fait ce jour-là : Mathématiques et pâtes à modeler.

2016-03-25 Les classes en programmation

Monsieur, c'est vraiment utile les classes ? On est obligé de les utiliser ? C'est le genre de questions que les étudiants posent alors qu'ils commencent leur projet. La réponse courte consiste à répondre que c'est plus pratique. Mais concrètement, ça veut dire quoi plus pratique ? D'une manière générale, on s'embarrasse rarement d'un concept s'il n'apporte rien. On peut écrire les mêmes programmes sans classes mais...


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-02-06 Quelques trucs à propos de PIG

PIG a besoin de connaître le nombre exact de colonnes. Supposons que vous ayez quatre colonnes :

c1  c2  c3  c3
1   2   3   4
6   7   8   9
...

PIG ne dira rien si on écrit ceci :

A = LOAD '$CONTAINER/$PSEUDO/fichiers/ExportHDInsightutf8_noheader.txt'
          USING PigStorage('\t') 
           AS (c1:chararray,c2:chararray,c3:chararray) ;

La dernière colonne sera forcément incluse avec une autre, ce entraînera une erreur plus tard dans l'exécution du script. Une autre erreur causée par inadvertance :

2015-02-05 23:40:54,964 [main] ERROR org.apache.pig.tools.pigstats.SimplePigStats - 
ERROR 0: Exception while executing [POUserFunc 
(Name: POUserFunc(org.apache.pig.builtin.YearsBetween)[long] - 
scope-380 Operator Key: scope-380) children: null at []]: 
java.lang.IllegalArgumentException: ReadableInstant objects must not be null

Cette erreur apparaît par exemple lors de la conversion d'une chaîne de caractères au format Date. Par ailleurs, on sait que les valeurs de cette colonne ne sont jamais nulles. Alors pourquoi ? Le fichier importé sur Hadoop provient en fait d'un fichier texte enregistré à l'aide de pandas. La première ligne contient le nom des colonnes. Or, sous Hadoop, le nom des colonnes n'est jamais précisé dans un fichier. Il n'y a pas de concept de première ligne sous Hadoop. Un gros fichier est stocké sur plusieurs machines et en plusieurs blocs. Chaque blocs a une première ligne mais l'ensemble des blocs n'en a pas vraiment. Ces blocs ne sont d'ailleurs pas ordonnés. On n'insère donc jamais le nom des colonnes dans un fichier sur Hadoop car il n'y a pas de première ligne.

2014-12-29 Coding goûter sans ordinateur

A partir de 7 ans :

2014-12-13 On fait la même chose pour des sciences abstraites ?

Méfiez-vous, quand on commence, on ne s'arrête plus : ExperimentBoy. Un peu moins drôle mais tout aussi prenant : La malédiction de la tartine beurrée. Et en math : Aux sources du zéro.

2014-12-05 Les légos de demain

De mon temps, on jouait au scrabble le dimanche. Aujourd'hui, c'est pareil à ceci près que chacun implémentera son algorithme pour placer les mots, pour les trouver aussi. Je ne sais pas si je serai encore enseignant lorsque la génération qui participe à des événements tels que les Coding goûter à Dunkerque aura 20 ans. Ca change vite. Ca change en ce moment.

2014-11-13 1981 : apprendre la programmation à l'école ?

En farfouillant sur Internet, je suis tombé sur un texte de Andreï Erschov : La programmation est un deuxième alphabétisme. C'est un exposé de 1981 sur l'utilisation des ordinateurs dans l'enseignement. C'est en Russe mais j'ai copié collé une traduction française faite par un moteur de traduction automatique et un peu retravaillée avec la traduction anglaise de meilleure qualité. J'espère que je n'ai pas déformé les propos de l'auteur, ce que je suis incapable de vérifier. Le texte a plus de trente ans mais il exprime déjà l'intuition que l'ordinateur et plus particulièrement la programmation vont considérablement changer la société, presque autant que l'écriture. Il est important que cette dernière fasse partie de l'enseignement afin de mieux préparer les enfants.


more...

2014-10-25 agt-get on Windows = chocolatey

Installing a package is quite convenient on Linux : there is only one way. On Windows, you usually go to each software website and download the setup from there. But there exists another option now: chocolatey. Once it is installed, you can install a software just like that:

choco install notepadplusplus

-->

Xavier Dupré