SlideShare a Scribd company logo
ERLANG
LATEST VERSION &
OPENSOURCE PROJECTS
HELLO!
I am Akhil Agrawal
Doing Erlang development for last five years
Doing Ejabberd development for last six months now
Started BIZense in 2008 & Digikrit in 2015
Latest Version – 18
Highlights and summary of version 18 and
newer releases of Erlang
1
HIGHLIGHTS & SUMMARY
Erlang Public License changed to Apache
Public License v2
License Change
ssl3 & rc4 cipher default support removed to
prevent poodle vulnerability, additional key
exchange algorithms, other safety improvements
SSL/SSH Improvements
Performance improvments in timer
management, scheduler, erlang:make_ref
and persistent hashmaps for large maps.
Performance/Scalability
Improvements in time functionality &
management. erlang:now is deprecated,
timers api changes
Extended Time Functionality
Time Goes On - Referenced from http://learnyousomeerlang.com/time
After release 18, Erlang time divided into multiple components:
1. OS system time, also known as the POSIX time
2. OS Monotonic time; some operating systems provide it, fairly stable
when available
3. Erlang system time. It's the VM's take on POSIX time
4. Erlang monotonic time. Erlang's view of the OS monotonic time if
available or VM's own monotonic version of system time
5. Time offset; because the Erlang Monotonic time is a stable source of
authority, the Erlang system time will be calculated by having a
given offset relative to the Erlang monotonic time. The reason for
this is that it will allow Erlang to adjust the system time without
modifying the monotonic time frequency.
Time Correction
Before release 18, Erlang time works in one of two major
ways:
1. The operating system's clock, represented as a tuple
of the form {MegaSeconds, Seconds, MicroSeconds}
(os:timestamp())
2. The virtual machine's clock, represented as a tuple
of the form {MegaSeconds, Seconds, MicroSeconds}
(erlang:now(), auto-imported as now())
3. Fixed time offset calculated when vm starts
Time Changes – How to Survive Time Warps ?
Why was Time Warp needed ?
◉ Time correction was a compromise
between skewed clocks and
inaccurate clock frequencies
◉ To avoid breaking events, the clock
can only be corrected very slowly, so
we could have both inaccurate clocks
and inaccurate intervals for very long
periods of time
◉ People used erlang:now() when they
wanted monotonic and strictly
monotonic time (useful to order
events) or unique values
How to Survive Time Warps ?
◉ To find system time: erlang:system_time/0-1
◉ To measure time differences: call
erlang:monotonic_time/0-1 twice and
subtract them
◉ To define an absolute order between events
on a node:
erlang:unique_integer([monotonic])
◉ Measure time and make sure an absolute
order is defined: {erlang:monotonic_time(),
erlang:unique_integer([monotonic])}
◉ Create a unique number:
erlang:unique_integer([positive])
Opensource Projects
Overview of some of the popular opensource
projects written in Erlang
2
OPENSOURCE PROJECTS
ERLANG
Applications like RabbitMQ &
Ejabberd (used by Whatsapp)
Communication
Applications like yaws,
mochiweb, cowboy etc
Webservers
Projects like OTP and
applications like disco
Distributed
Applications like mnesia,
couchdb & riak
Databases
OTPOTP (Open Telephony Platform) is set of Erlang libraries & design principles
providing middleware to develop distributed systems
Includes distributed db, language interfaces, debugging & release tools
Why Erlang ?
Why choose Erlang for your next server side
application ?
3
WHY ERLANG ? Referenced from http://veldstra.org/whyerlang/
Lightweight Concurrency
Processes are very lightweight,
with only about 500 bytes of
overhead per-process. This means
that millions of processes can be
created, even on older computers.
Transparent Distribution
With the exception of timing all
operations in the distributed
system will work in exactly the
same way as they worked in a
single-node system.
Hot Code Replacement
In realtime control systems we
may not want or may never be
able to turn off the system to
perform upgrades & such systems
needs dynamic code upgrades.
Battle Proven
Erlang has been successfully used
in production systems for over 20
years (with reported uptimes of 9-
nines — that's 31ms of downtime
a year)
Soft Realtime Applications
Erlang was developed at Ericsson
and was designed from the ground
up for writing scalable, fault-
tolerant, distributed, non-stop,
soft-realtime applications.
Free, Opensource & Much More
Released under permissive open-
source license, cross platform
support to run on linux, osx,
windows, freebsd, solaris &
vxworks. Much more, explore.
2,000,000+
EJABBERD
Massive Scale – 2+ Million Concurrent Users on Single Node
https://blog.process-one.net/ejabberd-massive-scalability-1node-
2-million-concurrent-users/
SOME REFERENCES
◉ https://github.com/0xAX/erlang-bookmarks/wiki/Erlang-
bookmarks
◉ https://github.com/drobakowski/awesome-erlang
◉ https://github.com/uhub/awesome-erlang
◉ http://learnyousomeerlang.com/the-hitchhikers-guide-to-
concurrency
◉ https://github.com/erlang/otp
◉ http://erlang.org/doc/apps/erts/erts.pdf
◉ http://highscalability.com/blog/2014/2/26/the-whatsapp-
architecture-facebook-bought-for-19-billion.html
THANKS!
Any questions?
You can find me at
@digikrit / akhil@digikrit.com
Special thanks to all the people who made and released these awesome resources for free:
 Presentation template by SlidesCarnival
 Presentation models by SlideModel
 Erlang by Ericsson, Erlang projects by ProcessOne, Basho, Apache, Pivotal & others

More Related Content

Viewers also liked

CouchDB Day NYC 2017: Full Text Search
CouchDB Day NYC 2017: Full Text SearchCouchDB Day NYC 2017: Full Text Search
CouchDB Day NYC 2017: Full Text Search
IBM Cloud Data Services
 
Using Erlang in an Embedded and Cross-Compiled World
Using Erlang in an Embedded and Cross-Compiled WorldUsing Erlang in an Embedded and Cross-Compiled World
Using Erlang in an Embedded and Cross-Compiled World
Frank Hunleth
 
CouchDB Day NYC 2017: Using Geospatial Data in Cloudant & CouchDB
CouchDB Day NYC 2017: Using Geospatial Data in Cloudant & CouchDBCouchDB Day NYC 2017: Using Geospatial Data in Cloudant & CouchDB
CouchDB Day NYC 2017: Using Geospatial Data in Cloudant & CouchDB
IBM Cloud Data Services
 
RabbitMQ: Message queuing that works
RabbitMQ: Message queuing that worksRabbitMQ: Message queuing that works
RabbitMQ: Message queuing that works
Codemotion
 
Etomidate ketamine
Etomidate ketamineEtomidate ketamine
Etomidate ketamine
Harith Daggupati
 
Intro to Erlang
Intro to ErlangIntro to Erlang
Intro to Erlang
Ken Pratt
 
Embedded Erlang, Nerves, and SumoBots
Embedded Erlang, Nerves, and SumoBotsEmbedded Erlang, Nerves, and SumoBots
Embedded Erlang, Nerves, and SumoBots
Frank Hunleth
 
Phoenix Framework
Phoenix FrameworkPhoenix Framework
Phoenix Framework
Pivorak MeetUp
 
Introduction to Erlang
Introduction to ErlangIntroduction to Erlang
Introduction to Erlang
Corrado Santoro
 
1 hour dive into Erlang/OTP
1 hour dive into Erlang/OTP1 hour dive into Erlang/OTP
1 hour dive into Erlang/OTP
Jordi Llonch
 
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
Stefan Richter
 
[http://1PU.SH] Building Wireless Sensor Networks with MQTT-SN, RaspberryPi a...
[http://1PU.SH] Building Wireless Sensor Networks with MQTT-SN, RaspberryPi a...[http://1PU.SH] Building Wireless Sensor Networks with MQTT-SN, RaspberryPi a...
[http://1PU.SH] Building Wireless Sensor Networks with MQTT-SN, RaspberryPi a...
Zvi Avraham
 
Erlang OTP
Erlang OTPErlang OTP
Erlang OTP
Zvi Avraham
 
Building a Network IP Camera using Erlang
Building a Network IP Camera using ErlangBuilding a Network IP Camera using Erlang
Building a Network IP Camera using Erlang
Frank Hunleth
 
A web app in pure Clojure
A web app in pure ClojureA web app in pure Clojure
A web app in pure Clojure
Dane Schneider
 
An Erlang Game Stack
An Erlang Game StackAn Erlang Game Stack
An Erlang Game Stack
Eonblast
 

Viewers also liked (16)

CouchDB Day NYC 2017: Full Text Search
CouchDB Day NYC 2017: Full Text SearchCouchDB Day NYC 2017: Full Text Search
CouchDB Day NYC 2017: Full Text Search
 
Using Erlang in an Embedded and Cross-Compiled World
Using Erlang in an Embedded and Cross-Compiled WorldUsing Erlang in an Embedded and Cross-Compiled World
Using Erlang in an Embedded and Cross-Compiled World
 
CouchDB Day NYC 2017: Using Geospatial Data in Cloudant & CouchDB
CouchDB Day NYC 2017: Using Geospatial Data in Cloudant & CouchDBCouchDB Day NYC 2017: Using Geospatial Data in Cloudant & CouchDB
CouchDB Day NYC 2017: Using Geospatial Data in Cloudant & CouchDB
 
RabbitMQ: Message queuing that works
RabbitMQ: Message queuing that worksRabbitMQ: Message queuing that works
RabbitMQ: Message queuing that works
 
Etomidate ketamine
Etomidate ketamineEtomidate ketamine
Etomidate ketamine
 
Intro to Erlang
Intro to ErlangIntro to Erlang
Intro to Erlang
 
Embedded Erlang, Nerves, and SumoBots
Embedded Erlang, Nerves, and SumoBotsEmbedded Erlang, Nerves, and SumoBots
Embedded Erlang, Nerves, and SumoBots
 
Phoenix Framework
Phoenix FrameworkPhoenix Framework
Phoenix Framework
 
Introduction to Erlang
Introduction to ErlangIntroduction to Erlang
Introduction to Erlang
 
1 hour dive into Erlang/OTP
1 hour dive into Erlang/OTP1 hour dive into Erlang/OTP
1 hour dive into Erlang/OTP
 
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
 
[http://1PU.SH] Building Wireless Sensor Networks with MQTT-SN, RaspberryPi a...
[http://1PU.SH] Building Wireless Sensor Networks with MQTT-SN, RaspberryPi a...[http://1PU.SH] Building Wireless Sensor Networks with MQTT-SN, RaspberryPi a...
[http://1PU.SH] Building Wireless Sensor Networks with MQTT-SN, RaspberryPi a...
 
Erlang OTP
Erlang OTPErlang OTP
Erlang OTP
 
Building a Network IP Camera using Erlang
Building a Network IP Camera using ErlangBuilding a Network IP Camera using Erlang
Building a Network IP Camera using Erlang
 
A web app in pure Clojure
A web app in pure ClojureA web app in pure Clojure
A web app in pure Clojure
 
An Erlang Game Stack
An Erlang Game StackAn Erlang Game Stack
An Erlang Game Stack
 

Similar to Erlang latest version & opensource projects

Embedded os
Embedded osEmbedded os
Embedded os
chian417
 
Autosar Basics hand book_v1
Autosar Basics  hand book_v1Autosar Basics  hand book_v1
Autosar Basics hand book_v1
Keroles karam khalil
 
Embedded os
Embedded osEmbedded os
Embedded os
chian417
 
Operating systems
Operating systemsOperating systems
Operating systems
anishgoel
 
Gabriele Santomaggio - Inside Elixir/Erlang - Codemotion Milan 2018
Gabriele Santomaggio - Inside Elixir/Erlang - Codemotion Milan 2018Gabriele Santomaggio - Inside Elixir/Erlang - Codemotion Milan 2018
Gabriele Santomaggio - Inside Elixir/Erlang - Codemotion Milan 2018
Codemotion
 
Lab6 rtos
Lab6 rtosLab6 rtos
Lab6 rtos
indirakumar86
 
MYSQL DATABASE Operating System Part2 (1).pptx
MYSQL DATABASE Operating System Part2 (1).pptxMYSQL DATABASE Operating System Part2 (1).pptx
MYSQL DATABASE Operating System Part2 (1).pptx
ArjayBalberan1
 
Erlang os
Erlang osErlang os
Erlang os
Pinche12345
 
Spr ch-01
Spr ch-01Spr ch-01
Spr ch-01
Vasim Pathan
 
Operating System Slides 1.pptx
Operating System Slides 1.pptxOperating System Slides 1.pptx
Operating System Slides 1.pptx
DureshehwarArshad
 
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
Nikhil Jain
 
Parallel Computing - Lec 6
Parallel Computing - Lec 6Parallel Computing - Lec 6
Parallel Computing - Lec 6
Shah Zaib
 
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
The Linux Foundation
 
Real Time Operating Systems for Embedded Systems
Real Time Operating Systems for Embedded SystemsReal Time Operating Systems for Embedded Systems
Real Time Operating Systems for Embedded Systems
Aditya Vichare
 
FreeRTOS introduction
FreeRTOS introductionFreeRTOS introduction
FreeRTOS introduction
Jegadeesh Vontlin
 
Four Ways to Improve Linux Performance IEEE Webinar, R2.0
Four Ways to Improve Linux Performance IEEE Webinar, R2.0Four Ways to Improve Linux Performance IEEE Webinar, R2.0
Four Ways to Improve Linux Performance IEEE Webinar, R2.0
Michael Christofferson
 
Arch linux and whole security concepts in linux explained
Arch linux and whole security concepts in linux explained Arch linux and whole security concepts in linux explained
Arch linux and whole security concepts in linux explained
krishna kakade
 
Realtime
RealtimeRealtime
Realtime
Mark Veltzer
 
TIME CRITICAL MULTITASKING FOR MULTICORE MICROCONTROLLER USING XMOS® KIT
TIME CRITICAL MULTITASKING FOR MULTICORE MICROCONTROLLER USING XMOS® KITTIME CRITICAL MULTITASKING FOR MULTICORE MICROCONTROLLER USING XMOS® KIT
TIME CRITICAL MULTITASKING FOR MULTICORE MICROCONTROLLER USING XMOS® KIT
ijesajournal
 
[Epfen] Introduction to Epfen Supercomputer
[Epfen] Introduction to Epfen Supercomputer[Epfen] Introduction to Epfen Supercomputer
[Epfen] Introduction to Epfen Supercomputer
Epfen Supercomputer
 

Similar to Erlang latest version & opensource projects (20)

Embedded os
Embedded osEmbedded os
Embedded os
 
Autosar Basics hand book_v1
Autosar Basics  hand book_v1Autosar Basics  hand book_v1
Autosar Basics hand book_v1
 
Embedded os
Embedded osEmbedded os
Embedded os
 
Operating systems
Operating systemsOperating systems
Operating systems
 
Gabriele Santomaggio - Inside Elixir/Erlang - Codemotion Milan 2018
Gabriele Santomaggio - Inside Elixir/Erlang - Codemotion Milan 2018Gabriele Santomaggio - Inside Elixir/Erlang - Codemotion Milan 2018
Gabriele Santomaggio - Inside Elixir/Erlang - Codemotion Milan 2018
 
Lab6 rtos
Lab6 rtosLab6 rtos
Lab6 rtos
 
MYSQL DATABASE Operating System Part2 (1).pptx
MYSQL DATABASE Operating System Part2 (1).pptxMYSQL DATABASE Operating System Part2 (1).pptx
MYSQL DATABASE Operating System Part2 (1).pptx
 
Erlang os
Erlang osErlang os
Erlang os
 
Spr ch-01
Spr ch-01Spr ch-01
Spr ch-01
 
Operating System Slides 1.pptx
Operating System Slides 1.pptxOperating System Slides 1.pptx
Operating System Slides 1.pptx
 
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
 
Parallel Computing - Lec 6
Parallel Computing - Lec 6Parallel Computing - Lec 6
Parallel Computing - Lec 6
 
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
 
Real Time Operating Systems for Embedded Systems
Real Time Operating Systems for Embedded SystemsReal Time Operating Systems for Embedded Systems
Real Time Operating Systems for Embedded Systems
 
FreeRTOS introduction
FreeRTOS introductionFreeRTOS introduction
FreeRTOS introduction
 
Four Ways to Improve Linux Performance IEEE Webinar, R2.0
Four Ways to Improve Linux Performance IEEE Webinar, R2.0Four Ways to Improve Linux Performance IEEE Webinar, R2.0
Four Ways to Improve Linux Performance IEEE Webinar, R2.0
 
Arch linux and whole security concepts in linux explained
Arch linux and whole security concepts in linux explained Arch linux and whole security concepts in linux explained
Arch linux and whole security concepts in linux explained
 
Realtime
RealtimeRealtime
Realtime
 
TIME CRITICAL MULTITASKING FOR MULTICORE MICROCONTROLLER USING XMOS® KIT
TIME CRITICAL MULTITASKING FOR MULTICORE MICROCONTROLLER USING XMOS® KITTIME CRITICAL MULTITASKING FOR MULTICORE MICROCONTROLLER USING XMOS® KIT
TIME CRITICAL MULTITASKING FOR MULTICORE MICROCONTROLLER USING XMOS® KIT
 
[Epfen] Introduction to Epfen Supercomputer
[Epfen] Introduction to Epfen Supercomputer[Epfen] Introduction to Epfen Supercomputer
[Epfen] Introduction to Epfen Supercomputer
 

More from Digikrit

Tech Disruption - Technology Disrupting Different Sectors
Tech Disruption - Technology Disrupting Different SectorsTech Disruption - Technology Disrupting Different Sectors
Tech Disruption - Technology Disrupting Different Sectors
Digikrit
 
Erlang Supervision Trees
Erlang Supervision TreesErlang Supervision Trees
Erlang Supervision Trees
Digikrit
 
AngularJS Anatomy & Directives
AngularJS Anatomy & DirectivesAngularJS Anatomy & Directives
AngularJS Anatomy & Directives
Digikrit
 
Erlang Build Tools
Erlang Build ToolsErlang Build Tools
Erlang Build Tools
Digikrit
 
Master Meta Data
Master Meta DataMaster Meta Data
Master Meta Data
Digikrit
 
Digikrit Company Profile
Digikrit Company ProfileDigikrit Company Profile
Digikrit Company Profile
Digikrit
 

More from Digikrit (6)

Tech Disruption - Technology Disrupting Different Sectors
Tech Disruption - Technology Disrupting Different SectorsTech Disruption - Technology Disrupting Different Sectors
Tech Disruption - Technology Disrupting Different Sectors
 
Erlang Supervision Trees
Erlang Supervision TreesErlang Supervision Trees
Erlang Supervision Trees
 
AngularJS Anatomy & Directives
AngularJS Anatomy & DirectivesAngularJS Anatomy & Directives
AngularJS Anatomy & Directives
 
Erlang Build Tools
Erlang Build ToolsErlang Build Tools
Erlang Build Tools
 
Master Meta Data
Master Meta DataMaster Meta Data
Master Meta Data
 
Digikrit Company Profile
Digikrit Company ProfileDigikrit Company Profile
Digikrit Company Profile
 

Recently uploaded

Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 

Recently uploaded (20)

Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 

Erlang latest version & opensource projects

  • 2. HELLO! I am Akhil Agrawal Doing Erlang development for last five years Doing Ejabberd development for last six months now Started BIZense in 2008 & Digikrit in 2015
  • 3. Latest Version – 18 Highlights and summary of version 18 and newer releases of Erlang 1
  • 4. HIGHLIGHTS & SUMMARY Erlang Public License changed to Apache Public License v2 License Change ssl3 & rc4 cipher default support removed to prevent poodle vulnerability, additional key exchange algorithms, other safety improvements SSL/SSH Improvements Performance improvments in timer management, scheduler, erlang:make_ref and persistent hashmaps for large maps. Performance/Scalability Improvements in time functionality & management. erlang:now is deprecated, timers api changes Extended Time Functionality
  • 5.
  • 6. Time Goes On - Referenced from http://learnyousomeerlang.com/time After release 18, Erlang time divided into multiple components: 1. OS system time, also known as the POSIX time 2. OS Monotonic time; some operating systems provide it, fairly stable when available 3. Erlang system time. It's the VM's take on POSIX time 4. Erlang monotonic time. Erlang's view of the OS monotonic time if available or VM's own monotonic version of system time 5. Time offset; because the Erlang Monotonic time is a stable source of authority, the Erlang system time will be calculated by having a given offset relative to the Erlang monotonic time. The reason for this is that it will allow Erlang to adjust the system time without modifying the monotonic time frequency. Time Correction Before release 18, Erlang time works in one of two major ways: 1. The operating system's clock, represented as a tuple of the form {MegaSeconds, Seconds, MicroSeconds} (os:timestamp()) 2. The virtual machine's clock, represented as a tuple of the form {MegaSeconds, Seconds, MicroSeconds} (erlang:now(), auto-imported as now()) 3. Fixed time offset calculated when vm starts
  • 7. Time Changes – How to Survive Time Warps ? Why was Time Warp needed ? ◉ Time correction was a compromise between skewed clocks and inaccurate clock frequencies ◉ To avoid breaking events, the clock can only be corrected very slowly, so we could have both inaccurate clocks and inaccurate intervals for very long periods of time ◉ People used erlang:now() when they wanted monotonic and strictly monotonic time (useful to order events) or unique values How to Survive Time Warps ? ◉ To find system time: erlang:system_time/0-1 ◉ To measure time differences: call erlang:monotonic_time/0-1 twice and subtract them ◉ To define an absolute order between events on a node: erlang:unique_integer([monotonic]) ◉ Measure time and make sure an absolute order is defined: {erlang:monotonic_time(), erlang:unique_integer([monotonic])} ◉ Create a unique number: erlang:unique_integer([positive])
  • 8. Opensource Projects Overview of some of the popular opensource projects written in Erlang 2
  • 9. OPENSOURCE PROJECTS ERLANG Applications like RabbitMQ & Ejabberd (used by Whatsapp) Communication Applications like yaws, mochiweb, cowboy etc Webservers Projects like OTP and applications like disco Distributed Applications like mnesia, couchdb & riak Databases
  • 10.
  • 11. OTPOTP (Open Telephony Platform) is set of Erlang libraries & design principles providing middleware to develop distributed systems Includes distributed db, language interfaces, debugging & release tools
  • 12.
  • 13. Why Erlang ? Why choose Erlang for your next server side application ? 3
  • 14. WHY ERLANG ? Referenced from http://veldstra.org/whyerlang/ Lightweight Concurrency Processes are very lightweight, with only about 500 bytes of overhead per-process. This means that millions of processes can be created, even on older computers. Transparent Distribution With the exception of timing all operations in the distributed system will work in exactly the same way as they worked in a single-node system. Hot Code Replacement In realtime control systems we may not want or may never be able to turn off the system to perform upgrades & such systems needs dynamic code upgrades. Battle Proven Erlang has been successfully used in production systems for over 20 years (with reported uptimes of 9- nines — that's 31ms of downtime a year) Soft Realtime Applications Erlang was developed at Ericsson and was designed from the ground up for writing scalable, fault- tolerant, distributed, non-stop, soft-realtime applications. Free, Opensource & Much More Released under permissive open- source license, cross platform support to run on linux, osx, windows, freebsd, solaris & vxworks. Much more, explore.
  • 15. 2,000,000+ EJABBERD Massive Scale – 2+ Million Concurrent Users on Single Node https://blog.process-one.net/ejabberd-massive-scalability-1node- 2-million-concurrent-users/
  • 16. SOME REFERENCES ◉ https://github.com/0xAX/erlang-bookmarks/wiki/Erlang- bookmarks ◉ https://github.com/drobakowski/awesome-erlang ◉ https://github.com/uhub/awesome-erlang ◉ http://learnyousomeerlang.com/the-hitchhikers-guide-to- concurrency ◉ https://github.com/erlang/otp ◉ http://erlang.org/doc/apps/erts/erts.pdf ◉ http://highscalability.com/blog/2014/2/26/the-whatsapp- architecture-facebook-bought-for-19-billion.html
  • 17. THANKS! Any questions? You can find me at @digikrit / akhil@digikrit.com Special thanks to all the people who made and released these awesome resources for free:  Presentation template by SlidesCarnival  Presentation models by SlideModel  Erlang by Ericsson, Erlang projects by ProcessOne, Basho, Apache, Pivotal & others