SlideShare una empresa de Scribd logo
1 de 73
Descargar para leer sin conexión
Clojure
Community
Night
Aria Haghighi
CTO
@aria42
Saturday, October 5, 13
Eng @ Prismatic
Saturday, October 5, 13
Eng @ Prismatic
All Clojure in the
back
Saturday, October 5, 13
Eng @ Prismatic
All Clojure in the
back
Some Clojure in
the front
Saturday, October 5, 13
Saturday, October 5, 13
<31. Why
Saturday, October 5, 13
<31. Why
2.
Open
Source
Saturday, October 5, 13
<31. Why
2.
Open
Source
3.
What’s
needed
Saturday, October 5, 13
Why Clojure
<3
Saturday, October 5, 13
Programming to Behavior
Saturday, October 5, 13
Programming to Behavior
Saturday, October 5, 13
Programming to Behavior
Encapsulate
The
Object
Saturday, October 5, 13
Programming to Behavior
Interface
Encapsulate
The
Object
Saturday, October 5, 13
Programming to Behavior
At it’s best,
OOP is about
coding to
behavior, not
state or identity
Saturday, October 5, 13
Programming to Data
Saturday, October 5, 13
Programming to Data
Inherent data
structures can
be used to
derive the
structure of a
program
Saturday, October 5, 13
Programming to Data
Inherent data
structures can
be used to
derive the
structure of a
program
Saturday, October 5, 13
Programming to Data
Saturday, October 5, 13
Programming to Data
Ins & Outs
Saturday, October 5, 13
Programming to Data
Ins & Outs
Represent
Saturday, October 5, 13
Programming to Data
Ins & Outs
Represent
Transform
Saturday, October 5, 13
The killer feature
of Clojure isn’t that
it’s a functional
language, but the
best data-oriented
one
Programming to Data
Saturday, October 5, 13
Data Behavior
Saturday, October 5, 13
Data Behavior
sequences
maps
defn
destructuring
macros
Saturday, October 5, 13
Data Behavior
sequences
maps
defn
destructuring
macros
deftype
protocol
reify
Saturday, October 5, 13
Data Behavior
sequences
maps
defn
destructuring
macros
records
multi-
methods
deftype
protocol
reify
Saturday, October 5, 13
Data Behavior+
The crown of
Clojure’s design is
the clean
separation of data
and behavior
Saturday, October 5, 13
Open Source
Saturday, October 5, 13
Open Source
Saturday, October 5, 13
Plumbing and Graph
data-oriented
composition and
dependency
prismatic/plumbing
Saturday, October 5, 13
Graph: Overview
Saturday, October 5, 13
Graph: Overview
Univariate statistics: Given
data as double[] xs
Saturday, October 5, 13
Graph: Overview
Univariate statistics: Given
data as double[] xs
m =
1
n
nX
i=1
xi
m2 =
1
n
nX
i=1
x2
i
v = m2 m2
Saturday, October 5, 13
Graph: Overview
Univariate statistics: Given
data as double[] xs
m =
1
n
nX
i=1
xi
m2 =
1
n
nX
i=1
x2
i
v = m2 m2
xs
n
m2m
v
Saturday, October 5, 13
Graph: Overview
Univariate statistics: Given
data as double[] xs
xs
n
m2m
v
Saturday, October 5, 13
Graph: Overview
Univariate statistics: Given
data as double[] xs
xs
n
m2m
v
(defn stats [{:keys [xs]}]
(let [n (count xs)
m (/ (sum xs) n)
m2 (/ (sum sq xs) n)
v (- m2 (* m m))]
{:n n :m m :m2 m2 :v v}))
Saturday, October 5, 13
The Monster let
(defn start [{:keys [a,z]}]
(let [s1 (store a ...)
s2 (store b ...)
db (sql-db c)
t2 (cron s2 db...)
...
srv (server ...)]
(fn shutdown []
(.stop srv)
...
(.flush s1))))
Saturday, October 5, 13
The Monster let
dozens of
parameters,
not compositional
(defn start [{:keys [a,z]}]
(let [s1 (store a ...)
s2 (store b ...)
db (sql-db c)
t2 (cron s2 db...)
...
srv (server ...)]
(fn shutdown []
(.stop srv)
...
(.flush s1))))
Saturday, October 5, 13
The Monster let
dozens of
parameters,
not compositional
structure of
(de)composition
is locked up in an
opaque function
(defn start [{:keys [a,z]}]
(let [s1 (store a ...)
s2 (store b ...)
db (sql-db c)
t2 (cron s2 db...)
...
srv (server ...)]
(fn shutdown []
(.stop srv)
...
(.flush s1))))
Saturday, October 5, 13
The Monster let
dozens of
parameters,
not compositional
structure of
(de)composition
is locked up in an
opaque function
(defn start [{:keys [a,z]}]
(let [s1 (store a ...)
s2 (store b ...)
db (sql-db c)
t2 (cron s2 db...)
...
srv (server ...)]
(fn shutdown []
(.stop srv)
...
(.flush s1))))
Saturday, October 5, 13
The Monster let
dozens of
parameters,
not compositional
structure of
(de)composition
is locked up in an
opaque function
(defn start [{:keys [a,z]}]
(let [s1 (store a ...)
s2 (store b ...)
db (sql-db c)
t2 (cron s2 db...)
...
srv (server ...)]
(fn shutdown []
(.stop srv)
...
(.flush s1))))
Saturday, October 5, 13
The Monster let
dozens of
parameters,
not compositional
structure of
(de)composition
is locked up in an
opaque function
(defn start [{:keys [a,z]}]
(let [s1 (store a ...)
s2 (store b ...)
db (sql-db c)
t2 (cron s2 db...)
...
srv (server ...)]
(fn shutdown []
(.stop srv)
...
(.flush s1))))
Saturday, October 5, 13
The Monster let
dozens of
parameters,
not compositional
structure of
(de)composition
is locked up in an
opaque function
(defn start [{:keys [a,z]}]
(let [s1 (store a ...)
s2 (store b ...)
db (sql-db c)
t2 (cron s2 db...)
...
srv (server ...)]
(fn shutdown []
(.stop srv)
...
(.flush s1))))
Saturday, October 5, 13
The Monster let
dozens of
parameters,
not compositional
structure of
(de)composition
is locked up in an
opaque function
(defn start [{:keys [a,z]}]
(let [s1 (store a ...)
s2 (store b ...)
db (sql-db c)
t2 (cron s2 db...)
...
srv (server ...)]
(fn shutdown []
(.stop srv)
...
(.flush s1))))
Saturday, October 5, 13
The Monster let
dozens of
parameters,
not compositional
structure of
(de)composition
is locked up in an
opaque function
(defn start [{:keys [a,z]}]
(let [s1 (store a ...)
s2 (store b ...)
db (sql-db c)
t2 (cron s2 db...)
...
srv (server ...)]
(fn shutdown []
(.stop srv)
...
(.flush s1))))
Saturday, October 5, 13
The Monster let
dozens of
parameters,
not compositional
structure of
(de)composition
is locked up in an
opaque function
(defn start [{:keys [a,z]}]
(let [s1 (store a ...)
s2 (store b ...)
db (sql-db c)
t2 (cron s2 db...)
...
srv (server ...)]
(fn shutdown []
(.stop srv)
...
(.flush s1))))
Saturday, October 5, 13
From let to Graph
(defn stats [{:keys [xs]}]
(let [n (count xs)
m (/ (sum xs) n)
m2 (/ (sum sq xs) n)
v (- m2 (* m m))]
{:n n :m m :m2 m2 :v v}))
Saturday, October 5, 13
From let to Graph
(defn stats [{:keys [xs]}]
(let [n (count xs)
m (/ (sum xs) n)
m2 (/ (sum sq xs) n)
v (- m2 (* m m))]
{:n n :m m :m2 m2 :v v}))
xs
n
m2m
v
Saturday, October 5, 13
From let to Graph
(defn stats [{:keys [xs]}]
(let [n (count xs)
m (/ (sum xs) n)
m2 (/ (sum sq xs) n)
v (- m2 (* m m))]
{:n n :m m :m2 m2 :v v}))
{:n (fn [xs] (count xs))
:m (fn [xs n] (/ (sum xs) n))
:m2 (fn [xs n] (/ (sum sq xs) n))
:v (fn [m m2] (- m2 (* m m)))}
xs
n
m2m
v
Saturday, October 5, 13
From let to Graph
(defn stats [{:keys [xs]}]
(let [n (count xs)
m (/ (sum xs) n)
m2 (/ (sum sq xs) n)
v (- m2 (* m m))]
{:n n :m m :m2 m2 :v v}))
{:n (fn [xs] (count xs))
:m (fn [xs n] (/ (sum xs) n))
:m2 (fn [xs n] (/ (sum sq xs) n))
:v (fn [m m2] (- m2 (* m m)))}
k
k
k
k
xs
n
m2m
v
Saturday, October 5, 13
Example:API Service
Saturday, October 5, 13
Example:API Service
(def api-service
(service
{:service-name “api”
:backend-port 42424
:server-threads 100}
{:store1 (instance store
{:type :s3 ...})
:memo (fnk [store1]
{:resource ...})
...
:api-server (...)}))
Saturday, October 5, 13
sane DOM
templating and
manipulation
prismatic/dommy
Dommy
Saturday, October 5, 13
fast primitive
array math
prismatic/hiphip
HipHip (Array)
w · x =
nX
i=1
wixi
Saturday, October 5, 13
HipHip Examples
Saturday, October 5, 13
HipHip Examples
Dot Product w · x =
nX
i=1
wixi
Saturday, October 5, 13
HipHip Examples
Dot Product w · x =
nX
i=1
wixi
Inner loop in
machine learning
Saturday, October 5, 13
HipHip Examples
Dot Product w · x =
nX
i=1
wixi
Inner loop in
machine learning
arg max
`
w · x`
prediction
Saturday, October 5, 13
HipHip Examples
Dot Product w · x =
nX
i=1
wixi
Inner loop in
machine learning
arg max
`
w · x`
prediction
P(x; w) / exp{w · x}
training
Saturday, October 5, 13
Dot Product w · x =
nX
i=1
wixi
HipHip Examples
Saturday, October 5, 13
Dot Product w · x =
nX
i=1
wixi
(defn dot-product [^doubles ws ^doubles xs]
(areduce ws idx sum 0.0
(+ sum (*  (aget ws idx)
(aget xs idx))))
HipHip Examples
Saturday, October 5, 13
Dot Product w · x =
nX
i=1
wixi
HipHip Examples
Saturday, October 5, 13
Dot Product w · x =
nX
i=1
wixi
double dotProd(double[] ws, double[] xs) {
double sum = 0.0;
for (int i=0; i < xs.length; ++i) {
sum += ws[i] * xs[i];
}
return sum;
}
HipHip Examples
Saturday, October 5, 13
Dot Product w · x =
nX
i=1
wixi
HipHip Examples
Saturday, October 5, 13
Dot Product w · x =
nX
i=1
wixi
(defn dot-product [ws xs]
(hiphip.double/asum [w ws x xs] (* w x)))     
	
HipHip Examples
Saturday, October 5, 13
declarative data
description and
validation
prismatic/schema
Schema
Saturday, October 5, 13
What Clojure needs
Saturday, October 5, 13
Where’s my debugger!?!
Saturday, October 5, 13
MOAR Compiler Speed
(require 'api.deploy)
go get a coffee, it’s
going to be a bit
Saturday, October 5, 13
Compiler Tooling
real IDE tools
Make Paredit a library
Saturday, October 5, 13
Multi-project support
in Leiningen
Saturday, October 5, 13
Native Client Story
Saturday, October 5, 13
Thanks
Questions?
Saturday, October 5, 13

Más contenido relacionado

La actualidad más candente

Wasserstein GAN Tfug2017 07-12
Wasserstein GAN Tfug2017 07-12Wasserstein GAN Tfug2017 07-12
Wasserstein GAN Tfug2017 07-12Yuta Kashino
 
Python 101 language features and functional programming
Python 101 language features and functional programmingPython 101 language features and functional programming
Python 101 language features and functional programmingLukasz Dynowski
 
NTHU AI Reading Group: Improved Training of Wasserstein GANs
NTHU AI Reading Group: Improved Training of Wasserstein GANsNTHU AI Reading Group: Improved Training of Wasserstein GANs
NTHU AI Reading Group: Improved Training of Wasserstein GANsMark Chang
 
An Introduction to JavaScript: Week 5
An Introduction to JavaScript: Week 5An Introduction to JavaScript: Week 5
An Introduction to JavaScript: Week 5Event Handler
 
Queue implementation
Queue implementationQueue implementation
Queue implementationRajendran
 
Clojure for Data Science
Clojure for Data ScienceClojure for Data Science
Clojure for Data Sciencehenrygarner
 
Grand centraldispatch
Grand centraldispatchGrand centraldispatch
Grand centraldispatchYuumi Yoshida
 
Computational Linguistics week 5
Computational Linguistics  week 5Computational Linguistics  week 5
Computational Linguistics week 5Mark Chang
 
Clojure for Data Science
Clojure for Data ScienceClojure for Data Science
Clojure for Data ScienceMike Anderson
 
Recursion and Functional Programming
Recursion and Functional ProgrammingRecursion and Functional Programming
Recursion and Functional Programmingsathish316
 
Brief intro to clojure
Brief intro to clojureBrief intro to clojure
Brief intro to clojureRoy Rutto
 
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...Frederik Gevers Deynoot
 
Procedural Content Generation with Clojure
Procedural Content Generation with ClojureProcedural Content Generation with Clojure
Procedural Content Generation with ClojureMike Anderson
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introductionelliando dias
 
Otter 2016-11-14-ss
Otter 2016-11-14-ssOtter 2016-11-14-ss
Otter 2016-11-14-ssRuo Ando
 
Dynamically linked queues
Dynamically linked queuesDynamically linked queues
Dynamically linked queuesJonghoon Park
 

La actualidad más candente (20)

Wasserstein GAN Tfug2017 07-12
Wasserstein GAN Tfug2017 07-12Wasserstein GAN Tfug2017 07-12
Wasserstein GAN Tfug2017 07-12
 
Python 101 language features and functional programming
Python 101 language features and functional programmingPython 101 language features and functional programming
Python 101 language features and functional programming
 
NTHU AI Reading Group: Improved Training of Wasserstein GANs
NTHU AI Reading Group: Improved Training of Wasserstein GANsNTHU AI Reading Group: Improved Training of Wasserstein GANs
NTHU AI Reading Group: Improved Training of Wasserstein GANs
 
An Introduction to JavaScript: Week 5
An Introduction to JavaScript: Week 5An Introduction to JavaScript: Week 5
An Introduction to JavaScript: Week 5
 
Queue implementation
Queue implementationQueue implementation
Queue implementation
 
Clojure for Data Science
Clojure for Data ScienceClojure for Data Science
Clojure for Data Science
 
Grand centraldispatch
Grand centraldispatchGrand centraldispatch
Grand centraldispatch
 
Computational Linguistics week 5
Computational Linguistics  week 5Computational Linguistics  week 5
Computational Linguistics week 5
 
MATHS SYMBOLS - #7 - LOGARITHMS, LOG of a PRODUCT, LOG of a QUOTIENT - PROOFS
MATHS SYMBOLS - #7 - LOGARITHMS, LOG of a PRODUCT, LOG of a QUOTIENT - PROOFSMATHS SYMBOLS - #7 - LOGARITHMS, LOG of a PRODUCT, LOG of a QUOTIENT - PROOFS
MATHS SYMBOLS - #7 - LOGARITHMS, LOG of a PRODUCT, LOG of a QUOTIENT - PROOFS
 
U3.stack queue
U3.stack queueU3.stack queue
U3.stack queue
 
Clojure for Data Science
Clojure for Data ScienceClojure for Data Science
Clojure for Data Science
 
Data Structures - Lecture 6 [queues]
Data Structures - Lecture 6 [queues]Data Structures - Lecture 6 [queues]
Data Structures - Lecture 6 [queues]
 
Recursion and Functional Programming
Recursion and Functional ProgrammingRecursion and Functional Programming
Recursion and Functional Programming
 
Brief intro to clojure
Brief intro to clojureBrief intro to clojure
Brief intro to clojure
 
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
 
Procedural Content Generation with Clojure
Procedural Content Generation with ClojureProcedural Content Generation with Clojure
Procedural Content Generation with Clojure
 
Lecture 2 f17
Lecture 2 f17Lecture 2 f17
Lecture 2 f17
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introduction
 
Otter 2016-11-14-ss
Otter 2016-11-14-ssOtter 2016-11-14-ss
Otter 2016-11-14-ss
 
Dynamically linked queues
Dynamically linked queuesDynamically linked queues
Dynamically linked queues
 

Destacado

Clojure made-simple - John Stevenson
Clojure made-simple - John StevensonClojure made-simple - John Stevenson
Clojure made-simple - John StevensonJAX London
 
Voxxed Days Thesaloniki 2016 - Machine Learning for Developers
Voxxed Days Thesaloniki 2016 - Machine Learning for DevelopersVoxxed Days Thesaloniki 2016 - Machine Learning for Developers
Voxxed Days Thesaloniki 2016 - Machine Learning for DevelopersVoxxed Days Thessaloniki
 
Introduction to clojure
Introduction to clojureIntroduction to clojure
Introduction to clojureAbbas Raza
 
Get into Functional Programming with Clojure
Get into Functional Programming with ClojureGet into Functional Programming with Clojure
Get into Functional Programming with ClojureJohn Stevenson
 
The Ideas of Clojure - Things I learn from Clojure
The Ideas of Clojure - Things I learn from ClojureThe Ideas of Clojure - Things I learn from Clojure
The Ideas of Clojure - Things I learn from ClojureHsuan Fu Lien
 

Destacado (6)

Clojure made-simple - John Stevenson
Clojure made-simple - John StevensonClojure made-simple - John Stevenson
Clojure made-simple - John Stevenson
 
Voxxed Days Thesaloniki 2016 - Machine Learning for Developers
Voxxed Days Thesaloniki 2016 - Machine Learning for DevelopersVoxxed Days Thesaloniki 2016 - Machine Learning for Developers
Voxxed Days Thesaloniki 2016 - Machine Learning for Developers
 
Loom at Clojure/West
Loom at Clojure/WestLoom at Clojure/West
Loom at Clojure/West
 
Introduction to clojure
Introduction to clojureIntroduction to clojure
Introduction to clojure
 
Get into Functional Programming with Clojure
Get into Functional Programming with ClojureGet into Functional Programming with Clojure
Get into Functional Programming with Clojure
 
The Ideas of Clojure - Things I learn from Clojure
The Ideas of Clojure - Things I learn from ClojureThe Ideas of Clojure - Things I learn from Clojure
The Ideas of Clojure - Things I learn from Clojure
 

Similar a Clojure night

JavaOne 2013 - Clojure for Java Developers
JavaOne 2013 - Clojure for Java DevelopersJavaOne 2013 - Clojure for Java Developers
JavaOne 2013 - Clojure for Java DevelopersJan Kronquist
 
Programación funcional con haskell
Programación funcional con haskellProgramación funcional con haskell
Programación funcional con haskellAgustin Ramos
 
The Not Java That's Not Scala
The Not Java That's Not ScalaThe Not Java That's Not Scala
The Not Java That's Not ScalaJustin Lee
 
D-Talk: What's awesome about Ruby 2.x and Rails 4
D-Talk: What's awesome about Ruby 2.x and Rails 4D-Talk: What's awesome about Ruby 2.x and Rails 4
D-Talk: What's awesome about Ruby 2.x and Rails 4Jan Berdajs
 
Deconstructing Functional Programming
Deconstructing Functional ProgrammingDeconstructing Functional Programming
Deconstructing Functional ProgrammingC4Media
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with ClojureDmitry Buzdin
 
The Shape of Functional Programming
The Shape of Functional ProgrammingThe Shape of Functional Programming
The Shape of Functional ProgrammingMike Fogus
 
Christian Gill ''Functional programming for the people''
Christian Gill ''Functional programming for the people''Christian Gill ''Functional programming for the people''
Christian Gill ''Functional programming for the people''OdessaJS Conf
 
Артём Акуляков - F# for Data Analysis
Артём Акуляков - F# for Data AnalysisАртём Акуляков - F# for Data Analysis
Артём Акуляков - F# for Data AnalysisSpbDotNet Community
 
A gentle introduction to functional programming through music and clojure
A gentle introduction to functional programming through music and clojureA gentle introduction to functional programming through music and clojure
A gentle introduction to functional programming through music and clojurePaul Lam
 
2. R-basics, Vectors, Arrays, Matrices, Factors
2. R-basics, Vectors, Arrays, Matrices, Factors2. R-basics, Vectors, Arrays, Matrices, Factors
2. R-basics, Vectors, Arrays, Matrices, Factorskrishna singh
 
Intro to Clojure's core.async
Intro to Clojure's core.asyncIntro to Clojure's core.async
Intro to Clojure's core.asyncLeonardo Borges
 
Project Fortress
Project FortressProject Fortress
Project FortressAlex Miller
 
An Introduction to JavaScript: Week 4
An Introduction to JavaScript: Week 4An Introduction to JavaScript: Week 4
An Introduction to JavaScript: Week 4Event Handler
 
First Ride on Rust
First Ride on RustFirst Ride on Rust
First Ride on RustDavid Evans
 
Scala Implicits - Not to be feared
Scala Implicits - Not to be fearedScala Implicits - Not to be feared
Scala Implicits - Not to be fearedDerek Wyatt
 
Purely Functional I/O
Purely Functional I/OPurely Functional I/O
Purely Functional I/OC4Media
 

Similar a Clojure night (20)

JavaOne 2013 - Clojure for Java Developers
JavaOne 2013 - Clojure for Java DevelopersJavaOne 2013 - Clojure for Java Developers
JavaOne 2013 - Clojure for Java Developers
 
Programação Funcional
Programação FuncionalProgramação Funcional
Programação Funcional
 
Programación funcional con haskell
Programación funcional con haskellProgramación funcional con haskell
Programación funcional con haskell
 
The Not Java That's Not Scala
The Not Java That's Not ScalaThe Not Java That's Not Scala
The Not Java That's Not Scala
 
D-Talk: What's awesome about Ruby 2.x and Rails 4
D-Talk: What's awesome about Ruby 2.x and Rails 4D-Talk: What's awesome about Ruby 2.x and Rails 4
D-Talk: What's awesome about Ruby 2.x and Rails 4
 
Deconstructing Functional Programming
Deconstructing Functional ProgrammingDeconstructing Functional Programming
Deconstructing Functional Programming
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
08 functions
08 functions08 functions
08 functions
 
The Shape of Functional Programming
The Shape of Functional ProgrammingThe Shape of Functional Programming
The Shape of Functional Programming
 
Christian Gill ''Functional programming for the people''
Christian Gill ''Functional programming for the people''Christian Gill ''Functional programming for the people''
Christian Gill ''Functional programming for the people''
 
Артём Акуляков - F# for Data Analysis
Артём Акуляков - F# for Data AnalysisАртём Акуляков - F# for Data Analysis
Артём Акуляков - F# for Data Analysis
 
A gentle introduction to functional programming through music and clojure
A gentle introduction to functional programming through music and clojureA gentle introduction to functional programming through music and clojure
A gentle introduction to functional programming through music and clojure
 
2. R-basics, Vectors, Arrays, Matrices, Factors
2. R-basics, Vectors, Arrays, Matrices, Factors2. R-basics, Vectors, Arrays, Matrices, Factors
2. R-basics, Vectors, Arrays, Matrices, Factors
 
Intro to Clojure's core.async
Intro to Clojure's core.asyncIntro to Clojure's core.async
Intro to Clojure's core.async
 
05 subsetting
05 subsetting05 subsetting
05 subsetting
 
Project Fortress
Project FortressProject Fortress
Project Fortress
 
An Introduction to JavaScript: Week 4
An Introduction to JavaScript: Week 4An Introduction to JavaScript: Week 4
An Introduction to JavaScript: Week 4
 
First Ride on Rust
First Ride on RustFirst Ride on Rust
First Ride on Rust
 
Scala Implicits - Not to be feared
Scala Implicits - Not to be fearedScala Implicits - Not to be feared
Scala Implicits - Not to be feared
 
Purely Functional I/O
Purely Functional I/OPurely Functional I/O
Purely Functional I/O
 

Último

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 

Último (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 

Clojure night