Quickie Incanter/Clojure à Devoxx France 2012
Upcoming SlideShare
Loading in...5
×
 

Quickie Incanter/Clojure à Devoxx France 2012

on

  • 2,866 views

Présentation d'Incanter et initiation à Clojure. Les exemples de code sont sur GitHub https://github.com/cfalguiere/Demo-Incanter-Devoxx-France

Présentation d'Incanter et initiation à Clojure. Les exemples de code sont sur GitHub https://github.com/cfalguiere/Demo-Incanter-Devoxx-France

Statistics

Views

Total Views
2,866
Views on SlideShare
1,340
Embed Views
1,526

Actions

Likes
0
Downloads
20
Comments
0

8 Embeds 1,526

http://cfalguiere.wordpress.com 1420
http://www.codesorceresses.eu 90
https://cfalguiere.wordpress.com 8
http://feeds.feedburner.com 4
http://abtasty.com 1
http://armaklan.fr 1
http://www.yatedo.fr 1
http://armaklan.org 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Quickie Incanter/Clojure à Devoxx France 2012 Quickie Incanter/Clojure à Devoxx France 2012 Presentation Transcript

  • goo.gl/4mmJQdes statistiques en un coup de baguette magique Claude Falguière - @cfalguiere Devoxx France 20 Avril 2012 1
  • L’incantation du jour 2
  • L’incantation du jour 2
  • L’incantation du jour 3
  • L’incantation du jour 3
  • Claude Falguière Architecte Technique depuis plus de 10 ans@cfalguiere 4
  • Incanter : Clojure + R The R Project for Statistical Computing 5
  • Incanter : Clojure + R = + The R Project for Statistical Computing 5
  • Incanter, quelles magies Charting & visualization Mathematical functions Statistical functionsMatrix & linear algebra functions Data manipulations 6
  • Incanter, quelles magies Charting & visualization Mathematical functions Statistical functionsMatrix & linear algebra functions Data manipulations 6
  • Incanter, quelles magies 7
  • Incanter, quelles magiesProbability distributions ProbabilitésMonte Carlo simulation 7
  • Incanter, quelles magiesProbability distributions ProbabilitésMonte Carlo simulation Linear regression Hypothesis / Significance / Correlation tests Principal Componants Analysis (PCA) Statistiques Statistical learning / Classification Bayesian statistics ... 7
  • Langage fonctionnel Source http://r.wikipedia.org/wiki/Programmation_fonctionnellePas depanique ... 8
  • Langage fonctionnel Source http://r.wikipedia.org/wiki/Programmation_fonctionnelleFonctions 8
  • Langage fonctionnel Source http://r.wikipedia.org/wiki/Programmation_fonctionnelleFonctions Programme = emboîtement de fonctions que lon peut voir comme des « boîtes noires » 8
  • Langage fonctionnel Source http://r.wikipedia.org/wiki/Programmation_fonctionnelleFonctions Programme = emboîtement de fonctions que lon peut voir comme des « boîtes noires » Chaque boîte possède plusieurs paramètres en entrée mais une seule sortie 8
  • Langage fonctionnel Source http://r.wikipedia.org/wiki/Programmation_fonctionnelleFonctions Programme = emboîtement de fonctions que lon peut voir comme des « boîtes noires » Chaque boîte possède plusieurs paramètres en entrée mais une seule sortie Pas d’état => pas d’effet de bord 8
  • ClojureLISP like ((()()())) compilé en bytecode Sur JVM toutes les librairies Java sont disponibles Orienté données immuables et collections persistantes concurrence support du multi-threading 9
  • Clojure - expressions 10
  • Clojure - expressions(println "Hello Devoxx") -> "Hello Devoxx" 10
  • Clojure - expressions(println "Hello Devoxx") -> "Hello Devoxx"(def conference "Devoxx")(println "Hello" conference) 10
  • Clojure - expressions(println "Hello Devoxx") -> "Hello Devoxx"(def conference "Devoxx")(println "Hello" conference)(count (str "Hello" conference)) -> 11 10
  • Clojure - intégration Java 11
  • Clojure - intégration Java(println "Hello"(.toUpperCase conference)) 11
  • Clojure - intégration Java(println "Hello"(.toUpperCase conference))(javax.swing.JOptionPane/showMessageDialog nil"Hello Devoxx") 11
  • Clojure - fonctions 12
  • Clojure - fonctions(def print-hello (fn[name] (println "Hello", name))) 12
  • Clojure - fonctions(def print-hello (fn[name] (println "Hello", name)))(defn print-hello [name] (println "Hello", name))(print-hello "Devoxx") 12
  • Clojure - fonctions(def print-hello (fn[name] (println "Hello", name)))(defn print-hello [name] (println "Hello", name))(print-hello "Devoxx")(def conferences ("Devoxx" "Mix-IT"))(map #(str "Hello " %) conferences) -> ("Hello Devoxx" "Hello Mix-IT") 12
  • Clojure - les nombres 13
  • Clojure - les nombresBoxésDouble par défaut 13
  • Clojure - les nombres (+ 1 2 3) -> 7BoxésDouble par défaut 13
  • Clojure - les nombres (+ 1 2 3) -> 7Boxés (+ 4 (* 2 3)) -> 10Double par défaut 13
  • Clojure - les nombres (+ 1 2 3) -> 7Boxés (+ 4 (* 2 3)) -> 10Double par défaut (= 2 (+ 1 1)) -> true 13
  • Clojure - les nombres (+ 1 2 3) -> 7Boxés (+ 4 (* 2 3)) -> 10Double par défaut (= 2 (+ 1 1)) -> true (= 1 1.0) -> true 13
  • Clojure - les collectionsList,Vector,Set 14
  • Clojure - les collections (def valuelist (1 2 2 3)) (def avector [1 2 2 3])List, (def aset #{1 2 3})Vector,Set 14
  • Clojure - les collections (def valuelist (1 2 2 3)) (def avector [1 2 2 3])List, (def aset #{1 2 3})Vector,Set (count valuelist) -> 4 (count (2 1 3)) -> 3 14
  • Clojure - les collections (def valuelist (1 2 2 3)) (def avector [1 2 2 3])List, (def aset #{1 2 3})Vector,Set (count valuelist) -> 4 (count (2 1 3)) -> 3 (nth (2 1 3) 0) -> 2 ([1 2 2 3] 0) -> 1 14
  • Clojure - les collectionsMap 15
  • Clojure - les collections (def colormap { "Black" 0, "White" 7} ) (def person { :name "Alice", :score 2} )Map 15
  • Clojure - les collections (def colormap { "Black" 0, "White" 7} ) (def person { :name "Alice", :score 2} )Map (colormap "White") -> 7 (person :name) -> "Alice" 15
  • Clojure - les collections (def colormap { "Black" 0, "White" 7} ) (def person { :name "Alice", :score 2} )Map (colormap "White") -> 7 (person :name) -> "Alice" (map #(:score %) (filter #(= (:name %) "Alice") persons)) -> 1 15
  • Incanter - la collection Dataset 16
  • Incanter - la collection Dataset(def inputds (read-dataset "test-data.csv" :header true)) 16
  • Incanter - la collection Dataset(def inputds (read-dataset "test-data.csv" :header true))($where {:status "true"} inputds) -> les lignes OK 16
  • Incanter - la collection Dataset(def inputds (read-dataset "test-data.csv" :header true))($where {:status "true"} inputds) -> les lignes OK($ :t inputds) -> la colonne t 16
  • Incanter - la collection Dataset(def inputds (read-dataset "test-data.csv" :header true))($where {:status "true"} inputds) -> les lignes OK($ :t inputds) -> la colonne t(mean ($ :t inputds)) -> la moyenne 16
  • Incanter - visualisation(view inputds) 17
  • Incanter - visualisation(view inputds)(histogram :t :data inputds) 18
  • Incanter - visualisation(view inputds)(histogram :t :data inputds)(time-series-plot :ts :t :data inputds)) 19
  • Incanter - initiation à la magie 20
  • Incanter - initiation à la magieLes grimoiresincanter.orgdata-sorcery.orggithub.com/liebke/incanterclojure.org4clojure.com 20
  • Incanter - initiation à la magie 21
  • Incanter - initiation à la magie L’atelier REPL Emacs - Slime Eclipse - CounterClockWise IDEA - La Clojure 21
  • Incanter - initiation à la magie 22
  • Incanter - initiation à la magie Les assistants Leiningen Midge Swank ... 22
  • Incanter - se lancer 23
  • Incanter - se lancerLa voie du novice downloader Incantercliquer sur l’icône 23
  • Incanter - se lancer 24
  • Incanter - se lancerLa voie du gourouinstaller clojure, lein, swank, incanter ... 24
  • Incanter - se lancer La voie du gourou faineant installer cljr cljr install incanter cljr repl REPL & more (lein, swank, ...) 24
  • Incanter - quelques incantations 25
  • Incanter - quelques incantationsLe fichier tu liras Le graphe des temps de réponse tu afficherasLes erreurs tu filtreras Les données tu grouperas par labelLa moyenne des temps de réponse tucalculeras Sur chaque groupe, la moyenne des temps tu produirasLes statistiques des temps de Pour chaque groupe, l’histogrammeréponse tu calculeras tu produiras https://github.com/cfalguiere/Demo-Incanter-Devoxx-France 25
  • Incanter - incantation 1 26
  • Incanter - incantation 1Le fichier tu lirasLes erreurs tu filtrerasLa moyenne des temps de réponse tu calculeras 26
  • Incanter - incantation 1Le fichier tu lirasLes erreurs tu filtrerasLa moyenne des temps de réponse tu calculeras https://github.com/cfalguiere/Demo-Incanter-Devoxx-France/blob/master/demo1.clj 851.7333333333333 26
  • Incanter - incantation 2 27
  • Incanter - incantation 2Le fichier tu lirasLes erreurs tu filtrerasLes statistiques des temps de réponse tu calculeras 27
  • Incanter - incantation 2Le fichier tu lirasLes erreurs tu filtrerasLes statistiques des temps de réponse tu calculeras https://github.com/cfalguiere/Demo-Incanter-Devoxx-France/blob/master/demo2.clj {"sd" 1366.7118238764929, "mean" 851.7333333333333, "count" 15} 27
  • Incanter - incantation 3 28
  • Incanter - incantation 3Le fichier tu lirasLes erreurs tu filtrerasLe graphe des temps de réponse tu afficheras 28
  • Incanter - incantation 3Le fichier tu lirasLes erreurs tu filtrerasLe graphe des temps de réponse tu afficherashttps://github.com/cfalguiere/Demo-Incanter-Devoxx-France/blob/master/demo3.clj 28
  • Incanter - incantation 4 29
  • Incanter - incantation 4 Le fichier tu lirasLes erreurs tu filtrerasLes données tu grouperas par labelSur chaque groupe, la moyenne des temps tu produiras 29
  • Incanter - incantation 4 Le fichier tu liras Les erreurs tu filtreras Les données tu grouperas par label Sur chaque groupe, la moyenne des temps tu produirashttps://github.com/cfalguiere/Demo-Incanter-Devoxx-France/blob/master/demo-functions.cljhttps://github.com/cfalguiere/Demo-Incanter-Devoxx-France/blob/master/demo4.clj {"SearchProduct" 1255.5, "HomePage" 341.75} 29
  • Incanter - incantation 5 30
  • Incanter - incantation 5 Le fichier tu lirasLes erreurs tu filtrerasLes données tu grouperas par labelPour chaque groupe, l’histogramme tu produiras 30
  • Incanter - incantation 5 Le fichier tu liras Les erreurs tu filtreras Les données tu grouperas par label Pour chaque groupe, l’histogramme tu produirashttps://github.com/cfalguiere/Demo-Incanter-Devoxx-France/blob/master/demo-functions.cljhttps://github.com/cfalguiere/Demo-Incanter-Devoxx-France/blob/master/demo5.clj 30
  • Incanter - les secrets du magicien 31
  • Incanter - les secrets du magicien Parallel Colt a multi-threaded version of Colt https://sites.google.com/site/piotrwendykier/software/parallelcolt 31
  • Incanter - les secrets du magicien Parallel Colt a multi-threaded version of Colt https://sites.google.com/site/piotrwendykier/software/parallelcoltColt a set of Open Source Libraries for High Performance Scientific and Technical Comput http://acs.lbl.gov/software/colt/ 31
  • Incanter - les secrets du magicien Parallel Colt a multi-threaded version of Colt https://sites.google.com/site/piotrwendykier/software/parallelcoltColt a set of Open Source Libraries for High Performance Scientific and Technical Comput http://acs.lbl.gov/software/colt/ Netlib-Java a collection of mission-critical software components for linear algebra systems (i.e. working with vectors or matrices) http://code.google.com/p/netlib-java/ 31
  • Incanter - les secrets du magicien 32
  • Incanter - les secrets du magicien OpenCVS http://www.opencvs.org/ 32
  • Incanter - les secrets du magicien OpenCVS POI http://www.opencvs.org/ a Java API for microsoft documents http://poi.apache.org/ 32
  • Incanter - les secrets du magicien OpenCVS POI http://www.opencvs.org/ a Java API for microsoft documents http://poi.apache.org/ CongoMongo a Clojure wrapper for mongo-db API https://github.com/aboekhoff/congomongo 32
  • Incanter - les secrets du magicien 33
  • Incanter - les secrets du magicien iText a library that allows you to create and manipulate PDF documents. http://itextpdf.com/ 33
  • Incanter - les secrets du magicien iText a library that allows you to create and manipulate PDF documents. http://itextpdf.com/ JLaTeXMath display mathematical formulas written in LaTeX http://forge.scilab.org/index.php/p/jlatexmath/ 33
  • Incanter - les secrets du magicien iText a library that allows you to create and manipulate PDF documents. http://itextpdf.com/ JLaTeXMath display mathematical formulas written in LaTeX http://forge.scilab.org/index.php/p/jlatexmath/ JFreeChart http://www.jfree.org/jfreechart/ 33
  • Incanter - les secrets du magicien iText a library that allows you to create and manipulate PDF documents. http://itextpdf.com/ JLaTeXMath display mathematical formulas written in LaTeX http://forge.scilab.org/index.php/p/jlatexmath/ JFreeChart http://www.jfree.org/jfreechart/ 33
  • Incanter - les secrets du magicien 34
  • Incanter - les secrets du magicien JLine a Java library for handling console input http://jline.sourceforge.net/ 34
  • Incanter - les écoles de magie 35
  • Incanter - les écoles de magiehttp://dev.clojure.org/display/community/Clojure+User+Groups Paris Clojure User Group Incanter Google Group Incanter & Clojure sur Stackoverflow 35
  • 36
  • MerciBonnes incantations ! 36