SlideShare a Scribd company logo
Hello, Joe. Hello, Mike;
Hello, Robert.1
A Hello World Style Lighting Talk on Erlang.
1. From Erlang the Movie (https://archive.org/details/ErlangTheMovie)
Hello, Erlang.
Erlang and OTP was designed for building
distributed, asynchronous, highly-concurrent, fault
tolerant applications with high availability.
Hello, Erlang.
Erlang and OTP was designed for building
distributed, asynchronous, highly-concurrent, fault
tolerant applications with high availability.
#BuzzwordBingo
Hello, Telecom.
Hello, Telecom.
• 100s of Thousands, if not Millions, of calls
happen at the same time
Hello, Telecom.
• 100s of Thousands, if not Millions, of calls
happen at the same time
• Your phone line has to always be available
Hello, Telecom.
• 100s of Thousands, if not Millions, of calls
happen at the same time
• Your phone line has to always be available
• My call cannot corrupt your call
Hello, Déjà vu
Hello, Déjà vu
• Sound Familiar?
Hello, Internet!
Hello, Failure.
Hello, Failure.
• In the Real World things fail. Embrace it.
Hello, Failure.
• In the Real World things fail. Embrace it.
• “Let It Crash” philosophy
Hello, Failure.
• In the Real World things fail. Embrace it.
• “Let It Crash” philosophy
• Immutability
Hello, Failure.
• In the Real World things fail. Embrace it.
• “Let It Crash” philosophy
• Immutability
• No Shared State
Hello, Failure.
• In the Real World things fail. Embrace it.
• “Let It Crash” philosophy
• Immutability
• No Shared State
• Isolated Processes Communicate Through Message Passing
(Actor Model)
Hello, Failure.
• In the Real World things fail. Embrace it.
• “Let It Crash” philosophy
• Immutability
• No Shared State
• Isolated Processes Communicate Through Message Passing
(Actor Model)
• Supervision Hierarchy
Hello, Failure.
• In the Real World things fail. Embrace it.
• “Let It Crash” philosophy
• Immutability
• No Shared State
• Isolated Processes Communicate Through Message Passing
(Actor Model)
• Supervision Hierarchy
• Live code reloading
Hello, C10k Problem.
Hello, C10k Problem.
Hello, C10k Problem.
–Alan Kay
I thought of objects being like biological cells
and/or individual
 computers on a network, only able to
communicate with messages […].2
Hello, OOP.
2. http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en
Hello, “Weaknesses”.
Hello, “Weaknesses”.
• No strings as a data type
Hello, “Weaknesses”.
• No strings as a data type
• List of Integers or Binary types
Hello, “Weaknesses”.
• No strings as a data type
• List of Integers or Binary types
• Not super performant for string manipulation, but good enough for most
scenarios
Hello, “Weaknesses”.
• No strings as a data type
• List of Integers or Binary types
• Not super performant for string manipulation, but good enough for most
scenarios
• Not great for GUIs
Hello, “Weaknesses”.
• No strings as a data type
• List of Integers or Binary types
• Not super performant for string manipulation, but good enough for most
scenarios
• Not great for GUIs
• Not going to be run on your mobile device;
Hello, “Weaknesses”.
• No strings as a data type
• List of Integers or Binary types
• Not super performant for string manipulation, but good enough for most
scenarios
• Not great for GUIs
• Not going to be run on your mobile device;
• but great for you mobile device backend.
Hello, “Weaknesses”.
• No strings as a data type
• List of Integers or Binary types
• Not super performant for string manipulation, but good enough for most
scenarios
• Not great for GUIs
• Not going to be run on your mobile device;
• but great for you mobile device backend.
• WhatsApp anyone?
Hello, “Weaknesses”.
• No strings as a data type
• List of Integers or Binary types
• Not super performant for string manipulation, but good enough for most
scenarios
• Not great for GUIs
• Not going to be run on your mobile device;
• but great for you mobile device backend.
• WhatsApp anyone?
• Not insanely fast
Hello, “Weaknesses”.
• No strings as a data type
• List of Integers or Binary types
• Not super performant for string manipulation, but good enough for most
scenarios
• Not great for GUIs
• Not going to be run on your mobile device;
• but great for you mobile device backend.
• WhatsApp anyone?
• Not insanely fast
• "There's no such thing as fast, only fast enough" ~ Joe Armstrong
Hello, FizzBuzz.
Hello, fizzbuzz.erl
-module(fizzbuzz).
-export([fizzbuzz/1]).
fizzbuzz(N) ->
Translations = lists:map(fun translate/1, lists:seq(1, N)),
lists:foreach(fun(Item) -> io:format("~s~n", [Item]) end, Translations).
translate(N) when N rem 3 =:= 0 andalso N rem 5 =:= 0 ->
'FizzBuzz';
translate(N) when N rem 3 =:= 0 ->
'Fizz';
translate(N) when N rem 5 =:= 0 ->
'Buzz';
translate(N) ->
integer_to_list(N).
Hello, fizzbuzz.ex
defmodule FizzBuzz do
def fizzbuzz(n) do
1..n
|> Enum.map(&translate/1)
|> Enum.join("n")
|> IO.puts
end
def translate(n) when rem(n, 3) == 0 and rem(n, 5) == 0, do: :FizzBuzz
def translate(n) when rem(n, 3) == 0, do: :Fizz
def translate(n) when rem(n, 5) == 0, do: :Buzz
def translate(n), do: n
end
Hello, fizzbuzz.lfe
(defmodule fizzbuzz
(export (fizzbuzz 1)))
(defun fizzbuzz (n)
(lists:foreach
(lambda (term) (lfe_io:format "~p~n" `(,term)))
(translate-upto n)))
(defun translate-upto (n)
(let ((numbers (lists:seq 1 n)))
(lists:map
(lambda (n) (translate n (rem n 3) (rem n 5)))
numbers)))
(defun translate
([_ 0 0] 'FizzBuzz)
([_ 0 _] 'Fizz)
([_ _ 0] 'Buzz)
([n _ _] n))
Hello, Demo.
Hello, Proctor.
• http://www.proctor-it.com
• @stevenproctor
• steven.proctor@gmail.com
• @fngeekery
• http://www.functionalgeekery.com
• @dfwerlang
• http://www.meetup.com/DFW-Erlang-User-Group/
• @planeterlang
• http://www.planeterlang.com

More Related Content

Viewers also liked

De cuong thi quoc gia mon anh
De cuong thi quoc gia mon anhDe cuong thi quoc gia mon anh
De cuong thi quoc gia mon anh
Tommy Bảo
 
Unit 3 – assembly language programming
Unit 3 – assembly language programmingUnit 3 – assembly language programming
Unit 3 – assembly language programming
Kartik Sharma
 
1,001 Things You Didn't Know About Everything
1,001 Things You Didn't Know About Everything1,001 Things You Didn't Know About Everything
1,001 Things You Didn't Know About Everything
Pamela J.
 
Christiane Nord
Christiane Nord Christiane Nord
Christiane Nord Jota Erre
 
Symbolism in "Scarlet Letter"
Symbolism in "Scarlet Letter"Symbolism in "Scarlet Letter"
Symbolism in "Scarlet Letter"
Department of English
 
Present simple
Present simplePresent simple
Present simple
jennvalencia09
 
Foreignization & domestication
Foreignization & domesticationForeignization & domestication
Foreignization & domestication
abdelbaar
 
Managerial communication unit-2
Managerial communication unit-2Managerial communication unit-2
Managerial communication unit-2
SANJAY KANAGALA
 
Tourism in kenya– good or bad
Tourism in kenya– good or badTourism in kenya– good or bad
Tourism in kenya– good or badtudorgeog
 
An analysis of exam oriented education system (1)
An analysis of exam oriented education system (1)An analysis of exam oriented education system (1)
An analysis of exam oriented education system (1)lizhiao
 
More then a good story case application 1 answer
More then a good story case application 1 answerMore then a good story case application 1 answer
More then a good story case application 1 answer
Razveer Jahan
 

Viewers also liked (11)

De cuong thi quoc gia mon anh
De cuong thi quoc gia mon anhDe cuong thi quoc gia mon anh
De cuong thi quoc gia mon anh
 
Unit 3 – assembly language programming
Unit 3 – assembly language programmingUnit 3 – assembly language programming
Unit 3 – assembly language programming
 
1,001 Things You Didn't Know About Everything
1,001 Things You Didn't Know About Everything1,001 Things You Didn't Know About Everything
1,001 Things You Didn't Know About Everything
 
Christiane Nord
Christiane Nord Christiane Nord
Christiane Nord
 
Symbolism in "Scarlet Letter"
Symbolism in "Scarlet Letter"Symbolism in "Scarlet Letter"
Symbolism in "Scarlet Letter"
 
Present simple
Present simplePresent simple
Present simple
 
Foreignization & domestication
Foreignization & domesticationForeignization & domestication
Foreignization & domestication
 
Managerial communication unit-2
Managerial communication unit-2Managerial communication unit-2
Managerial communication unit-2
 
Tourism in kenya– good or bad
Tourism in kenya– good or badTourism in kenya– good or bad
Tourism in kenya– good or bad
 
An analysis of exam oriented education system (1)
An analysis of exam oriented education system (1)An analysis of exam oriented education system (1)
An analysis of exam oriented education system (1)
 
More then a good story case application 1 answer
More then a good story case application 1 answerMore then a good story case application 1 answer
More then a good story case application 1 answer
 

Similar to Hello, Joe. Hello, Mike; Hello, Robert.

Access to iDevices
Access to iDevicesAccess to iDevices
Access to iDevices
will wade
 
Exploitation and State Machines
Exploitation and State MachinesExploitation and State Machines
Exploitation and State MachinesMichael Scovetta
 
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
Dakiry
 
28c3 in 15
28c3 in 1528c3 in 15
28c3 in 15antitree
 
Keynote, LambdaConf 2014 - The Silent Productivity Killer
Keynote, LambdaConf 2014 - The Silent Productivity KillerKeynote, LambdaConf 2014 - The Silent Productivity Killer
Keynote, LambdaConf 2014 - The Silent Productivity Killer
Paul Phillips
 
Rails development environment talk
Rails development environment talkRails development environment talk
Rails development environment talk
Reuven Lerner
 
Hardware for JavaScript Developers
Hardware for JavaScript DevelopersHardware for JavaScript Developers
Hardware for JavaScript Developers
Tarik Kelestemur
 
NLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryNLP using JavaScript Natural Library
NLP using JavaScript Natural Library
Aniruddha Chakrabarti
 
Hacking school computers for fun profit and better grades short
Hacking school computers for fun profit and better grades shortHacking school computers for fun profit and better grades short
Hacking school computers for fun profit and better grades short
Vincent Ohprecio
 
Steelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashSteelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trash
infodox
 
What happens when firefox crashes?
What happens when firefox crashes?What happens when firefox crashes?
What happens when firefox crashes?
Erik Rose
 
Speech Recognition System
Speech Recognition SystemSpeech Recognition System
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
jaxLondonConference
 
Natural Language Processing Tools for the Digital Humanities
Natural Language Processing Tools for the Digital HumanitiesNatural Language Processing Tools for the Digital Humanities
Natural Language Processing Tools for the Digital Humanities
Xiang Li
 
Go for Rubyists. August 2018. RUG-B Meetup
Go for Rubyists. August 2018. RUG-B MeetupGo for Rubyists. August 2018. RUG-B Meetup
Go for Rubyists. August 2018. RUG-B Meetup
Kirill Zonov
 
Message:Passing - lpw 2012
Message:Passing - lpw 2012Message:Passing - lpw 2012
Message:Passing - lpw 2012Tomas Doran
 
Lecture1_cis4930.pdf
Lecture1_cis4930.pdfLecture1_cis4930.pdf
Lecture1_cis4930.pdf
zertash1
 
Oral tradition in software engineering: Passing the craft across generations
Oral tradition in software engineering: Passing the craft across generationsOral tradition in software engineering: Passing the craft across generations
Oral tradition in software engineering: Passing the craft across generations
bcantrill
 
nodebots presentation @seekjobs
nodebots presentation @seekjobsnodebots presentation @seekjobs
nodebots presentation @seekjobs
Esteban (Steven) De Salas
 

Similar to Hello, Joe. Hello, Mike; Hello, Robert. (20)

Access to iDevices
Access to iDevicesAccess to iDevices
Access to iDevices
 
Exploitation and State Machines
Exploitation and State MachinesExploitation and State Machines
Exploitation and State Machines
 
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
 
28c3 in 15
28c3 in 1528c3 in 15
28c3 in 15
 
Keynote, LambdaConf 2014 - The Silent Productivity Killer
Keynote, LambdaConf 2014 - The Silent Productivity KillerKeynote, LambdaConf 2014 - The Silent Productivity Killer
Keynote, LambdaConf 2014 - The Silent Productivity Killer
 
Rails development environment talk
Rails development environment talkRails development environment talk
Rails development environment talk
 
Hardware for JavaScript Developers
Hardware for JavaScript DevelopersHardware for JavaScript Developers
Hardware for JavaScript Developers
 
NLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryNLP using JavaScript Natural Library
NLP using JavaScript Natural Library
 
Hacking school computers for fun profit and better grades short
Hacking school computers for fun profit and better grades shortHacking school computers for fun profit and better grades short
Hacking school computers for fun profit and better grades short
 
Steelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashSteelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trash
 
What happens when firefox crashes?
What happens when firefox crashes?What happens when firefox crashes?
What happens when firefox crashes?
 
Speech Recognition System
Speech Recognition SystemSpeech Recognition System
Speech Recognition System
 
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
 
Natural Language Processing Tools for the Digital Humanities
Natural Language Processing Tools for the Digital HumanitiesNatural Language Processing Tools for the Digital Humanities
Natural Language Processing Tools for the Digital Humanities
 
Realtime web2012
Realtime web2012Realtime web2012
Realtime web2012
 
Go for Rubyists. August 2018. RUG-B Meetup
Go for Rubyists. August 2018. RUG-B MeetupGo for Rubyists. August 2018. RUG-B Meetup
Go for Rubyists. August 2018. RUG-B Meetup
 
Message:Passing - lpw 2012
Message:Passing - lpw 2012Message:Passing - lpw 2012
Message:Passing - lpw 2012
 
Lecture1_cis4930.pdf
Lecture1_cis4930.pdfLecture1_cis4930.pdf
Lecture1_cis4930.pdf
 
Oral tradition in software engineering: Passing the craft across generations
Oral tradition in software engineering: Passing the craft across generationsOral tradition in software engineering: Passing the craft across generations
Oral tradition in software engineering: Passing the craft across generations
 
nodebots presentation @seekjobs
nodebots presentation @seekjobsnodebots presentation @seekjobs
nodebots presentation @seekjobs
 

Recently uploaded

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 

Recently uploaded (20)

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 

Hello, Joe. Hello, Mike; Hello, Robert.

  • 1. Hello, Joe. Hello, Mike; Hello, Robert.1 A Hello World Style Lighting Talk on Erlang. 1. From Erlang the Movie (https://archive.org/details/ErlangTheMovie)
  • 2. Hello, Erlang. Erlang and OTP was designed for building distributed, asynchronous, highly-concurrent, fault tolerant applications with high availability.
  • 3. Hello, Erlang. Erlang and OTP was designed for building distributed, asynchronous, highly-concurrent, fault tolerant applications with high availability. #BuzzwordBingo
  • 5. Hello, Telecom. • 100s of Thousands, if not Millions, of calls happen at the same time
  • 6. Hello, Telecom. • 100s of Thousands, if not Millions, of calls happen at the same time • Your phone line has to always be available
  • 7. Hello, Telecom. • 100s of Thousands, if not Millions, of calls happen at the same time • Your phone line has to always be available • My call cannot corrupt your call
  • 9. Hello, Déjà vu • Sound Familiar?
  • 12. Hello, Failure. • In the Real World things fail. Embrace it.
  • 13. Hello, Failure. • In the Real World things fail. Embrace it. • “Let It Crash” philosophy
  • 14. Hello, Failure. • In the Real World things fail. Embrace it. • “Let It Crash” philosophy • Immutability
  • 15. Hello, Failure. • In the Real World things fail. Embrace it. • “Let It Crash” philosophy • Immutability • No Shared State
  • 16. Hello, Failure. • In the Real World things fail. Embrace it. • “Let It Crash” philosophy • Immutability • No Shared State • Isolated Processes Communicate Through Message Passing (Actor Model)
  • 17. Hello, Failure. • In the Real World things fail. Embrace it. • “Let It Crash” philosophy • Immutability • No Shared State • Isolated Processes Communicate Through Message Passing (Actor Model) • Supervision Hierarchy
  • 18. Hello, Failure. • In the Real World things fail. Embrace it. • “Let It Crash” philosophy • Immutability • No Shared State • Isolated Processes Communicate Through Message Passing (Actor Model) • Supervision Hierarchy • Live code reloading
  • 24. Hello, “Weaknesses”. • No strings as a data type
  • 25. Hello, “Weaknesses”. • No strings as a data type • List of Integers or Binary types
  • 26. Hello, “Weaknesses”. • No strings as a data type • List of Integers or Binary types • Not super performant for string manipulation, but good enough for most scenarios
  • 27. Hello, “Weaknesses”. • No strings as a data type • List of Integers or Binary types • Not super performant for string manipulation, but good enough for most scenarios • Not great for GUIs
  • 28. Hello, “Weaknesses”. • No strings as a data type • List of Integers or Binary types • Not super performant for string manipulation, but good enough for most scenarios • Not great for GUIs • Not going to be run on your mobile device;
  • 29. Hello, “Weaknesses”. • No strings as a data type • List of Integers or Binary types • Not super performant for string manipulation, but good enough for most scenarios • Not great for GUIs • Not going to be run on your mobile device; • but great for you mobile device backend.
  • 30. Hello, “Weaknesses”. • No strings as a data type • List of Integers or Binary types • Not super performant for string manipulation, but good enough for most scenarios • Not great for GUIs • Not going to be run on your mobile device; • but great for you mobile device backend. • WhatsApp anyone?
  • 31. Hello, “Weaknesses”. • No strings as a data type • List of Integers or Binary types • Not super performant for string manipulation, but good enough for most scenarios • Not great for GUIs • Not going to be run on your mobile device; • but great for you mobile device backend. • WhatsApp anyone? • Not insanely fast
  • 32. Hello, “Weaknesses”. • No strings as a data type • List of Integers or Binary types • Not super performant for string manipulation, but good enough for most scenarios • Not great for GUIs • Not going to be run on your mobile device; • but great for you mobile device backend. • WhatsApp anyone? • Not insanely fast • "There's no such thing as fast, only fast enough" ~ Joe Armstrong
  • 34. Hello, fizzbuzz.erl -module(fizzbuzz). -export([fizzbuzz/1]). fizzbuzz(N) -> Translations = lists:map(fun translate/1, lists:seq(1, N)), lists:foreach(fun(Item) -> io:format("~s~n", [Item]) end, Translations). translate(N) when N rem 3 =:= 0 andalso N rem 5 =:= 0 -> 'FizzBuzz'; translate(N) when N rem 3 =:= 0 -> 'Fizz'; translate(N) when N rem 5 =:= 0 -> 'Buzz'; translate(N) -> integer_to_list(N).
  • 35. Hello, fizzbuzz.ex defmodule FizzBuzz do def fizzbuzz(n) do 1..n |> Enum.map(&translate/1) |> Enum.join("n") |> IO.puts end def translate(n) when rem(n, 3) == 0 and rem(n, 5) == 0, do: :FizzBuzz def translate(n) when rem(n, 3) == 0, do: :Fizz def translate(n) when rem(n, 5) == 0, do: :Buzz def translate(n), do: n end
  • 36. Hello, fizzbuzz.lfe (defmodule fizzbuzz (export (fizzbuzz 1))) (defun fizzbuzz (n) (lists:foreach (lambda (term) (lfe_io:format "~p~n" `(,term))) (translate-upto n))) (defun translate-upto (n) (let ((numbers (lists:seq 1 n))) (lists:map (lambda (n) (translate n (rem n 3) (rem n 5))) numbers))) (defun translate ([_ 0 0] 'FizzBuzz) ([_ 0 _] 'Fizz) ([_ _ 0] 'Buzz) ([n _ _] n))
  • 38. Hello, Proctor. • http://www.proctor-it.com • @stevenproctor • steven.proctor@gmail.com • @fngeekery • http://www.functionalgeekery.com • @dfwerlang • http://www.meetup.com/DFW-Erlang-User-Group/ • @planeterlang • http://www.planeterlang.com