SlideShare a Scribd company logo
Erlang
@ino_murko
@ino_murko
Preaching to the Unconverted. #ruby vs. #erl
@iamdevloper
Speed dating is useless. 30s isn't long enough to explain the benefits of functional programming i
Extremely high number of concurrent processes.
The system can be distributed over multiple computers.
System has to be self repairing and self configurable.
tware maintenance must be performed without system shutdo
ACTOR MODEL
Share nothing
Immutable state
Pure async message passing
Event (Message) driven
Distributed
Concurrent
Soft real time
Dynamic code upgrade
Joe Armstrong @React 20
supervisors
worker
s
OTP behaviours
• set of design patterns
• gen_server, fsm, supervisor
server
process
message
@christinacaci
Programming is the surest way I know to feel brilliant one second and idiotic the
Syntax
area({square, Size}) ->
Size * Size;
area({circle, Radius})->
Pi = 3.14,
Pi * Radius * Radius;
area(_Unknown)->
error.
Syntax
Function head pattern matching
@znmeb
Functional programming is no more a silver bullet than anything else. The discipline > th
ey:Length/binary-unit:8, _Rem/binary>> = _DataRecv, Socket, State=#state{socket=
%do something;
ey:Length/binary-unit:8, _Rem/binary>> = _DataRecv, Socket, State=#state{socket=
%do something else.
Syntax
Single assignment
>1 = 1.
>1 = 2. %** exception error: no match of right hand side value
>X = X +1. %** exception error: no match of right hand side value
>Var = 1.
>{person,[{name,First},{last,Last}]}={person,[{name,”Roman”},{last,”R
>First.
"Roman"
>Last.
"Radovic"
@znmeb
Functional programming is no more a silver bullet than anything else. The discipline > th
Types (or lack thereof)
>F = fun(X,Y)->
X1 = X * 2,
Y1 = Y * X,
X1 +Y1
end.
#Fun<erl_eval.12.90072148>
>F(5, 6).
40.
@CompSciFact
The naming of functions is a difficult matte
If statement
if
A == 5 ->
do();
true ->
do_something_else()
end.
case Temperature of
{celsius, N} when N >= 20, N =< 45 ->
'favorable';
{kelvin, N} when N >= 293, N =< 318 ->
'scientifically favorable';
{fahrenheit, N} when N >= 68, N =< 113 -
'favorable in the US';
_ ->
'avoid beach'
end.
@t_sloughter
Writing large fault-tolerant systems in Java creates work for 5 people later. So use
Recursion :)
fact(0)->
1;
fact(N) when N > 0 ->
N * fact(N-1).
fact(Value)->
fact_help(lists:seq(1,Value),1).
fact_help([0],Acc)->
Acc;
fact_help([],Acc)->
Acc;
fact_help([H|T], Acc) when H > 0 ->
Acc0 = H * Acc,
fact_help(T, Acc0).
tail-recursiveNOT tail-recursive
Spawning processes and communication
@ jfcloutier
Prolog: thinking in proofs Erlang: thinking in processes UML: wishful thin
-module(hello_world).
-export([start/0]).
start()->
spawn(fun()-> respond() end).
respond()->
receive
hi->
io:fwrite("Hello World! ~n"),
respond();
stop ->
exit(normal)
end.
Spawning processes and communication
@ jfcloutier
Prolog: thinking in proofs Erlang: thinking in processes UML: wishful thin
receive
{start}->…
{stop}->…
{data,X,Y}->…
end
Pid ! {data, 12, 14}
ActorDB
@ino_murko
ACTOR emit_cloud_user(1013) CREATE;
SELECT * FROM file;
ACTOR emit_cloud_user(*);
INSERT INTO dir VALUES ('mapa');
ACTOR emit_cloud_user(1013,1014,1015);
{{RESULT}}SELECT * FROM file;
ACTOR emit_cloud_user(*);
PRAGMA LIST;
counters:
type: kv
schema:
- CREATE TABLE actors (id TEXT UNIQUE, hash INTEG
ACTOR counters(mykey);
INSERT INTO actors VALUES ('mykey',{{hash(mykey)}},
q().

More Related Content

What's hot

Python programing
Python programingPython programing
Python programing
hamzagame
 
Ruby Code Optimizations (for beginners)
Ruby Code Optimizations (for beginners)Ruby Code Optimizations (for beginners)
Ruby Code Optimizations (for beginners)
chirantan.rajhans
 
Minimum phase, All pass and Magnitude Squared Function
Minimum phase, All pass and Magnitude Squared FunctionMinimum phase, All pass and Magnitude Squared Function
Minimum phase, All pass and Magnitude Squared Function
COMSATS Abbottabad
 
Filter Designing
Filter DesigningFilter Designing
Filter Designing
COMSATS Abbottabad
 
C Assignment Help
C Assignment HelpC Assignment Help
C Assignment Help
Programming Homework Help
 
Phase Responce of Pole zero
Phase Responce of Pole zeroPhase Responce of Pole zero
Phase Responce of Pole zero
COMSATS Abbottabad
 
Operators and Control Statements in Python
Operators and Control Statements in PythonOperators and Control Statements in Python
Operators and Control Statements in Python
RajeswariA8
 
Moody chart, M-File for finding Friction factor using equation
Moody chart, M-File for finding Friction factor using equationMoody chart, M-File for finding Friction factor using equation
Moody chart, M-File for finding Friction factor using equation
Danial Sohail
 
I have a stream - Insights in Reactive Programming - Jan Carsten Lohmuller - ...
I have a stream - Insights in Reactive Programming - Jan Carsten Lohmuller - ...I have a stream - Insights in Reactive Programming - Jan Carsten Lohmuller - ...
I have a stream - Insights in Reactive Programming - Jan Carsten Lohmuller - ...
Codemotion
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
Marian Marinov
 
Rust - Fernando Borretti
Rust - Fernando BorrettiRust - Fernando Borretti
Rust - Fernando Borretti
Tryolabs
 
Raspberry pi Part 6
Raspberry pi Part 6Raspberry pi Part 6
Raspberry pi Part 6
Techvilla
 
Python
PythonPython
Heap sort &amp; bubble sort
Heap sort &amp; bubble sortHeap sort &amp; bubble sort
Heap sort &amp; bubble sort
Shanmuga Raju
 
Hw3
Hw3Hw3
Q1 create a java desktop application to find the largest number among the t...
Q1  create a java desktop application to find the largest number  among the t...Q1  create a java desktop application to find the largest number  among the t...
Q1 create a java desktop application to find the largest number among the t...
Manoj Bhakuni
 

What's hot (17)

Python programing
Python programingPython programing
Python programing
 
Ruby Code Optimizations (for beginners)
Ruby Code Optimizations (for beginners)Ruby Code Optimizations (for beginners)
Ruby Code Optimizations (for beginners)
 
Minimum phase, All pass and Magnitude Squared Function
Minimum phase, All pass and Magnitude Squared FunctionMinimum phase, All pass and Magnitude Squared Function
Minimum phase, All pass and Magnitude Squared Function
 
Filter Designing
Filter DesigningFilter Designing
Filter Designing
 
C Assignment Help
C Assignment HelpC Assignment Help
C Assignment Help
 
Phase Responce of Pole zero
Phase Responce of Pole zeroPhase Responce of Pole zero
Phase Responce of Pole zero
 
Operators and Control Statements in Python
Operators and Control Statements in PythonOperators and Control Statements in Python
Operators and Control Statements in Python
 
Moody chart, M-File for finding Friction factor using equation
Moody chart, M-File for finding Friction factor using equationMoody chart, M-File for finding Friction factor using equation
Moody chart, M-File for finding Friction factor using equation
 
I have a stream - Insights in Reactive Programming - Jan Carsten Lohmuller - ...
I have a stream - Insights in Reactive Programming - Jan Carsten Lohmuller - ...I have a stream - Insights in Reactive Programming - Jan Carsten Lohmuller - ...
I have a stream - Insights in Reactive Programming - Jan Carsten Lohmuller - ...
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Rust - Fernando Borretti
Rust - Fernando BorrettiRust - Fernando Borretti
Rust - Fernando Borretti
 
Raspberry pi Part 6
Raspberry pi Part 6Raspberry pi Part 6
Raspberry pi Part 6
 
Python
PythonPython
Python
 
Heap sort &amp; bubble sort
Heap sort &amp; bubble sortHeap sort &amp; bubble sort
Heap sort &amp; bubble sort
 
Sorter
SorterSorter
Sorter
 
Hw3
Hw3Hw3
Hw3
 
Q1 create a java desktop application to find the largest number among the t...
Q1  create a java desktop application to find the largest number  among the t...Q1  create a java desktop application to find the largest number  among the t...
Q1 create a java desktop application to find the largest number among the t...
 

Viewers also liked

Kowshikaa consultancy
Kowshikaa consultancyKowshikaa consultancy
Kowshikaa consultancy
Rajaram Ravindharan
 
வெற்றி
வெற்றிவெற்றி
வெற்றி
Rajaram Ravindharan
 
RPM camille claudel
RPM camille claudelRPM camille claudel
RPM camille claudel
Raquel Pérez Miras
 
The_Residency_Coimbatore_Experience
The_Residency_Coimbatore_ExperienceThe_Residency_Coimbatore_Experience
The_Residency_Coimbatore_ExperienceGOPALA KRISHNAN.S
 
Kowshikaa consultancy overseas
Kowshikaa consultancy overseas Kowshikaa consultancy overseas
Kowshikaa consultancy overseas
Rajaram Ravindharan
 
Enlio Company presentation(6.10)
Enlio Company presentation(6.10)Enlio Company presentation(6.10)
Enlio Company presentation(6.10)Arnaud Veere
 
Kowshikaa consultancy
Kowshikaa consultancyKowshikaa consultancy
Kowshikaa consultancy
Rajaram Ravindharan
 
London
LondonLondon
London
nuzuraya
 
Kowshikaa consultancy
Kowshikaa consultancyKowshikaa consultancy
Kowshikaa consultancy
Rajaram Ravindharan
 
Hello everyone
Hello everyoneHello everyone
Hello everyone
Rajaram Ravindharan
 
Mte(laporan hari kantin)2014
Mte(laporan hari kantin)2014Mte(laporan hari kantin)2014
Mte(laporan hari kantin)2014
mizah1606
 
Anon phpmysql
Anon phpmysqlAnon phpmysql
Anon phpmysql
andi yanto
 
Dados de Mercado outubro de 2016
Dados de Mercado outubro de 2016Dados de Mercado outubro de 2016
Storyboard of opening sequence
Storyboard of opening sequenceStoryboard of opening sequence
Storyboard of opening sequencetomanton
 
Communication
CommunicationCommunication
Communication
Venkat Shri
 
Cow shower ups production entrepreneur
Cow shower ups production   entrepreneurCow shower ups production   entrepreneur
Cow shower ups production entrepreneur
Dr.Rami Hamad
 
Ziad Ahmad Saleh Abu -Yousef cv
Ziad Ahmad Saleh Abu -Yousef cvZiad Ahmad Saleh Abu -Yousef cv
Ziad Ahmad Saleh Abu -Yousef cvZiad Abu Yousef
 
20141213 speech bib_heusden_zolder
20141213 speech bib_heusden_zolder20141213 speech bib_heusden_zolder
20141213 speech bib_heusden_zolder
Bart Beuten
 

Viewers also liked (20)

Kowshikaa consultancy
Kowshikaa consultancyKowshikaa consultancy
Kowshikaa consultancy
 
resume
resumeresume
resume
 
வெற்றி
வெற்றிவெற்றி
வெற்றி
 
RPM camille claudel
RPM camille claudelRPM camille claudel
RPM camille claudel
 
The_Residency_Coimbatore_Experience
The_Residency_Coimbatore_ExperienceThe_Residency_Coimbatore_Experience
The_Residency_Coimbatore_Experience
 
Kowshikaa consultancy overseas
Kowshikaa consultancy overseas Kowshikaa consultancy overseas
Kowshikaa consultancy overseas
 
Enlio Company presentation(6.10)
Enlio Company presentation(6.10)Enlio Company presentation(6.10)
Enlio Company presentation(6.10)
 
Kowshikaa consultancy
Kowshikaa consultancyKowshikaa consultancy
Kowshikaa consultancy
 
London
LondonLondon
London
 
Kowshikaa consultancy
Kowshikaa consultancyKowshikaa consultancy
Kowshikaa consultancy
 
Hello everyone
Hello everyoneHello everyone
Hello everyone
 
Mte(laporan hari kantin)2014
Mte(laporan hari kantin)2014Mte(laporan hari kantin)2014
Mte(laporan hari kantin)2014
 
Anon phpmysql
Anon phpmysqlAnon phpmysql
Anon phpmysql
 
Dados de Mercado outubro de 2016
Dados de Mercado outubro de 2016Dados de Mercado outubro de 2016
Dados de Mercado outubro de 2016
 
Storyboard of opening sequence
Storyboard of opening sequenceStoryboard of opening sequence
Storyboard of opening sequence
 
Communication
CommunicationCommunication
Communication
 
Portfolio for Email
Portfolio for EmailPortfolio for Email
Portfolio for Email
 
Cow shower ups production entrepreneur
Cow shower ups production   entrepreneurCow shower ups production   entrepreneur
Cow shower ups production entrepreneur
 
Ziad Ahmad Saleh Abu -Yousef cv
Ziad Ahmad Saleh Abu -Yousef cvZiad Ahmad Saleh Abu -Yousef cv
Ziad Ahmad Saleh Abu -Yousef cv
 
20141213 speech bib_heusden_zolder
20141213 speech bib_heusden_zolder20141213 speech bib_heusden_zolder
20141213 speech bib_heusden_zolder
 

Similar to Erlang And ActorDB

Clojure basics
Clojure basicsClojure basics
Clojure basics
Knoldus Inc.
 
Introduction to Algorithms
Introduction to AlgorithmsIntroduction to Algorithms
Introduction to Algorithms
Venkatesh Iyer
 
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
Pavlo Baron
 
Advance data structure & algorithm
Advance data structure & algorithmAdvance data structure & algorithm
Advance data structure & algorithm
K Hari Shankar
 
Ruby Refinements: the Worst Feature You Ever Loved
Ruby Refinements: the Worst Feature You Ever LovedRuby Refinements: the Worst Feature You Ever Loved
Ruby Refinements: the Worst Feature You Ever Loved
paoloperrotta
 
Threaded Programming
Threaded ProgrammingThreaded Programming
Threaded ProgrammingSri Prasanna
 
Task and Data Parallelism
Task and Data ParallelismTask and Data Parallelism
Task and Data Parallelism
Sasha Goldshtein
 
Parallel R in snow (english after 2nd slide)
Parallel R in snow (english after 2nd slide)Parallel R in snow (english after 2nd slide)
Parallel R in snow (english after 2nd slide)Cdiscount
 
Parallel Computing with R
Parallel Computing with RParallel Computing with R
Parallel Computing with R
Abhirup Mallik
 
Programming python quick intro for schools
Programming python quick intro for schoolsProgramming python quick intro for schools
Programming python quick intro for schools
Dan Bowen
 
Dr Mrs A A Miraje C Programming PPT.pptx
Dr Mrs A A Miraje C Programming PPT.pptxDr Mrs A A Miraje C Programming PPT.pptx
Dr Mrs A A Miraje C Programming PPT.pptx
ProfAAMiraje
 
Pydiomatic
PydiomaticPydiomatic
Pydiomatic
rik0
 
Python idiomatico
Python idiomaticoPython idiomatico
Python idiomatico
PyCon Italia
 
A Small Talk on Getting Big
A Small Talk on Getting BigA Small Talk on Getting Big
A Small Talk on Getting Bigbritt
 
Java Foundations: Data Types and Type Conversion
Java Foundations: Data Types and Type ConversionJava Foundations: Data Types and Type Conversion
Java Foundations: Data Types and Type Conversion
Svetlin Nakov
 
Data Analytics and Simulation in Parallel with MATLAB*
Data Analytics and Simulation in Parallel with MATLAB*Data Analytics and Simulation in Parallel with MATLAB*
Data Analytics and Simulation in Parallel with MATLAB*
Intel® Software
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic Analysis
Fastly
 
C aptitude.2doc
C aptitude.2docC aptitude.2doc
C aptitude.2docSrikanth
 
Captitude 2doc-100627004318-phpapp01
Captitude 2doc-100627004318-phpapp01Captitude 2doc-100627004318-phpapp01
Captitude 2doc-100627004318-phpapp01
ManjeeraBhargavi Varanasi
 

Similar to Erlang And ActorDB (20)

Clojure basics
Clojure basicsClojure basics
Clojure basics
 
Introduction to Algorithms
Introduction to AlgorithmsIntroduction to Algorithms
Introduction to Algorithms
 
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
 
Advance data structure & algorithm
Advance data structure & algorithmAdvance data structure & algorithm
Advance data structure & algorithm
 
Ruby Refinements: the Worst Feature You Ever Loved
Ruby Refinements: the Worst Feature You Ever LovedRuby Refinements: the Worst Feature You Ever Loved
Ruby Refinements: the Worst Feature You Ever Loved
 
Threaded Programming
Threaded ProgrammingThreaded Programming
Threaded Programming
 
Task and Data Parallelism
Task and Data ParallelismTask and Data Parallelism
Task and Data Parallelism
 
Parallel R in snow (english after 2nd slide)
Parallel R in snow (english after 2nd slide)Parallel R in snow (english after 2nd slide)
Parallel R in snow (english after 2nd slide)
 
Parallel Computing with R
Parallel Computing with RParallel Computing with R
Parallel Computing with R
 
Programming python quick intro for schools
Programming python quick intro for schoolsProgramming python quick intro for schools
Programming python quick intro for schools
 
cluster(python)
cluster(python)cluster(python)
cluster(python)
 
Dr Mrs A A Miraje C Programming PPT.pptx
Dr Mrs A A Miraje C Programming PPT.pptxDr Mrs A A Miraje C Programming PPT.pptx
Dr Mrs A A Miraje C Programming PPT.pptx
 
Pydiomatic
PydiomaticPydiomatic
Pydiomatic
 
Python idiomatico
Python idiomaticoPython idiomatico
Python idiomatico
 
A Small Talk on Getting Big
A Small Talk on Getting BigA Small Talk on Getting Big
A Small Talk on Getting Big
 
Java Foundations: Data Types and Type Conversion
Java Foundations: Data Types and Type ConversionJava Foundations: Data Types and Type Conversion
Java Foundations: Data Types and Type Conversion
 
Data Analytics and Simulation in Parallel with MATLAB*
Data Analytics and Simulation in Parallel with MATLAB*Data Analytics and Simulation in Parallel with MATLAB*
Data Analytics and Simulation in Parallel with MATLAB*
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic Analysis
 
C aptitude.2doc
C aptitude.2docC aptitude.2doc
C aptitude.2doc
 
Captitude 2doc-100627004318-phpapp01
Captitude 2doc-100627004318-phpapp01Captitude 2doc-100627004318-phpapp01
Captitude 2doc-100627004318-phpapp01
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
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
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
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
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
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
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
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
 
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
 
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
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
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...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
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
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
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...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.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
 
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 ...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 

Erlang And ActorDB

  • 1. Erlang @ino_murko @ino_murko Preaching to the Unconverted. #ruby vs. #erl
  • 2.
  • 3.
  • 4. @iamdevloper Speed dating is useless. 30s isn't long enough to explain the benefits of functional programming i Extremely high number of concurrent processes. The system can be distributed over multiple computers. System has to be self repairing and self configurable. tware maintenance must be performed without system shutdo ACTOR MODEL
  • 5. Share nothing Immutable state Pure async message passing Event (Message) driven Distributed Concurrent Soft real time Dynamic code upgrade Joe Armstrong @React 20
  • 6. supervisors worker s OTP behaviours • set of design patterns • gen_server, fsm, supervisor server process message
  • 7. @christinacaci Programming is the surest way I know to feel brilliant one second and idiotic the Syntax area({square, Size}) -> Size * Size; area({circle, Radius})-> Pi = 3.14, Pi * Radius * Radius; area(_Unknown)-> error.
  • 8. Syntax Function head pattern matching @znmeb Functional programming is no more a silver bullet than anything else. The discipline > th ey:Length/binary-unit:8, _Rem/binary>> = _DataRecv, Socket, State=#state{socket= %do something; ey:Length/binary-unit:8, _Rem/binary>> = _DataRecv, Socket, State=#state{socket= %do something else.
  • 9. Syntax Single assignment >1 = 1. >1 = 2. %** exception error: no match of right hand side value >X = X +1. %** exception error: no match of right hand side value >Var = 1. >{person,[{name,First},{last,Last}]}={person,[{name,”Roman”},{last,”R >First. "Roman" >Last. "Radovic" @znmeb Functional programming is no more a silver bullet than anything else. The discipline > th
  • 10. Types (or lack thereof) >F = fun(X,Y)-> X1 = X * 2, Y1 = Y * X, X1 +Y1 end. #Fun<erl_eval.12.90072148> >F(5, 6). 40. @CompSciFact The naming of functions is a difficult matte
  • 11. If statement if A == 5 -> do(); true -> do_something_else() end. case Temperature of {celsius, N} when N >= 20, N =< 45 -> 'favorable'; {kelvin, N} when N >= 293, N =< 318 -> 'scientifically favorable'; {fahrenheit, N} when N >= 68, N =< 113 - 'favorable in the US'; _ -> 'avoid beach' end. @t_sloughter Writing large fault-tolerant systems in Java creates work for 5 people later. So use
  • 12. Recursion :) fact(0)-> 1; fact(N) when N > 0 -> N * fact(N-1). fact(Value)-> fact_help(lists:seq(1,Value),1). fact_help([0],Acc)-> Acc; fact_help([],Acc)-> Acc; fact_help([H|T], Acc) when H > 0 -> Acc0 = H * Acc, fact_help(T, Acc0). tail-recursiveNOT tail-recursive
  • 13. Spawning processes and communication @ jfcloutier Prolog: thinking in proofs Erlang: thinking in processes UML: wishful thin -module(hello_world). -export([start/0]). start()-> spawn(fun()-> respond() end). respond()-> receive hi-> io:fwrite("Hello World! ~n"), respond(); stop -> exit(normal) end.
  • 14. Spawning processes and communication @ jfcloutier Prolog: thinking in proofs Erlang: thinking in processes UML: wishful thin receive {start}->… {stop}->… {data,X,Y}->… end Pid ! {data, 12, 14}
  • 15.
  • 17.
  • 18. ACTOR emit_cloud_user(1013) CREATE; SELECT * FROM file; ACTOR emit_cloud_user(*); INSERT INTO dir VALUES ('mapa'); ACTOR emit_cloud_user(1013,1014,1015); {{RESULT}}SELECT * FROM file; ACTOR emit_cloud_user(*); PRAGMA LIST;
  • 19. counters: type: kv schema: - CREATE TABLE actors (id TEXT UNIQUE, hash INTEG ACTOR counters(mykey); INSERT INTO actors VALUES ('mykey',{{hash(mykey)}},
  • 20. q().