about summary refs log tree commit diff
path: root/presentation.md
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@gmail.com>2016-09-22T13·37+0200
committerVincent Ambo <tazjin@gmail.com>2016-09-22T13·37+0200
commitfac2474ac66cd9a561844b1a6a8f9a91aa45e160 (patch)
tree76d8312e6e3e4945ab5f58b8ecb398ce4ebd071d /presentation.md
parent6c456a06c7166b70a2347283a7afcfc4107cb3c7 (diff)
Add the rest of the damn presentation
Diffstat (limited to 'presentation.md')
-rw-r--r--presentation.md96
1 files changed, 91 insertions, 5 deletions
diff --git a/presentation.md b/presentation.md
index b61d68911c9f..dfc914f3e30a 100644
--- a/presentation.md
+++ b/presentation.md
@@ -114,16 +114,102 @@ hello(Name) ->
 % ok
 ```
 
+---
+
+## [fit] Hello ~~world~~ Joe is boring!
+## [fit] Lets do it with processes.
+
+---
+### Hello Server
+
+```erlang
+-module(hello_server).
+-export([start_server/0]).
+
+start_server() ->
+    spawn(fun() -> server() end).
+
+server() ->
+    receive
+        {greet, Name} ->
+            io:format("Hello ~s!~n", [Name]),
+            server()
+    end.
+```
+
+---
+
+## [fit] Some issues with that ...
+
+- What about unused messages?
+- What if the server crashes?
+
+---
+
+## [fit] Part 2: Open Telecom Platform
+
+### **It's called Erlang/OTP for a reason.**
+
+---
+
+# OTP: An Application Framework
+
+- Supervision - keep processes alive!
+
+- OTP Behaviours - common process patterns
+
+- Extensive standard library
+
+- Error handling, debuggers, testing, ...
+
+- Lots more!
+
+^ Standard library includes lots of things from simple network libraries over testing frameworks to cryptography, complete LDAP clients etc.
+
+---
+
+# Supervision
+
+![inline](http://erlang.org/doc/design_principles/sup6.gif)
+
+^ Supervision keeps processes alive, different restart behaviours, everything should be supervised to avoid "process" (and therefore memory) leaks
+
+---
+
+# OTP Behaviours
+
+* `gen_server`
+* `gen_statem` 
+* `gen_event`
+* `supervisor`
+
+^ gen = generic. explain server, explain statem, event = event handling with registered handlers, supervisor ...
+
+---
+
+`gen_server`
+
+---
+
+## [fit] Part 3: BEAM
+
+### Bogdan/Bjørn Erlang Abstract machine
 
 ---
 
-## Drag & Drop images
+## A VM for Erlang
 
-### Simply *drop an image onto the Deckset window* and the Markdown you need to display the image is automatically created and *copied to the clipboard.*
+* Many were written, BEAM survived
+* Concurrent garbage-collection
+* Lower-level bytecode than JVM
+* Very open to new languages
+  (Elixir, LFE, Joxa, ...)
 
 ---
 
-* This works with both local files and web images
-* You don’t _need_ to drag the file, you can also type the Markdown yourself if you know how
+## What next?
 
-![left,filtered](http://deckset-assets.s3-website-us-east-1.amazonaws.com/colnago1.jpg)
+* Ole's talk, obviously!
+* Learn You Some Erlang!
+  www.learnyousomeerlang.com
+* Watch out for the Oslo BEAM meetup group