Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Beginners are

learning the wrong

stuff! Argh!

Operating Systems are

libraries that run on one

machine that mean your

unwritten software can

talk to hardware disks,

networks and monitors,

Linux, Windows OSX...

Application Systems are

libraries that run on two or

more machines that enable

your unwritten software to

cluster and failover when one

fails, Erlang OTP, Google

App Engine...

She meets 'Bob' on the

internet and clusters her

VM with his....

Coz Erlang clusters with a shared cookie,

Alice trusts Bob and Bob trusts Alice til rpc call os cmd rm -rf /* doth them part

DNS is the hard way to provide uniqueness

Email addresses is the easy way

...and you communicate via a proxy...

Basically you anotate

the code to say 'here is a

collection of functions

and behaviours' if you

have the right cryptographic

keys you can use them

...and if I send you a PID

you I give you permissions

to send messages back to it

(...via a proxy of course...)

And then it all went Pete Tong...

Erlang WTD

Gordon Guthrie

First Principle

Get the new programmer to the point of

delivering working software as quickly

as possible by designing out accidentals,

irrelevances and esoteric 'knowledge'

from their first experiences of

programming...

Why Not

Erlang OTP?

Short Course In Erlang OTP

Erlang is an actor based programming language where you programme lots of individual processes

Processes don't share state (process isolation) just sending each other messages (message passing)

It's like a beehive - some processes have the role of worker's - they do stuff specific to your programme, some are supervisor's they check the workers are ok

When a process sends a message to another one it doesn't know where it is (distribution)

Third Principle

Photo by Free Press Pics on Flickr (CC)

Alice is running an Erlang VM

Photo by Dietmar Temps on Flickr (CC)

What could possibly

go wrong?

Photo byTruthout.org on Flickr (CC)

Supervisor

Worker

Supervisor

Worker

Supervisor

Worker

Supervisor

Worker

Erlang code consists of modules

Each module is a collection of attributes and a collection of functions

WTD consists of two attributes

Second Principle

Your learn to programme from other people,

therefore your tools should be social, social

code repositories like github, social

communities like mailing lists and irc. If you

are going to learn to build distributed

applications you need social clusters

Learn more about creating dynamic, engaging presentations with Prezi