In Fine Academy : Programmation parallèle avec GPU sur CUDA

Par | Classé dans Conférence, Débutant | Le 27/04/2011

Tags « »

0

Hier, s’est tenue au siège la deuxième présentation d’In Fine Academy portant sur la programmation parallèle avec GPU sur CUDA par Maxime Fromentin, consultant In Fine.

En attendant l’article de Maxime, plusieurs personnes nous ont réclamé son support de présentation, alors le voici :


Depuis quelques années, les processeurs graphiques (GPU) ont vu leur capacité considérablement augmenter. En plus du rendu graphique, ceux-ci sont désormais capables d’effectuer des opérations complexes avec notamment l’apparition de CUDA développé par Nvidia. Basée sur le parallélisme de masse, la technologie GPU voit son champ d’application s’étendre du domaine scientifique à la finance et ceci avec des performances très intéressantes comparées aux processeurs traditionnels.




Comprendre un pari sportif: exemple sur PSG-Lyon du 17 avril

Par | Classé dans Débutant, Finance | Le 15/04/2011

Tags « »

1

Depuis début 2010, la France a autorisé les sites de paris en ligne concernant les courses hippiques, les paris sportifs, et le poker. C’est au fonctionnement des paris sportifs que nous allons nous intéresser, et plus particulièrement à la manière dont ces sites se rémunèrent.

Fonctionnement du système de cote

Sur un événement sportif à venir, chaque issue possible se voit attribuer une cote par le site de paris en ligne en fonction de la probabilité estimée de cette issue.

Nous allons dans ce post développer l’exemple des cotations pour un match de football de Ligue 1 PSG-Lyon du dimanche 17 avril 2011 avec 3 issues possibles :

  • Victoire de PSG
  • Victoire de Lyon
  • Match nul entre les deux équipes

Sur un site de paris sportifs on trouvera le tableau suivant :

Indiquant le coefficient par lequel est multipliée notre mise en cas de bon pronostic.  Ainsi miser 1€ sur une victoire du PSG nous rapportera 2,25€ si PSG bat Lyon, et 0€ sinon.

Comment un site de paris en ligne effectue sa cotation ?

Bien entendu ces cotes ne sont pas attribuées au hasard, car de la bonne attribution de celles-ci dépendront les gains potentiels du site de paris. Ce dernier, au contraire du parieur, cherchera à gagner de l’argent quelque soit l’issue du match, tout en attirant les joueurs en proposant des cotes attractives.

Lire la suite…

WPF & Silverlight : L’état de l’art au Microsoft TechDays 2011 (partie 1)

Par | Classé dans .NET, Conférence, Débutant | Le 11/03/2011

Tags « »

2

A chaque événement TechDays, c’est l’effervescence au sein de la communauté Microsoft. Pour commencer cette nouvelle année, c’est le Cloud qui était à l’honneur. Mais nous allons ici évoquer un sujet un peu moins brumeux et qui, nous, les développeurs .NET, nous concerne plus particulièrement : WPF & Silverlight.

A travers une série d’articles, nous ferons le point sur les principales conférences autour de WPF & Silverlight…

Changer la vie de vos utilisateurs en intégrant du design et de l’ergonomie par Olivier Courtois (Bewise)

De nos jours, nous avons affaire à des “superutilisateurs” qui ont des attentes surdéveloppées. Bien plus que par le passé, les applications doivent se soucier davantage du confort d’utilisation : on parle alors d’ergonomie. Pour pallier à des surcoûts postproduction, cette réflexion doit être posée en amont.

Le travail général de l’ergonomie s’effectue dans le cadre d’une réflexion centrée autour de l’utilisateur. Cette réflexion, auprès d’utilisateurs réels -dans le meilleur des cas- ou auprès d’utilisateurs fictifs, donne naissance aux exigences ergonomiques.


Lire la suite…

Ce que j’aime dans Play!

Par | Classé dans Débutant, Java | Le 18/02/2011

Tags « »

4

play logoJe suis devenu un adepte du framework Play!. Je ne le pratique pas depuis longtemps, seulement depuis 10 mois environ. Mais la courbe d’apprentissage est vraiment rapide. Une semaine est suffisante pour être à l’aise et être autonome. J’ai la modeste prétention, dans cet article, de montrer 2 ou 3 trucs qui font de ce framework une nouvelle manière de voir le web en Java.

Pour commencer, Play! est très simple à installer. Il suffit de décompresser le zip dans un répertoire, et de créer une variable PLAY_HOME qui pointe sur ce répertoire. Play! a uniquement besoin de Java comme pré-requis pour fonctionner. Et c’est tout ! Pour rappel, la plupart des autres frameworks web Java ont au moins besoin d’un serveur d’application…

Comme Play! embarque un serveur web, il se suffit à lui-même. Cette notion est appelée “full-stack”. Elle signifie que Play! est autonome à la fois dans son mode de développement en proposant tout ce qu’il faut pour faire une application web, de la couche présentation à l’accès aux données, et également lors de l’exécution des applications Play! qui tournent grâce au serveur web intégré.

Play! propose de nombreuses fonctionnalités peu répandues dans le monde du web en java. Par exemple, le code modifié est pris à chaud par le serveur web, il suffit de rafraîchir le navigateur pour voir sa modification ! La gestion d’erreur est également poussée. Lorsqu’une exception se produit, l’erreur s’affiche très clairement dans le navigateur. Comme le montre l’image suivante :

Play exception page

Cliquez sur l'image pour l'agrandir

Le développement rapide est une des caractéristiques de Play! On passe beaucoup plus de temps à coder qu’à faire de la configuration ou de l’installation. Et ce n’est pas tout, Play! propose beaucoup de moyens d’accélérer le développement. Je vais donc vous en montrer quelques uns. Je ne compte pas énumérer tout ce qui fait que Play! permet de développer rapidement, mais seulement donner un aperçu.
Play! propose sur son site, une documentation très complète, ainsi qu’un tutoriel bien fait qui permet de se familiariser avec les notions principales du framework. Si on peut paraître sceptique devant tant de d’enthousiasme, faire le tutoriel permettra à quiconque de se rendre compte de la rapidité avec laquelle le développement se fait avec Play!.

Lire la suite…

“==”.equals(“equals()”)

Par | Classé dans Débutant, Java | Le 11/01/2011

Tags « »

0

Les fondamentaux

En java, la comparaison s’effectue principalement en utilisant 3 méthodes qui n’ont pas les mêmes buts :

  1. L’opérateur == est utilisé pour comparer les types primitifs et les objets. Il compare uniquement les références. Cela signifie que l’opérateur retournera “true” uniquement si les 2 objets comparés sont les mêmes en mémoire.
  2. La méthode ‘equals()’ permet de comparer 2 objets. Toutes les classes ont une méthode ‘equals()’ héritée de la classe Object. Cette méthode compare la valeur de 2 objets. S’ils représentent la même chose, alors la méthode doit renvoyer “true”. Cette méthode est plus difficile qu’il n’y paraît à implémenter. Je pourrais revenir dessus ultérieurement dans un prochain article.
  3. La méthode ‘compareTo()’ permet de comparer 2 objets comme la méthode ‘equals()’. Contrairement à ‘equals()’, les classes ne définissent pas toutes cette méthode. Pour cela il faut hériter de l’interface Comparable. Cette méthode est utilisée pour pouvoir trier les objets l’implémentant. Si les 2 objets sont égaux, alors la méthode doit renvoyer 0 ; si un object O1 est considéré précédent un autre object O2 alors il faut renvoyer -1, si O2 précède O1 alors il faut renvoyer 1.
int i = 5, j = 5, k=8;
Integer int1 = new Integer(42) ;
Integer int2 = new Integer(42) ;
String str1 = "Blog";

java.util.Date t1 = new java.util.Date();
Thread.sleep(1000l);
java.util.Date t2 = new java.util.Date();

System.out.println (i == j); // print true
System.out.println (int1 == int2); // print false
System.out.println ("Blog".equals(str1)); // print true
System.out.println (str1 == "Blog"); // déconseillé mais écrit true
System.out.println (t1.compareTo(t2)); // print -1

Les comparaisons faites avec ‘equals()’ ou ‘compareTo()’ entre une variable et une constante doivent être réalisées comme à la ligne 13 de l’exemple précédent, c’est-à-dire qu’il faut comparer la constante avec la variable à tester. Ceci permet d’éviter une potentielle NullPointerException si l’on faisait ‘str1.equals(“Blog”)’.

Le cas particuliers des enum

Depuis java 5, les enum ont été introduits dans java. Les enum pourraient faire l’objet d’un article complet, mais il est bon de savoir que les enum ont été créés pour être comparés avec l’opérateur ‘==’. N’hésitez donc pas à les utiliser ! En plus d’être très lisibles, ils sont performants à l’usage.

Lire la suite…

L’effet corner : illustration sur Hermes International le 25 octobre 2010

Par | Classé dans Débutant, Finance | Le 15/12/2010

Tags « »

1

L’effet corner

Lorsque des acteurs du marché parient à la baisse sur un titre du marché français, ils peuvent vendre ce titre à découvert au SRD (service de règlement différé) si ce titre y est éligible. Ceci leur permet de vendre des actions qu’ils n’ont pas encore, sans transfert d’argent.

Puis le jour de la liquidation (5ème jour ouvré avant le dernier jour du mois civil, pour le calendrier des liquidations c’est ici), ils doivent décider :

  • de racheter les titres et donc encaisser (si le cours a baissé) ou payer (si le cours a monté) la différence
  • ou de différer la livraison au mois suivant

Lire la suite…