SlideShare ist ein Scribd-Unternehmen logo
1 von 70
Downloaden Sie, um offline zu lesen
Functional
Programming
Essentials
Engineering Team Lead

@kelleyrobinson
Kelley Robinson
Functional
Programming
Essentials
“Standardized” Ladder of
Functional Programming
really
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Functional
Programming
Essentials
Engineering Team Lead

@kelleyrobinson
Kelley Robinson
Engineering Team Lead

@kelleyrobinson
Kelley Robinson
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Why this matters
FP In Scala
Origins
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Why this matters
FP In Scala
Origins
Origins
Paradigms
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
How did we get here?
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Origins
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
“..in the same way that
music is not a set of
instruments, functional
programming is not a
set of abstractions that
we need to learn and
memorize.”
- José Calderón
Origins
The Lambda Calculus
Alonzo Church (1930s)
@KELLEYROBINSONFUNCTIONAL PROGRAMMING ESSENTIALS
Origins
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
λx.x+1
variable
function application
expression
Origins
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
λx.x+1
scala> { x: Int => x + 1 }
res1: Int => Int = <function1>
Origins
The Lambda Calculus
Alonzo Church (1930s)
Theoretical foundation
Pure functions - no state
Not a programming language
@KELLEYROBINSONFUNCTIONAL PROGRAMMING ESSENTIALS
Origins
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
“Modern functional
languages can be thought
of as (nontrivial)
embellishments of the
lambda calculus”
- Paul Hudak (1989)
Fortran
John Backus (1954)
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Origins
Logic Theory Machine
Newell and Simon (1956)
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Origins
Logic Theory Machine
Newell and Simon (1956)
IPL (Information Processing
Language)
List processing
Recursion
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Origins
Lisp
John McCarthy (1958)
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Origins
Functional
abstraction
Evolution of Functional Programming
An Early History
Higher level
languages
List processing &
recursion
Lisp popularizes
paradigm
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
1930s 1950s
Origins
Paradigms
Revisited
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Origins
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Why this matters
FP In Scala
Origins
Recursive
Programming
Techniques
W.H. Burge (1975)
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
This was before…
Polymorphic Type Inference
Algebraic Data types
Lazy languages
Category-theoretic terminology
Introduction: Burge School of Functional Programming
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
W.H. Burge (1975)
Essentials
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Expressions
Expressions
Expressions
Expressions
Expressions
Essentials
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
3x2 + y3x2 + y
Essentials
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
+ (* (3, square(x)), y)
3x2 + y
operators
operands
Essentials
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
+ (* (3, square(2)), 1)
for x = 2, y = 1
operators
operands
Essentials
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
+ (* (3, 4), 1)
operators
operands
for x = 2, y = 1
Essentials
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
+ (12, 1)
operators
operands
for x = 2, y = 1
Essentials
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
13
for x = 2, y = 1
Essentials
Side Effects
Changes outside of function scope
Modifies state
Not predictable
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Expressions
Instead of statements
Related:
Pure functions
Immutable data
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Referential
transparency
An expression can be replaced by
its value without changing the
program behavior
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Immutable data
Avoid modifying state
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Expressions
The programmer benefits
Understanding
Predictability
Unit testing
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Data Structures
Constructing and Deconstructing
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Data Structures
Constructing and Deconstructing
1. How do you make the data?
2. How do you take it apart?
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
sealed abstract class List[+A]

case class Cons[A](head: A, tail: List[A]) extends List[A]

case object Null extends List[Nothing]
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
def listFunction(list: List[Int]) =

list match {

case Cons(x, xs) =>
// ... something that uses x and xs...

case Null =>
// ... something that can’t use x and xs... 

}
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
def length(l: List[Int]): Int =

l match {

case Cons(x, xs) => 1 + length(xs)

case Null => 0

}
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
def sum(l: List[Int]): Int =

l match {

case Cons(x, xs) => x + sum(xs)

case Null => 0

}
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
def product(l: List[Int]): Int =

l match {

case Cons(x, xs) => x * product(xs)

case Null => 1

}
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
def list[A, B](f: (A,B) => B,
d: B,
xs: List[A]): B =

xs match {

case Cons(y, ys) => f(y, list(f,d,ys))

case Null => d

}
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
def list[A, B](f: (A,B) => B, d: B, xs: List[A]): B
def length ... = list((_, b) => 1 + b, 0, xs)


def sum ... = list((a, b) => a + b, 0, xs)
def product ... = list((a, b) => a * b, 1, xs)
Recursive
Programming
Techniques
W.H. Burge (1975)
Expressions
Data structures
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Why this matters
FP In Scala
Origins
“Standardized” Ladder of
Functional Programming
really
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
“Modern” Functional
Programming is
cluttered with jargon
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Why this matters
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
“Jargon comes with an
inherent cost. It needs
to earn its place. (And it
often does: jargon is
necessary to discuss
complex and domain-
specific ideas.)”
- Bonnie Eisenman
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON@KELLEYROBINSON
Why this matters
“It is also a striking demonstration
of the fact that even definitions of
very high quality are often
inadequate as sources of
information on usage.”
Vocabulary and
context are necessary
for understanding
Ladder of
Functional Programming
really
“Standardized”**Updated!🙄**
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Profunctor what?
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Why this matters
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
“It may be fun to brag
about knowing how to
use "embedded DSL
with combinators,"
but is that really the
best thing to help your
startup succeed?”
- Hacker News
Why this matters
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Jargon is
alienating
Why this matters
Please.
Stop.
Saying
This.
Please.
@KELLEYROBINSONFUNCTIONAL PROGRAMMING ESSENTIALS
Why this matters
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Essentials
Why this matters
FP In Scala
Origins
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
🙅
FP In Scala
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
Storing data val var
Iterating map for loop
pattern
matching
procedural
statements
Deconstructing data
preferred possible
FP In Scala
What about…?
Cats…Scalaz…FREE MONADS!?
Basics are built into Scala
(think `map`, `fold`)
Libraries have other syntactic
sugar
FUNCTIONAL PROGRAMMING ESSENTIALS @KELLEYROBINSON
FP In Scala
• Have fun
• Promote understanding
• Be kind
@KELLEYROBINSONFUNCTIONAL PROGRAMMING ESSENTIALS
Thank You!
@kelleyrobinson
hello@krobinson.me
FUNCTIONAL PROGRAMMING ESSENTIALS
Special thanks to
• Sharethrough
• José Calderón
• Heather Miller
• Bonnie Eisenman
Resources
• Mentioned in this talk:
• Bonnie Eisenman on Scala Jargon
• José Calderón's Burge School of Functional Programming
• Conception, Evolution, and Application of Functional Programming Languages
• Original LambdaConf ladder and Updated LambdaConf ladder
• Vocabulary Processes
• Further Reading & Watching:
• Functional programming
• Lambda calculus
• John McCarthy - History of Lisp
• Lambda Calculus - Computerphile
• Mark Priestley - New Problems, New Paradigms
• John Hughes, Mary Sheeran - Keynote: Why Functional Programming Matters
• Vocabulary and Comprehension Research:
• The Relationship between Reading Comprehension and Vocabulary Knowledge
• The Relationship between Vocabulary Size and Reading Comprehension
• Vocabulary and Word Study to Increase Comprehension in Content Areas
• Why Vocabulary Instruction Matters
• Effects of long-term vocabulary instruction on reading comprehension
@KELLEYROBINSON
@KELLEYROBINSONFUNCTIONAL PROGRAMMING ESSENTIALSFUNCTIONAL PROGRAMMING ESSENTIALS
Photography credits
• Opening image
• Solving imaginary scaling issues
• Paradigms
• Orchestra
• Alonzo Church
• Philip Wadler
• Glitter
• Fortran
• Chess
• A Lisp machine in the MIT Museum
• 1975 SNL cast
• Side effects
• Escher print
• Legos
• Jargon
• Child reading
• University
• The thinker
• Jargon is alienating
• Cat typing
@KELLEYROBINSON

Weitere ähnliche Inhalte

Was ist angesagt?

Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8Talha Ocakçı
 
Elixir and Phoenix for Rubyists
Elixir and Phoenix for RubyistsElixir and Phoenix for Rubyists
Elixir and Phoenix for RubyistsBrooklyn Zelenka
 
Imperative and-functional-programming
Imperative and-functional-programmingImperative and-functional-programming
Imperative and-functional-programmingrameses francia
 
Scala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentationScala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentationMartin Odersky
 
Arrays &amp; functions in php
Arrays &amp; functions in phpArrays &amp; functions in php
Arrays &amp; functions in phpAshish Chamoli
 

Was ist angesagt? (7)

Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8
 
Elixir and Phoenix for Rubyists
Elixir and Phoenix for RubyistsElixir and Phoenix for Rubyists
Elixir and Phoenix for Rubyists
 
Scala introduction
Scala introductionScala introduction
Scala introduction
 
Imperative and-functional-programming
Imperative and-functional-programmingImperative and-functional-programming
Imperative and-functional-programming
 
Use the @types, Luke
Use the @types, LukeUse the @types, Luke
Use the @types, Luke
 
Scala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentationScala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentation
 
Arrays &amp; functions in php
Arrays &amp; functions in phpArrays &amp; functions in php
Arrays &amp; functions in php
 

Ähnlich wie Functional Programming Essentials

LISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love ParanthesesLISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love ParanthesesDominic Graefen
 
Spreadsheets: Functional Programming for the Masses
Spreadsheets: Functional Programming for the MassesSpreadsheets: Functional Programming for the Masses
Spreadsheets: Functional Programming for the Masseskfrdbs
 
Functional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis AtencioFunctional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis AtencioLuis Atencio
 
Booting into functional programming
Booting into functional programmingBooting into functional programming
Booting into functional programmingDhaval Dalal
 
Go Beyond Higher Order Functions: A Journey into Functional Programming
Go Beyond Higher Order Functions: A Journey into Functional ProgrammingGo Beyond Higher Order Functions: A Journey into Functional Programming
Go Beyond Higher Order Functions: A Journey into Functional ProgrammingLex Sheehan
 
Getting functional with elixir
Getting functional with elixirGetting functional with elixir
Getting functional with elixirAthira Mukundan
 
2 Years of Real World FP at REA
2 Years of Real World FP at REA2 Years of Real World FP at REA
2 Years of Real World FP at REAkenbot
 
Planning for the Unplannable (IPC14 SE)
Planning for the Unplannable (IPC14 SE)Planning for the Unplannable (IPC14 SE)
Planning for the Unplannable (IPC14 SE)Robert Lemke
 
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)Koji Sekiguchi
 
Functional Python Webinar from October 22nd, 2014
Functional Python Webinar from October 22nd, 2014Functional Python Webinar from October 22nd, 2014
Functional Python Webinar from October 22nd, 2014Reuven Lerner
 
Fp for the oo programmer
Fp for the oo programmerFp for the oo programmer
Fp for the oo programmerShawn Button
 
The joy of functional programming
The joy of functional programmingThe joy of functional programming
The joy of functional programmingSteve Zhang
 
Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?UFPA
 
Functional Programming - Past, Present and Future
Functional Programming - Past, Present and FutureFunctional Programming - Past, Present and Future
Functional Programming - Past, Present and FuturePushkar Kulkarni
 
Functional Programming Past Present Future
Functional Programming Past Present FutureFunctional Programming Past Present Future
Functional Programming Past Present FutureIndicThreads
 
Functional Programming for OO Programmers (part 1)
Functional Programming for OO Programmers (part 1)Functional Programming for OO Programmers (part 1)
Functional Programming for OO Programmers (part 1)Calvin Cheng
 

Ähnlich wie Functional Programming Essentials (20)

Functional programming in python
Functional programming in pythonFunctional programming in python
Functional programming in python
 
Functional programming in python
Functional programming in pythonFunctional programming in python
Functional programming in python
 
LISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love ParanthesesLISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love Parantheses
 
Spreadsheets: Functional Programming for the Masses
Spreadsheets: Functional Programming for the MassesSpreadsheets: Functional Programming for the Masses
Spreadsheets: Functional Programming for the Masses
 
Functional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis AtencioFunctional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis Atencio
 
Booting into functional programming
Booting into functional programmingBooting into functional programming
Booting into functional programming
 
Go Beyond Higher Order Functions: A Journey into Functional Programming
Go Beyond Higher Order Functions: A Journey into Functional ProgrammingGo Beyond Higher Order Functions: A Journey into Functional Programming
Go Beyond Higher Order Functions: A Journey into Functional Programming
 
Getting functional with elixir
Getting functional with elixirGetting functional with elixir
Getting functional with elixir
 
2 Years of Real World FP at REA
2 Years of Real World FP at REA2 Years of Real World FP at REA
2 Years of Real World FP at REA
 
Planning for the Unplannable (IPC14 SE)
Planning for the Unplannable (IPC14 SE)Planning for the Unplannable (IPC14 SE)
Planning for the Unplannable (IPC14 SE)
 
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
 
Functional Python Webinar from October 22nd, 2014
Functional Python Webinar from October 22nd, 2014Functional Python Webinar from October 22nd, 2014
Functional Python Webinar from October 22nd, 2014
 
Fp for the oo programmer
Fp for the oo programmerFp for the oo programmer
Fp for the oo programmer
 
The joy of functional programming
The joy of functional programmingThe joy of functional programming
The joy of functional programming
 
Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?
 
Scala in Practice
Scala in PracticeScala in Practice
Scala in Practice
 
Functional Programming - Past, Present and Future
Functional Programming - Past, Present and FutureFunctional Programming - Past, Present and Future
Functional Programming - Past, Present and Future
 
Functional Programming Past Present Future
Functional Programming Past Present FutureFunctional Programming Past Present Future
Functional Programming Past Present Future
 
Functional Programming for OO Programmers (part 1)
Functional Programming for OO Programmers (part 1)Functional Programming for OO Programmers (part 1)
Functional Programming for OO Programmers (part 1)
 
What the f is a monad?
What the f is a monad?What the f is a monad?
What the f is a monad?
 

Mehr von Kelley Robinson

Protecting your phone verification flow from fraud & abuse
Protecting your phone verification flow from fraud & abuseProtecting your phone verification flow from fraud & abuse
Protecting your phone verification flow from fraud & abuseKelley Robinson
 
Preventing phone verification fraud (SMS pumping)
Preventing phone verification fraud (SMS pumping)Preventing phone verification fraud (SMS pumping)
Preventing phone verification fraud (SMS pumping)Kelley Robinson
 
Auth on the web: better authentication
Auth on the web: better authenticationAuth on the web: better authentication
Auth on the web: better authenticationKelley Robinson
 
Introduction to Public Key Cryptography
Introduction to Public Key CryptographyIntroduction to Public Key Cryptography
Introduction to Public Key CryptographyKelley Robinson
 
Identiverse 2020 - Account Recovery with 2FA
Identiverse 2020 - Account Recovery with 2FAIdentiverse 2020 - Account Recovery with 2FA
Identiverse 2020 - Account Recovery with 2FAKelley Robinson
 
Designing customer account recovery in a 2FA world
Designing customer account recovery in a 2FA worldDesigning customer account recovery in a 2FA world
Designing customer account recovery in a 2FA worldKelley Robinson
 
Introduction to SHAKEN/STIR
Introduction to SHAKEN/STIRIntroduction to SHAKEN/STIR
Introduction to SHAKEN/STIRKelley Robinson
 
Building a Better Scala Community
Building a Better Scala CommunityBuilding a Better Scala Community
Building a Better Scala CommunityKelley Robinson
 
BSides SF - Contact Center Authentication
BSides SF - Contact Center AuthenticationBSides SF - Contact Center Authentication
BSides SF - Contact Center AuthenticationKelley Robinson
 
Communication @ Startups
Communication @ StartupsCommunication @ Startups
Communication @ StartupsKelley Robinson
 
Contact Center Authentication
Contact Center AuthenticationContact Center Authentication
Contact Center AuthenticationKelley Robinson
 
Authentication Beyond SMS
Authentication Beyond SMSAuthentication Beyond SMS
Authentication Beyond SMSKelley Robinson
 
BSides PDX - Threat Modeling Authentication
BSides PDX - Threat Modeling AuthenticationBSides PDX - Threat Modeling Authentication
BSides PDX - Threat Modeling AuthenticationKelley Robinson
 
SIGNAL - Practical Cryptography
SIGNAL - Practical CryptographySIGNAL - Practical Cryptography
SIGNAL - Practical CryptographyKelley Robinson
 

Mehr von Kelley Robinson (20)

Protecting your phone verification flow from fraud & abuse
Protecting your phone verification flow from fraud & abuseProtecting your phone verification flow from fraud & abuse
Protecting your phone verification flow from fraud & abuse
 
Preventing phone verification fraud (SMS pumping)
Preventing phone verification fraud (SMS pumping)Preventing phone verification fraud (SMS pumping)
Preventing phone verification fraud (SMS pumping)
 
Auth on the web: better authentication
Auth on the web: better authenticationAuth on the web: better authentication
Auth on the web: better authentication
 
WebAuthn
WebAuthnWebAuthn
WebAuthn
 
Introduction to Public Key Cryptography
Introduction to Public Key CryptographyIntroduction to Public Key Cryptography
Introduction to Public Key Cryptography
 
2FA in 2020 and Beyond
2FA in 2020 and Beyond2FA in 2020 and Beyond
2FA in 2020 and Beyond
 
Identiverse 2020 - Account Recovery with 2FA
Identiverse 2020 - Account Recovery with 2FAIdentiverse 2020 - Account Recovery with 2FA
Identiverse 2020 - Account Recovery with 2FA
 
Designing customer account recovery in a 2FA world
Designing customer account recovery in a 2FA worldDesigning customer account recovery in a 2FA world
Designing customer account recovery in a 2FA world
 
Introduction to SHAKEN/STIR
Introduction to SHAKEN/STIRIntroduction to SHAKEN/STIR
Introduction to SHAKEN/STIR
 
Intro to SHAKEN/STIR
Intro to SHAKEN/STIRIntro to SHAKEN/STIR
Intro to SHAKEN/STIR
 
PSD2, SCA, WTF?
PSD2, SCA, WTF?PSD2, SCA, WTF?
PSD2, SCA, WTF?
 
Building a Better Scala Community
Building a Better Scala CommunityBuilding a Better Scala Community
Building a Better Scala Community
 
BSides SF - Contact Center Authentication
BSides SF - Contact Center AuthenticationBSides SF - Contact Center Authentication
BSides SF - Contact Center Authentication
 
Communication @ Startups
Communication @ StartupsCommunication @ Startups
Communication @ Startups
 
Contact Center Authentication
Contact Center AuthenticationContact Center Authentication
Contact Center Authentication
 
Authentication Beyond SMS
Authentication Beyond SMSAuthentication Beyond SMS
Authentication Beyond SMS
 
BSides PDX - Threat Modeling Authentication
BSides PDX - Threat Modeling AuthenticationBSides PDX - Threat Modeling Authentication
BSides PDX - Threat Modeling Authentication
 
SIGNAL - Practical Cryptography
SIGNAL - Practical CryptographySIGNAL - Practical Cryptography
SIGNAL - Practical Cryptography
 
2FA Best Practices
2FA Best Practices2FA Best Practices
2FA Best Practices
 
Practical Cryptography
Practical CryptographyPractical Cryptography
Practical Cryptography
 

Kürzlich hochgeladen

Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 

Kürzlich hochgeladen (20)

Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 

Functional Programming Essentials