XD blog

blog page


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

2014-10-24 Programmation Artistique

Je viens de passer la semaine à essayer de comprendre comment faire des choses simplement avec des outils compliqués. C'est comme si je m'étais cassé la tête à essayer de comprendre le manuel de mon réfrigérateur dont je ne sais toujours pas régler la température, le réglage de ma chaîne hifi ou le bouton camouflé qui ouvre mon aspirateur. Il est si discret que j'oublie à chaque fois que ce n'est pas un auto-collant. On perd un temps fou à essayer de comprendre cette forme de raisonnement intuitif qu'un autre a imaginé pour vous. Et comme cet intuitif m'échappe complètement ce soir, j'aimerais me dire que mon frigo fonctionne comme ce livre : Raisonnements divins et que le temps que je passe à essayer de le comprendre n'est pas passé en vain. Heureusement qu'il garde les bières au frais, sinon, je crois que je deviendrais fou.

2014-10-23 Fix table of contents in a Notebook

When I have a long notebook, I find it difficult to navigate through it. Maybe I should not do that. However, some outputs are quite long sometimes and the page gets longer. I usually put a table of contents at the beginning but it means I need to go back to the top of the page anytime I want to go to a specific section. That's why I tried a table of contents in a section div with an absolute position (the notebook is here). It works nice even if the mix between markdown and HTML gives weird results sometimes. The only drawback is the conversion of the notebook into HTML or rst. The table of contents shows up at the top of the page at the expected place but disappears after the page was scrolled down.

2014-10-22 De l'horloger au programmeur

Il y a quelques mois, le distributeur à côté de mon bureau était une mécanique bien huilée. On appuie sur un bouton, une longue vis tourne d'un nombre de tours très précis et laisse tomber la marchandise qu'on récupère en bas. Il arrive que la machine se bloque. Il suffit d'ouvrir, de retirer le paquet et de refermer. Elle se bloque rarement. Pour la boisson suivante, elle recommence sans se soucier de ce qui est arrivé à la précédente. La mécanique se dérègle au moindre pépin mais elle a été conçue pour y résister.

La nouvelle machine est tout-à-fait différente. Elle fonctionne avec des capteurs. Elle pousse les boissons jusqu'à ce qu'elle détecte qu'une tombe, elle refuse de passer à la suivante tant qu'elle détecte que la boisson demandée n'a pas été retirée. Ses mouvements ne sont pas réglés au millimètre près, elle réagit par rapport à une séquence d'événements. Tant qu'un événement précis n'a pas été détecté, elle exécute une commande censé le provoquer. Ce mode de fonctionnement est plus celui d'un programmeur que d'un horloger. La machine est plus réactive lorsqu'une boisson a été mal positionnée.

Je ne sais pas laquelle des deux commence le moins d'électricité. C'est difficile à dire comme la seconde a été construite avec des composants plus récents et moins consommateur. Mais je m'attends dans peu de temps à ce que la seconde prépare le café si je lui envoie un SMS et qu'il soit prêt quand j'arrive le chercher.

2014-10-21 Pycrypto on Windows

I was looking for a way to build pycrypto on Windows. So I started to download Visual Studio Express 2010. But it requires to get MPIR and GMP. I gave up. Unfortunately, many versions are available at The Voidspace Python Modules, but nothing for Python 3.4. Fortunately, the rest can be found in a link mentioned at pycrypto 3.4 binaries for windows x86.

2014-10-17 Python Just In Time Compilation (JIT)

I discovered a new package to do just in time compilation for Python: HOPE. The following paper gives a promising benchmark compare to others alternatives: HOPE: A Python Just-In-Time compiler for astrophysical computations. It was not tested on Windows.

2014-10-16 Coding in a train without internet

I'm in a train unable to access internet and I thought I could do something without it. But what I do is not an algorithm, it is a simple functionality which requires a function I use from time to time. It is Python, so I type help (function). I understand what it says but I'm unable to guess what value I need and there is no example. I know I could easily get that by using a search engine python function example. But I can't so I prefer to give up just because I know I could spend a lot of time guessing this particular value I don't know. I don't know how to program without internet anymore.

2014-10-11 Machine learning et algorithme

Il existe plein d'outils pour manipuler les données, pandas, R, Excel, ... Ces outils font la plupart des choses pour nous et pourtant parfois, on a besoin de calculer un indicateur imprévu. C'est la cas du drawdown qui est un indicateur financier qu'on calcule parfois sur la performance d'un produit financier. Naïvement, on implémente une solution qui n'est pas toujours optimale et pourtant son calcul est identique à celui de la sous-séquence de plus grande somme qui est un algorithme classique.

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.


<-- -->

Xavier Dupré